StoreFront

SAML 認証

SAML (Security Assertion Markup Language) は、ID および認証製品で使用されるオープンスタンダードです。SAML を使用すると、StoreFront を構成して、認証のためにユーザーを外部 ID プロバイダーにリダイレクトできます。

内部アクセスには、StoreFront を SAML 認証で構成します。外部アクセスの場合、Citrix Gateway を SAML 認証で構成してから、StoreFront を Gateway パススルー認証で構成します。

StoreFront には、次のような SAML 2.0 準拠の ID プロバイダー (IdP) が必要です。

  • SAML バインディング (WS-Federation バインディングではない) を使用する Microsoft AD Federation Services。詳細については、CTX220638 を参照してください。
  • Citrix Gateway (IdP として構成)。
  • Microsoft Entra ID。詳細については、CTX237490 を参照してください。

SAML アサーションには、ユーザーの UPN を含む saml:Subject 属性が含まれている必要があります。StoreFront は、この UPN を Active Directory で検索します。

Citrix Workspace アプリを使用して接続する際にストアの SAML 認証を有効または無効にするには、認証方法ウィンドウで [SAML 認証] を選択します。ストアの SAML 認証を有効にすると、デフォルトでそのストアのすべての Web サイトでも有効になります。特定の Web サイトの SAML は、認証方法タブで個別に構成できます。

StoreFront™ SAML エンドポイント

SAML を構成するには、ID プロバイダーで次のエンドポイントが必要になる場合があります。

  • エンティティ ID の URL。これはストアの認証サービスへのパスであり、通常は https://[storefront host]/Citrix/[StoreName]Auth です。
  • アサーションコンシューマーサービスの URL。通常は https://[storefront host]/Citrix/[StoreName]Auth/SamlForms/AssertionConsumerService です。
  • メタデータサービス。通常は https://[storefront host]/Citrix/[StoreName]Auth/SamlForms/ServiceProvider/Metadata です。

さらに、テストエンドポイントがあり、通常は https://[storefront host]/Citrix/[StoreName]Auth/SamlTest です。

指定されたストアのエンドポイントを一覧表示するには、次の PowerShell スクリプトを使用できます。

# Change this value for your Store
$storeVirtualPath = "/Citrix/Store"

$auth = Get-STFAuthenticationService -Store (Get-STFStoreService -VirtualPath $storeVirtualPath)
$spId = $auth.AuthenticationSettings["samlForms"].SamlSettings.ServiceProvider.Uri.AbsoluteUri
$acs = New-Object System.Uri $auth.Routing.HostbaseUrl, ($auth.VirtualPath + "/SamlForms/AssertionConsumerService")
$md = New-Object System.Uri $auth.Routing.HostbaseUrl, ($auth.VirtualPath + "/SamlForms/ServiceProvider/Metadata")
$samlTest = New-Object System.Uri $auth.Routing.HostbaseUrl, ($auth.VirtualPath + "/SamlTest")
Write-Host "SAML Service Provider information:
Entity ID: $spId
Assertion Consumer Service: $acs
Metadata: $md
Test Page: $samlTest"
<!--NeedCopy-->

出力の例:

SAML Service Provider information:
Entity ID: https://storefront.example.com/Citrix/StoreAuth
Assertion Consumer Service: https://storefront.example.com/Citrix/StoreAuth/SamlForms/AssertionConsumerService
Metadata: https://storefront.example.com/Citrix/StoreAuth/SamlForms/ServiceProvider/Metadata
Test Page: https://storefront.example.com/Citrix/StoreAuth/SamlTest
<!--NeedCopy-->

メタデータ交換による構成

構成を簡素化するために、ID プロバイダーとサービスプロバイダー (この場合は StoreFront) の間でメタデータ (識別子、証明書、エンドポイント、その他の構成) を交換できます。

ID プロバイダーがメタデータインポートをサポートしている場合、StoreFront メタデータエンドポイントを指すように設定できます。注: これは HTTPS 経由で行う必要があります。

ID プロバイダーからのメタデータを使用して StoreFront を構成するには、たとえば Update-STFSamlIdPFromMetadata コマンドレットを使用します。

Get-Module "Citrix.StoreFront*" -ListAvailable | Import-Module

# Remember to change this with the virtual path of your Store.
$StoreVirtualPath = "/Citrix/Store"

$store = Get-STFStoreService -VirtualPath $StoreVirtualPath
$auth = Get-STFAuthenticationService -StoreService $store

# To read the metadata directly from the Identity Provider, use the following:
# Note again this is only allowed for https endpoints
Update-STFSamlIdPFromMetadata -AuthenticationService $auth -Url https://example.com/FederationMetadata/2007-06/FederationMetadata.xml

# If the metadata has already been download, use the following:
# Note: Ensure that the file is encoded as UTF-8
Update-STFSamlIdPFromMetadata -AuthenticationService $auth -FilePath "C:\Users\exampleusername\Downloads\FederationMetadata.xml"
<!--NeedCopy-->

ID プロバイダーの構成

  1. [SAML 認証] 行の設定ドロップダウンをクリックし、[ID プロバイダー] をクリックします。

    SAML 設定メニューのスクリーンショット

    ID プロバイダーウィンドウのスクリーンショット

  2. [SAML バインディング][Post] または [Redirect] を選択します。

  3. ID プロバイダーの [アドレス] を入力します。

  4. SAML トークンの署名に使用する証明書をインポートします。

  5. [OK] を押して変更を保存します。

サービスプロバイダーの構成

  1. [SAML 認証] 行の設定ドロップダウンをクリックし、[サービスプロバイダー] をクリックします。

    ID プロバイダーウィンドウのスクリーンショット

  2. オプションで、ID プロバイダーへのメッセージの署名に使用する [署名証明書のエクスポート] を選択します。

  3. オプションで、ID プロバイダーから受信したメッセージの復号化に使用する [暗号化証明書のエクスポート] を選択します。

  4. [サービスプロバイダー識別子] には、ストアの認証サービスが事前に入力されています。

  5. [OK] を押して変更を保存します。

PowerShell SDK

PowerShell SDK を使用する場合:

テスト

SAML 統合をテストするには:

  1. SAML テストページに移動します。StoreFront SAML エンドポイントを参照してください。
  2. これにより、ID プロバイダーにリダイレクトされます。資格情報を入力します。
  3. ID クレームとアサーションを表示するテストページにリダイレクトされます。

StoreFront を信頼するように Delivery Controller™ を構成

SAML 認証を使用する場合、StoreFront はユーザーの資格情報にアクセスできないため、Citrix Virtual Apps and Desktops に対して認証できません。したがって、Delivery Controller を構成して StoreFront からのリクエストを信頼する必要があります。Citrix Virtual Apps and Desktops のセキュリティに関する考慮事項とベストプラクティスを参照してください。

Federated Authentication Service を使用した VDA へのシングルサインオン

SAML 認証を使用する場合、StoreFront はユーザーの資格情報にアクセスできないため、VDA へのシングルサインオンはデフォルトでは利用できません。シングルサインオンを提供するには、Federated Authentication Service を使用できます。

SAML 認証