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:NameID>要素を含める必要があります。StoreFrontは、このUPNをActive Directoryで検索します。StoreFrontは、他のディレクトリのユーザーをサポートしていません。Entra IDを使用する場合、ユーザーはハイブリッドIDを持っている必要があります。

ストアの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 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設定メニューのスクリーンショット

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

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

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

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

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

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

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

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

  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に参加しているリソースの場合、シングルサインオンを提供するにはフェデレーション認証サービスを使用します。

既知の問題

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

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

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

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

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

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

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

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

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

SAMLによる認証