SAML認証
SAML(Security Assertion Markup Language:セキュリティアサーションマークアップランゲージ)は、IDおよび認証製品で採用されているオープンスタンダードです。SAMLを使用すると、認証のためにユーザーを外部IDプロバイダーにリダイレクトするようにStoreFrontを構成できます。
注:
内部アクセス用にSAML認証を使用してStoreFrontを構成します。外部アクセスの場合は、SAML認証を使用してCitrix Gatewayを構成し、次にゲートウェイパススルー認証を使用してStoreFrontを構成します。
StoreFrontには、次のようなSAML 2.0準拠のIDプロバイダー(IdP)が必要です:
- SAMLバインドを使用するMicrosoft ADフェデレーションサービス(WSフェデレーションバインドは不可)。詳しくは、「AD FS Deployment」および「AD FS Operations」を参照してください。
- Citrix Gateway(IdPとして構成)。
- Microsoft Entra ID。詳しくは、CTX237490を参照してください。
SAMLアサーションには、ユーザーのUPNを含むsaml:Subject
属性が含まれている必要があります。
Workspaceアプリを介した接続時のストアのSAML認証を有効または無効にするには、[認証方法] ウィンドウで [SAML認証] を選択するか、選択を解除します。デフォルトでストアのSAML認証を有効にすると、そのストアのすべてのWebサイトでもSAML認証が有効になります。[認証方法] タブで、特定のWebサイトのSAMLを個別に構成できます。
StoreFront SAMLエンドポイント
SAMLを構成するために、IDプロバイダーは次のエンドポイントを必要とする場合があります:
- エンティティIDのURL。これはストアの認証サービスのパスです)通常は、https://[storefronthost]/Citrix/[StoreName]Auth)
- Assertion Consumer ServiceのURL(通常は、https://[storefronthost]/Citrix/[StoreName]Auth/SamlForms/AssertionConsumerService)
- メタデータサービス(通常は、https://[storefronthost]/Citrix/[StoreName]Auth/SamlForms/ServiceProvider/Metadata)
さらに、テストエンドポイントがあります(通常は、https://[storefronthost]/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、証明書、エンドポイント、その他の構成)を交換できます。
IDプロバイダーがメタデータのインポートをサポートしている場合は、StoreFront MetaDataエンドポイントで指定できます。注: この操作は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プロバイダーを構成する
-
[SAML認証] 行の設定ドロップダウンをクリックし、[IDプロバイダー] をクリックします。
-
[Post] または [Redirect] の [SAMLバインド]を選択します。
-
IDプロバイダーの [アドレス] を入力します。
-
SAMLトークンの署名に使用される証明書をインポートします。
-
[OK] を押して変更を保存します。
サービスプロバイダーを構成する
-
[SAML認証] 行の設定ドロップダウンをクリックし、[サービスプロバイダー] をクリックします。
-
必要に応じて、IDプロバイダーへのメッセージに署名するために使用される [署名証明書のエクスポート] を選択します。
-
必要に応じて、IDプロバイダーから受信したメッセージを暗号化解除するために使用される [暗号化証明書のエクスポート] を選択します。
-
[サービス プロバイダーID] には、ストアの認証サービスが事前に入力されます。
-
[OK] を押して変更を保存します。
PowerShell SDK
PowerShell SDKの使用:
-
署名証明書をインポートするには、コマンドレットImport-STFSamlSigningCertificateを呼び出します。
-
暗号化証明書をインポートするには、コマンドレットImport-STFSamlEncryptionCertificateを呼び出します。
テスト
SAML統合をテストするには:
- SAMLテストページに移動し、「StoreFront SAMLエンドポイント」を参照してください。
- これにより、IDプロバイダーにリダイレクトされます。資格情報を入力してください。
- IDクレームとアサーションを表示するテストページにリダイレクトされます。
StoreFrontを信頼するようにDelivery Controllerを構成する
SAML認証を使用する場合、StoreFrontはユーザーの資格情報にアクセスできないため、Citrix Virtual Apps and Desktopsに認証できません。したがって、StoreFrontからの要求を信頼するようにDelivery Controllerを構成する必要があります。Citrix Virtual Apps and Desktopsの「セキュリティに関する考慮事項およびベストプラクティス」を参照してください。
フェデレーション認証サービスを使用したVDAへのシングルサインオン
SAML認証を使用する場合、StoreFrontはユーザーの資格情報にアクセスできないため、デフォルトではVDAへのシングルサインオンは使用できません。フェデレーション認証サービスを使用してシングルサインオンを提供できます。