ADFSをワークスペース認証用のSAMLプロバイダーとして構成する
この記事では、SAMLを使用してCitrix WorkspaceまたはCitrix CloudにサインインするためにCitrix Cloudが必要とする、証明書利用者の信頼を構成する方法について説明します。
この記事の手順を完了すると、「Citrix CloudでIDプロバイダーとしてSAMLを接続する」の説明に従って、ADFSサーバーとCitrix Cloudの間のSAML接続を構成できます。SAML接続に正しいADFS値を入力するためのガイダンスについては、この記事の「Citrix CloudでのSAML構成」を参照してください。
前提条件
この記事の手順は、環境内のADFSサーバー展開がCitrix FASとともに既に稼働していることを前提としています。 Citrix FASは、セッションの起動中にVDAにシングルサインオンを提供するために必要です。
詳しくは、以下の記事を参照してください:
- Citrix FASドキュメント:
- Citrix Tech Zone:リファレンスアーキテクチャ:フェデレーション認証サービス
Citrix Cloudの証明書利用者の信頼を構成する
- AD FS管理コンソールから、左側のペインで [AD FS] ノードを展開します。
-
[証明書利用者の信頼] を右クリックし、[証明書利用者の信頼を追加] を選択します。
[証明書利用者の信頼を追加]ウィザードが表示されます。
-
[クレーム対応] を選択し、[次へ] を選択します。
-
[フェデレーションメタデータアドレス] に
https://saml.cloud.com/saml/metadata.xml
を入力します。[次へ] を選択します。 -
表示名には
CitrixCloudProd
を入力します。[次へ] を選択します。 -
アクセス制御ポリシーとして、[すべてのユーザーを許可] を選択します。[次へ] を選択します。
- [信頼を追加する準備ができました]画面で、[次へ]を選択します。
-
[完了] 画面で、[このアプリケーションの要求発行ポリシーを構成する]を選択します。[次へ] を選択します。
- 新しく作成した証明書利用者を右クリックし、[要求発行ポリシーの編集]を選択します。
- [ルールの追加]をクリックし、[LDAP属性を要求として送信]を選択します。[次へ] を選択します。
-
[要求ルール名]に
CitrixCloud
を入力します。 - [属性ストア]で、[Active Directory]を選択します。
-
[LDAP属性の送信要求タイプへのマッピング]で、次のLDAP属性を表示されているとおりに追加します。
LDAP属性 送信要求タイプ ユーザープリンシパル名 名前ID ユーザープリンシパル名 cip_upn メールアドレス cip_email objectSID cip_sid objectGUID cip_oid 表示名 displayName 指定の名前 firstName 姓 lastName - [完了]を選択します。
PowerShellを使用してCitrix Cloudの証明書利用者の信頼を変更する
デフォルトの「すぐに使える」構成を使用してADFSサーバーを構成している場合は、このセクションの手順を使用して、Citrixが推奨する構成を満たすようにサーバーを更新できます。このタスクは、nameidentifier
属性が要求ルールセットに含まれていない場合、または要求ルールセットの最初のSAML属性ではない場合に、Citrix CloudまたはCitrix WorkspaceからのSAMLの単一ログアウトが失敗する問題を解決するために必要です。
注:
この記事の「Citrix Cloudの証明書利用者の信頼を構成する」の手順を使用して要求ルールセットを作成した場合は、このタスクを実行する必要はありません。
このタスクを完了するには、PowerShellを使用して既存のルールセットを新しい要求ルールセットに置き換えます。ADFS管理コンソールは、このタイプの操作をサポートしていません。
- ADFSサーバーで、PowerShell ISEを見つけます。右クリックして、[管理者として実行]を選択します。
-
既存のADFS要求ルールをテキストファイルにバックアップします。
Get-ADFSRelyingPartyTrust -name "CitrixCloudStaging" | Select-Object -ExpandProperty IssuanceTransformRules | Out-File "$env:USERPROFILE\desktop\claimrulesbackup.txt" <!--NeedCopy-->
- Citrixが提供するclaimrules.txtファイルをhttps://github.com/citrix/sample-scripts/tree/master/citrix-cloudからダウンロードします。
- claimrules.txtファイルをデスクトップにコピーします。
-
claimrules.txtファイルを使用して、必要な要求ルールをインポートします。
Set-ADFSRelyingPartyTrust -Name "CitrixCloudProd" ` -MetadataUrl "https://saml.cloud.com/saml/metadata" ` -AutoUpdateEnabled $True ` -IssuanceTransformRulesFile "$env:USERPROFILE\desktop\claimrules.txt" ` -SignedSamlRequestsRequired $True ` -SamlResponseSignature "MessageAndAssertion" ` -Enabled $True <!--NeedCopy-->
PowerShellを使用して証明書利用者の信頼のSAML署名設定を更新する
デフォルトでは、ADFS証明書利用者の信頼には次の設定があります。
- EncryptClaims:True
- SignedSamlRequestsRequired:False
- SamlResponseSignature:AssertionOnly
セキュリティを強化するために、Citrixはシングルサインオン(SSO)とシングルログアウトの両方に署名付きSAMLリクエストを使用することをお勧めします。このセクションでは、PowerShellを使用して既存の証明書利用者の信頼の署名設定を更新し、Citrixが推奨する構成を満たすようにする方法について説明します。
-
ADFSサーバー上の現在のRelyingPartyTrust構成を取得します。
Get-ADFSRelyingPartyTrust -TargetName "CitrixCloudProd" <!--NeedCopy-->
-
CitrixCloudProd証明書利用者の信頼設定を更新します。
Set-ADFSRelyingPartyTrust -Name "CitrixCloudProd" ` -SignedSamlRequestsRequired $True ` -SamlResponseSignature "MessageAndAssertion" <!--NeedCopy-->
-
Citrixサポートに連絡し、Citrix Cloud顧客で認証機能EnableSamlLogoutSigningAndPostを有効にするようリクエストします。これにより、ユーザーがCitrix WorkspaceまたはCitrix Cloudからサインアウトするときに、Citrix CloudはSAMLシングルログアウトリクエストを署名なしのリダイレクトリクエストではなく、署名付きPOSTリクエストとして送信します。SAMLプロバイダーがシングルログアウトの署名付きリクエストを要求し、署名なしのリダイレクトを拒否する場合は、署名付きPOSTリクエストを送信する必要があります。
Citrix CloudのSAML構成
Citrix CloudでSAML接続を構成するとき(「SAMLプロバイダーのメタデータをCitrix Cloudに追加」を参照)、ADFSの値を次のように入力します。
Citrix Cloudのフィールド | 入力する値 |
---|---|
エンティティID |
https://adfs.YourDomain.com/adfs/services/trust 、YourDomain.com はADFSサーバードメインです。 |
認証要求に署名する | はい |
SSOサービスURL |
https://adfs.YourDomain.com/adfs/ls 、YourDomain.com はADFSサーバードメインです。 |
バインドメカニズム | HTTP POST |
SAML応答 | 応答またはアサーションに署名する |
認証コンテキスト | 未指定、完全一致 |
ログアウトURL |
https://adfs.YourDomain.com/adfs/ls 、YourDomain.com はADFSサーバードメインです。 |
MMC ADFS管理コンソール内からADFS署名証明書をエクスポートします。3つの証明書のうち、SAML接続内でCitrix Cloudにアップロードするのが正しい証明書については、以下のスクリーンショットを参照してください。