StoreFront

エスエーエムエル認証

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

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

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

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

SAML アサーションには、ユーザーの UPN を含む saml:Subject 属性が含まれている必要があります。StoreFront は、Active Directory でこの UPN を検索します。StoreFront は、他のディレクトリのユーザーをサポートしていません。Entra ID を使用する場合、ユーザーはハイブリッド ID を持っている必要があります。

ストアの SAML 認証を有効または無効にするには、Authentication Methods ウィンドウで SAML Authentication を選択します。ストアの SAML 認証を有効にすると、デフォルトでそのストアのすべての Web サイトでも有効になります。各 Web サイトの SAML 認証は、Authentication methods タブで個別に無効または有効にできます。

ストアフロント™ エスエーエムエル エンドポイント

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 MetaData endpoint を指定できます。注:これは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設定メニューのスクリーンショット(/ja-jp/storefront/current-release/media/stores/authentication/saml-settings-menu.png)

    IDプロバイダーウィンドウのスクリーンショット(/ja-jp/storefront/current-release/media/stores/authentication/saml-authentication-provider.png)

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

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

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

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

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

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

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

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

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

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

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

パワーシェル

パワーシェル を使用する場合:

テスト

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

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

デリバリーコントローラー™ を構成してストアフロントを信頼する

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

VDAへのシングルサインオン

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

  • Active Directoryに参加しているリソースの場合、シングルサインオンを提供するためにFederated Authentication Serviceを使用します。
  • ハイブリッドEntra参加リソースの場合、Entra ID SSOを使用します。

既知の問題

認証がHTTPエラー404.15 - Not Foundで失敗する場合があります。これは、クエリ文字列が長すぎてIISの要求フィルタリングによってブロックされる場合に発生します。デフォルトでは、IISはクエリ文字列の制限を2048、URL全体の長さを4096に設定しています。この問題を回避するには、最大URL長とクエリ文字列長を増やしてください。

  1. インターネットインフォメーションサービス (IIS) マネージャーを開きます。

  2. 接続ペインで、サーバーを展開し、認証仮想ディレクトリを選択します。

  3. メインペインから、要求フィルタリングを開きます。

    IISマネージャーで要求フィルタリングを見つける場所を示すスクリーンショット

  4. 操作ペインで、機能設定の編集… をクリックします。

  5. 最大URL長 (バイト)最大クエリ文字列 (バイト) を増やします。

    IISマネージャーの要求フィルタリング設定のスクリーンショット

  6. OK」を選択して変更を保存します。

エスエーエムエル認証