高度なSAMLシナリオと、SAMLアサーション内でのcip_forestおよびcip_domainの正しい使用法
この記事では、複数の接続されたActive Directoryフォレストとドメインを含むCitrix Cloudまたはストアの高度なSAML構成について説明します。この記事は、複雑なAD展開を持つ大企業を対象としており、アーキテクトレベルのCitrix Cloud、IdP、およびAD管理者によって実装されるべきです。この高度なSAML構成の最も一般的な使用法は、異なるADインフラストラクチャ、複数のフォレスト、および異なるUPNを持つADバックエンドユーザーの異なる集団を持つ多くの小規模組織から大企業が形成される合併・買収シナリオです。条件付き認証も、合併・買収シナリオでしばしば必要とされます。
オプションのcip_forestおよびcip_domainクレームを使用すると、Citrix Cloud管理者は、SAML認証中にADバックエンドユーザーアカウントを検索するためにどのCitrix Cloud Connectorが使用されるかをより詳細に制御できます。SAMLを使用するCitrix Cloudは、Okta IdPやEntra ID IdPなどの他のCitrix CloudフェデレーションOIDC認証方法では不可能な、多くの高度なアカウントマッピングユースケースをサポートしています。
前提条件
-
エンドユーザーを認証するためにAD IDを使用する、デフォルトのCitrix Cloud SAMLフローを使用します。
-
ADフォレストまたはドメインインフラストラクチャと、ストアのエンドユーザーのIDがどこにあるかについて、広範な理解があること。
-
正しいADフォレストとドメインに参加し、正しいADドメインレベルで参加しているCitrix Cloud Connector。
-
Citrix Cloudテナント内にすでに構成されている既存のリソースの場所とCitrix Cloud Connectorに関する知識。
-
Citrix Cloudに接続されている複数のADフォレスト間に、Active Directoryの信頼関係がないこと。
-
フロントエンド(Entra ID、Okta、Duo)とバックエンドユーザー(AD)のIDが何を意味するかを理解していること。
-
フロントエンドとバックエンドのユーザーIDは、一致するUPNを介してリンクされている必要があります。一致するUPNを持たないフロントエンドとバックエンドのユーザーIDのペアをリンクすることはサポートされていません。
-
各UPNサフィックスがActive Directory内のどこに存在するか、および特定のUPNサフィックスがあいまいであり、複数の接続されたADフォレストに存在するかどうかを理解していること。
-
DaaS VDAはADドメインに参加している必要があります。
-
DaaSアプリケーションとデスクトップはAD IDに公開されている必要があります。
-
DaaSでデリバリーグループのリソースをADグループにマッピングする場合、ユニバーサルADグループが必須です。
-
DaaSデリバリーグループは「リソースの使用を制限する」に設定し、適切なユニバーサルADグループに割り当てる必要があります。DaaSデリバリーグループ内で「認証されたすべてのユーザーがリソースを使用できるようにする」を使用することはサポートされていません。

-
FASサーバーは、適切なADフォレストに参加し、適切なADレベルでドメインに参加している必要があります。FASサーバーは、DaaS起動時のADドメイン参加済みVDAへのSSONに必要です。

-
複数のSAMLアプリがあり、接続されているADフォレストごとに1つのSAMLアプリが必要な場合は、条件付き認証を実装する必要がある場合もあります。合併・買収のシナリオでは、各SAMLアプリでcip_forestとcip_domainに異なる値のセットが必要になる場合があります。
FAQ
SAMLアサーションでcip_sidを送信する場合、cip_forestとcip_domainのオプションのクレームも送信する必要がありますか?
いいえ。SAMLアプリケーションがcip_sidクレームを送信するように構成されており、それがSAMLアサーションに含まれている場合、Citrix CloudはADバックエンドユーザーがどのフォレストとドメインにいるかを常に正しく識別できます。cip_forestとcip_domainは必須ではありません。
重要:
-
SAMLアサーションでcip_sidを送信できないSAMLシナリオでは、代わりにcip_forestとcip_domainの使用が必要になる場合があります。
-
誤ったSIDを含むフロントエンドユーザー。これは、DaaSデリバリーグループ内にマッピングされたバックエンドADユーザーのSIDと一致しません。
-
ADインポートツールを介してIdP内で作成されなかったネイティブのOkta、Entra ID、またはDuoユーザーなど、埋め込みSIDをまったく持たないフロントエンドユーザー。
ADの暗黙的なUPNサフィックスとは?
暗黙的なUPNはActive Directoryによって自動的に作成され、ユーザーのsAMAccountNameとフォレストのDNS名に基づいています。暗黙的なUPNは、sAMAccountNameとドメインのDNS名から派生するため、ADフォレスト内で常に一意です。これらはADフォレスト内で一意です。例:
@rootforestdomain.local
ADの明示的な (ALT) UPNサフィックスとは?
「明示的なUPNサフィックス」とは、AD管理者がActive Directoryドメインと信頼関係に追加するカスタムドメイン名です。例:
@rootforestdomain.local

重要:
Windows AD PowerShellでは、指定したUPNサフィックスがADフォレスト内に存在しない場合でも、任意のUPNサフィックスを持つADユーザーを作成できます。使用したい代替UPNサフィックスは、Citrix Cloud Connectorがバックエンドアカウントユーザーを検索するためにこのリストに依存するため、ADフォレスト内に存在する必要があります。上記のスクリーンショットに示されているように、代替UPNサフィックスがADフォレストで構成されていない場合、Citrix CloudはフロントエンドIDを適切なバックエンドADアカウントと照合できません。
UPNの曖昧さとは何か、Citrix CloudおよびDaaSにとってなぜ問題となるのか?
UPNの曖昧さとは、Citrix Cloudに接続された2つ以上のADフォレストに
duplicateuser@domain.comが存在する場合に発生する状況です。@domain.comというUPNサフィックスだけでは、duplicateuser@domain.comの2つのバージョンが存在する場合に正しいADバックエンドユーザーを特定することはできません。これにより、DaaSリソースの列挙がまったく失敗したり、ADドメイン参加済みVDAを使用して公開された誤ったDaaSリソースがストア内に表示されたりする可能性があります。
ユニバーサルADグループが要件となるのはなぜですか?
ユニバーサルADグループはグローバルカタログ (GC) に保存され、フォレスト内のすべてのドメインコントローラーから参照できます。これにより、同じフォレスト内の任意のドメインにあるリソースにアクセス許可を割り当てるために使用できます。
重要:
ADユニバーサルグループの使用は、cip_forestとcip_domainを含む高度な構成だけでなく、すべてのSAML構成の要件です。グローバルなどの他のADグループタイプを使用すると、ストアでのリソース列挙が失敗する可能性があります。
ADグループスコープに関するこのMicrosoftの記事を読むことをお勧めします。
DaaSデリバリーグループ内で「認証済みユーザーがリソースを使用することを許可する」を使用することが推奨されないのはなぜですか?
認証済みユーザーがリソースを使用することを許可するを構成すると、ADドメイン参加済みVDAを使用して公開されたリソースが、同じドメインおよびフォレスト内にないADユーザーIDのストア内に表示されます。フォレスト1のストアADエンドユーザーIDを使用して、フォレスト2でドメイン参加したVDAからリソースを起動することは成功しません。
SAMLアサーションでcip_forestのみ、またはcip_domainのみを送信できますか?
いいえ。バックエンドユーザー検索のために特定のADフォレストとドメインコンテキストを指定したい場合は、SAMLアサーションで両方のオプションクレームを提供する必要があります。
cip_forestの値を指定する場合、どのUPNサフィックスを使用すべきですか?
ADフォレストの暗黙的なUPNサフィックスを使用する必要があります。cip_forestクレーム内でADフォレストに追加されたALT UPNサフィックスの値を指定しないでください。これは、Citrix Cloudに接続されている複数のADフォレストに同じALT UPNサフィックスが追加されているADトポロジが存在する可能性があるためです。暗黙的なUPNサフィックスとDNは、DC=duplicate,DC=comのような同じDNを持つ2つの異なるADフォレストがCitrix Cloudに接続されていない限り(これはありそうにないシナリオですが)、Citrix Cloudにとって曖昧になることはありません。
cip_forestとcip_domainの値は、いつ同じであるべきですか、それとも異なるべきですか?
シナリオ1: Citrix Cloud Connectorがフォレストルートレベルでドメイン参加しており、バックエンドADアカウントユーザーが接続されたADフォレスト内のルートドメイン内に存在する場合。
cip_domainとcip_forestは同じ値を持つべきです。
cip_forest = "forestrootdomain.com"
cip_domain = "forestrootdomain.com"
シナリオ2: Citrix Cloud ConnectorがADフォレスト階層の子ドメインにドメイン参加している場合。バックエンドADユーザーは、ADフォレスト内の「childdomain.forestrootdomain.com」内に存在します。
cip_domainとcip_forestは異なる値を持つべきです。
cip_forest = "forestrootdomain.com"
cip_domain = "childdomain.forestrootdomain.com"
SAMLアサーション内でcip_forestとcip_domainの値をハードコードできますか?
はい、ただし、DaaSリソースにマッピングされているバックエンドADユーザーの全人口が同じADフォレストに存在する場合に限ります。cip_forestとcip_domainの値をハードコードするには、すべてのフロントエンドユーザーが対応するバックエンドADアカウントを同じADフォレストとドメインに持つ必要があります。
SAMLアサーション内でcip_forestとcip_domainに異なる値を動的に指定できますか?
はい、SAMLプロバイダーがクレーム変換ルールを通じてこれを許可している場合です。異なるUPNサフィックスを持つ異なるフロントエンドユーザーの集団がいる場合、グループメンバーシップのような切り替え条件を使用して、cip_forestとcip_domainの値を動的に指定することが可能です。これはEntra ID SAMLアプリケーション内で可能であり、クレーム変換ルールをサポートする他のSAML IdPでも可能である場合があります。
ADドメイン参加済みVDAへのSSON起動が成功するように、FASサーバーはどこに配置すべきですか?
FASサーバーは、バックエンドADアカウントが存在する各バックエンドADフォレスト内でドメイン参加され、構成されている必要があります。FASサーバーをADフォレストのルートドメインレベルでドメイン参加させることをお勧めします。
SAMLアサーションでcip_forestとcip_domainが必要とされるADトポロジ
シナリオ1:SAMLエンドユーザーのUPNがあいまいであり、Citrix Cloudに接続された複数のADフォレストに存在する
-
Citrix Cloudテナントには、2つ以上のリソースロケーションと、Citrix Cloudに接続された複数のADフォレストまたはドメインがあります。

-
リソースロケーション1にはCitrix Cloud Connectorが含まれており、これらはルートフォレストレベルでAD forestrootdomain1.comにドメイン参加しています。
-
リソースロケーション2にはCitrix Cloud Connectorが含まれており、これらはルートフォレストレベルでAD forestrootdomain2.comにドメイン参加しています。
-
forestrootdomain1.comとforestrootdomain2.comは両方とも同じUPN @domain.comサフィックスを持っています。
-
forestrootdomain1.comとforestrootdomain2.com内には、同じUPN
duplicateuser@domain.comを持つがSIDとOIDの値が異なる重複ユーザーも存在する可能性があります。
問題:
username@duplicatesuffix.comを使用して正しいバックエンドADアカウントを検索しようとしても、UPNのあいまいさのため、常に正しいADバックエンドユーザーが返されるとは限りません。Citrix CloudはどのADフォレストとCitrix Cloud Connectorを使用すべきかを判断できないため、ストアに誤ったDaaSリソースが表示されたり、DaaSリソースがまったく返されない場合があります。
解決策: 接続されたADフォレストごとに2つの異なるSAMLアプリケーションを構成し、SAMLアサーションに正しいADフォレストに対応するcip_domainとcip_forestの値を含めます。これにより、Citrix Cloudに追加のフォレストとドメインのコンテキストが提供され、
username@duplicatesuffix.comが複数の接続されたフォレストに存在する場合に、正しいバックエンドADユーザーが「検索される」ことを保証します。
SAMLアプリ1 forestrootdomain1.com:
SAMLアプリ2 forestrootdomain2.com:
フォレストルートドメイン2(/en-us/citrix-cloud/media/forest-root-domain2.png)
正しいADバックエンドグループを使用して、2つのDaaSデリバリーグループを正しくマッピングします。
シナリオ2:子ドメインレベルで結合されたCloud Connectorと子ドメインレベルのストアユーザー
Citrix Cloudテナントには、推奨される「forestrootdomain.com」レベルではなく、「childdomain.forestrootdomain.com」レベルでドメイン参加している2つのCitrix Cloud Connectorを含むリソースロケーションがあります。ストアユーザーはchilddomain.forestrootdomain.com子ドメイン内に存在します。ユーザーは、
username@forestrootdomain.comのようなルートドメインUPNサフィックスを使用するように構成されています。
問題: Citrix Cloudは、「forestrootdomain.com」を使用してADアカウントの検索を実行しますが、これは接続されたADドメインと一致しません。
解決策: SAMLアサーションで子ドメインコンテキストを指定して、ADアカウントユーザーが正しいAD子ドメインおよびフォレストコンテキストから「検索」されるようにします。
cip_forest =
forestrootdomain.com
cip_domain =
childdomain.forestrootdomain.com
属性とクレーム(/en-us/citrix-cloud/media/saml-app-different-domain-to-forest.png)