オンプレミスCitrix GatewayをIDプロバイダーとして使用したCitrix Workspaceへのドメインパススルー
重要:
この記事は、ドメインパススルー認証の設定に役立ちます。オンプレミスGatewayをIdPとしてすでに設定している場合は、「Citrix Gatewayで認証方法としてドメインパススルーを設定する」セクションにスキップしてください。
-
Citrix Cloud™は、オンプレミスのCitrix GatewayをIDプロバイダーとして使用し、ワークスペースにサインインするサブスクライバーを認証することをサポートしています。
-
Citrix Gateway認証を使用すると、次のことが可能になります。
- 既存のCitrix Gatewayを介してユーザー認証を継続し、オンプレミスのVirtual Apps and Desktops展開のリソースにCitrix Workspaceを介してアクセスできるようにします。
- Citrix WorkspaceでCitrix Gatewayの認証、承認、および監査機能を使用します。
-
パススルー認証、スマートカード、セキュアトークン、条件付きアクセスポリシー、フェデレーションなどの機能を使用して、Citrix Workspaceを介してユーザーが必要なリソースにアクセスできるようにします。
-
Citrix Gateway認証は、以下の製品バージョンでの使用がサポートされています。
- Citrix Gateway 13.1.4.43 Advanced Edition以降
前提条件:
- Cloud Connectors - Citrix Cloud Connector™ソフトウェアをインストールするために、少なくとも2台のサーバーが必要です。
- Active Directoryがあり、ドメインが登録されていることを確認します。
- Citrix Gatewayの要件
- クラシックポリシーの非推奨化により、オンプレミスゲートウェイで高度なポリシーを使用します。
- Citrix Workspaceへのサブスクライバーを認証するためにGatewayを設定する場合、ゲートウェイはOpenID Connectプロバイダーとして機能します。Citrix CloudとGateway間のメッセージはOIDCプロトコルに準拠しており、トークンのデジタル署名が含まれます。したがって、これらのトークンに署名するための証明書を設定する必要があります。
- 時刻同期 – Citrix GatewayはNTP時刻に同期されている必要があります。
- 詳細については、Citrix Cloudドキュメントの「前提条件」を参照してください。
OAuth IdPポリシーを作成する前に、まずCitrix WorkspaceまたはCloudを設定して、IdPでGatewayを認証オプションとして使用する必要があります。設定方法の詳細については、「オンプレミスのCitrix GatewayをCitrix Cloudに接続する」を参照してください。設定が完了すると、OAuth IdPポリシーの作成に必要なクライアントID、シークレット、およびリダイレクトURLが生成されます。
Web用Workspaceのドメインパススルーは、Internet Explorer、Microsoft Edge、Mozilla Firefox、およびGoogle Chromeを使用している場合に有効になります。ドメインパススルーは、クライアントが正常に検出された場合にのみ有効になります。
注:
ユーザーがHTML5クライアントを優先する場合、または管理者が強制する場合、ドメインパススルー認証方法は有効になりません。
ブラウザーでStoreFront URLを起動すると、「Detect Receiver」プロンプトが表示されます。
デバイスが管理されている場合は、クライアント検出を無効にする代わりに、グループポリシーを設定してこのプロンプトを無効にします。詳細については、以下を参照してください。
- Microsoftドキュメントの「URLAllowlist」。
- Google Chromeドキュメントの「URLAllowlist」。
注:
Citrix Workspaceアプリで使用されるプロトコルハンドラーはreceiver:です。これを許可されるURLの1つとして設定します。
ユーザーは、クライアント検出プロンプトでStoreFront URLの次の例のプロンプトに示すチェックボックスを選択することもできます。このチェックボックスを選択すると、その後の起動時のプロンプトも回避されます。

以下の手順では、Citrix GatewayをIdPとして設定する方法について説明します。
オンプレミスCitrix GatewayでのOAuth IdPポリシーの作成
OAuth IdP認証ポリシーの作成には、次のタスクが含まれます。
- OAuth IdPプロファイルの作成。
- OAuth IdPポリシーの追加。
- OAuth IdPポリシーを仮想サーバーにバインド。
- 証明書をグローバルにバインド。
OAuth IdPプロファイルの作成
- 1. CLIを使用してOAuth IdPプロファイルを作成するには、コマンドプロンプトで次のように入力します。
```
- add authentication OAuthIdPProfile <name> [-clientID <string>][-clientSecret ][-redirectURL <URL>][-issuer <string>][-audience <string>][-skewTime <mins>] [-defaultAuthenticationGroup <string>]
- add authentication OAuthIdPPolicy <name> -rule <expression> [-action <string> [-undefAction <string>] [-comment <string>][-logAction <string>]
add authentication ldapAction <name> -serverIP <IP> -ldapBase "dc=aaa,dc=local"
ldapBindDn <administrator@aaa.local> -ldapBindDnPassword <password> -ldapLoginName sAMAccountName
add authentication policy <name> -rule <expression> -action <string>
- bind authentication vserver auth_vs -policy <ldap_policy_name> -priority <integer> -gotoPriorityExpression NEXT
- bind authentication vserver auth_vs -policy <OAuthIdPPolicyName> -priority <integer> -gotoPriorityExpression END
- bind vpn global –certkey <>
<!--NeedCopy--> ```
-
GUIを使用してOAuth IdPプロファイルを作成するには:
-
オンプレミスのCitrix Gateway管理ポータルにログインし、Security > AAA – Application Traffic > Policies > Authentication > Advanced Policies > OAuth IDPの順に移動します。

-
- OAuth IdPページで、Profilesタブをクリックし、Addをクリックします。
-
- OAuth IdPプロファイルを構成します。
-
-
注:
- Citrix Cloudへの接続を確立するには、Citrix Cloud > Identity and Access Management > AuthenticationタブからクライアントID、シークレット、およびリダイレクトURLの値をコピーして貼り付けます。
- Issuer NameフィールドにGateway URLを正しく入力します。例:
https://GatewayFQDN.com。- AudienceフィールドにもクライアントIDをコピーして貼り付けます。
- Send Password: シングルサインオンをサポートするには、このオプションを有効にします。このオプションはデフォルトで無効になっています。
1. **Create Authentication OAuth IdP Profile**画面で、次のパラメーターの値を設定し、**Create**をクリックします。
- **Name** – 認証プロファイルの名前。文字、数字、またはアンダースコア文字(_)で始まる必要があります。名前には、文字、数字、ハイフン(-)、ピリオド(.)、ポンド(#)、スペース( )、アットマーク(@)、等号(=)、コロン(:)、およびアンダースコア文字のみを含めることができます。プロファイル作成後に名前を変更することはできません。
- **Client ID** – SPを識別する一意の文字列。認証サーバーは、このIDを使用してクライアント構成を推測します。最大長:127。
- **Client Secret** – ユーザーと認証サーバーによって確立されたシークレット文字列。最大長:239。
- **Redirect URL** – コード/トークンをポストする必要があるSP上のエンドポイント。
- **Issuer Name** – 受け入れられるトークンのサーバーのID。最大長:127。例:`https://GatewayFQDN.com`。
- **Audience** – IdPによって送信されるトークンのターゲット受信者。受信者はこのトークンを検証します。
- **Skew Time** – このオプションは、Citrix ADCが受信トークンで許可するクロックスキュー(分単位)を指定します。たとえば、skewTimeが10の場合、トークンは(現在の時刻 - 10)分から(現在の時刻 + 10)分まで、つまり合計20分間有効です。デフォルト値:5。
- **Default Authentication Group** – このプロファイルがIdPによって選択されたときにセッション内部グループリストに追加されるグループで、nFactorフローで使用できます。認証ポリシーの式(AAA.USER.IS_MEMBER_OF(“xxx”))で使用して、リライングパーティ関連のnFactorフローを識別できます。最大長:63
このプロファイルのセッションにグループが追加され、ポリシー評価を簡素化し、ポリシーのカスタマイズに役立ちます。このグループは、認証が成功したときに抽出されたグループに加えて選択されるデフォルトグループです。最大長:63。

OAuth IdPポリシーの追加
- OAuth IdPページで、Policiesをクリックし、Addをクリックします。
-
Create Authentication OAuth IdP Policy画面で、次のパラメーターの値を設定し、Createをクリックします。
- 名前 – 認証ポリシーの名前。
- アクション – 以前に作成したプロファイルの名前。
- ログアクション – リクエストがこのポリシーに一致する場合に使用するメッセージログアクションの名前。必須フィールドではありません。
- 未定義結果アクション – ポリシー評価の結果が未定義 (UNDEF) の場合に実行するアクション。必須フィールドではありません。
- 式 – ポリシーが特定のリクエストに応答するために使用するデフォルトの構文式。例: true。
- コメント – ポリシーに関するコメント。

注:
sendPassword が ON (デフォルトでは OFF) に設定されている場合、ユーザー資格情報は暗号化され、セキュアチャネルを介して Citrix Cloud に渡されます。セキュアチャネルを介してユーザー資格情報を渡すことで、起動時に Citrix Virtual Apps and Desktops™ への SSO を有効にできます。
OAuthIDPポリシーとLDAPポリシーの仮想認証サーバーへのバインド
オンプレミスのCitrix Gatewayで、OAuth IdPポリシーを仮想認証サーバーにバインドする必要があります。
- オンプレミスのCitrix Gateway管理ポータルにログインし、Configuration > Security > AAA-Application Traffic > Policies > Authentication > Advanced Policies > Actions > LDAP の順に移動します。
-
LDAP Actions 画面で、Add をクリックします。
-
- Create Authentication LDAP Server 画面で、以下のパラメーターの値を設定し、Create をクリックします。
- 名前 – LDAPアクションの名前。
- ServerName/ServerIP – LDAPサーバーのFQDNまたはIPを提供します。
- Security Type、Port、Server Type、Time-Out に適切な値を選択します。
- Authentication がチェックされていることを確認します。
-
Base DN – LDAP検索を開始するベース。例:
dc=aaa、dc=local。 -
Administrator Bind DN: LDAPサーバーにバインドするユーザー名。例:
admin@aaa.local。 - Administrator Password/Confirm Password: LDAPをバインドするためのパスワード。
- Test Connection をクリックして設定をテストします。
- Server Logon Name Attribute: 「sAMAccountName」を選択します。
- その他のフィールドは必須ではないため、必要に応じて設定できます。
-
- Configuration > Security > AAA-Application Traffic > Policies > Authentication > Advanced Policies > Policy の順に移動します。
- Authentication Policies 画面で、Add をクリックします。
-
Create Authentication Policy ページで、以下のパラメーターの値を設定し、Create をクリックします。
- 名前 – LDAP認証ポリシーの名前。
- アクションタイプ – LDAPを選択します。
- アクション – LDAPアクションを選択します。
- 式 – ポリシーが特定のリクエストに応答するために使用するデフォルトの構文式。例: true。
証明書のVPNへのグローバルバインド
- 証明書をVPNにグローバルにバインドするには、オンプレミスのCitrix GatewayへのCLIアクセスが必要です。Putty (または類似のツール) を使用して、SSH経由でオンプレミスのCitrix Gatewayにログインします。
- 1. Puttyなどのコマンドラインユーティリティを起動します。
- SSHを使用してオンプレミスのCitrix Gatewayにサインインします。
-
次のコマンドを入力します。
show vpn global注:
証明書はバインドされていてはいけません。

- オンプレミスのCitrix Gateway上の証明書を一覧表示するには、次のコマンドを入力します。
show ssl certkey-
- 適切な証明書を選択し、次のコマンドを入力して証明書をVPNにグローバルにバインドします。
-
bind vpn global -certkey cert_key_name - ここで、cert_key_name は証明書の名前です。
-
- 次のコマンドを入力して、証明書がVPNにグローバルにバインドされているかどうかを確認します。
show vpn global
Citrix Gatewayでの認証方法としてのドメインパススルーの構成
Citrix GatewayをIdPとして設定を完了したら、Citrix Gatewayでドメインパススルーを認証方法として構成するために、次の手順を実行します。
ドメインパススルーが認証方法として設定されている場合、クライアントは資格情報の代わりにKerberosチケットを使用して認証します。 Citrix Gatewayは、ImpersonationとKerberos Constrained Delegation (KCD) の両方をサポートしています。ただし、この記事ではKCD認証について説明します。詳細については、Knowledge Centerの記事 CTX236593 を参照してください。
ドメインパススルーの構成には、次の手順が含まれます。
- Kerberos Constrained Delegationの構成
- クライアントの構成
Kerberos Constrained Delegationの構成
-
Active DirectoryでのKCDユーザーの作成
Kerberosは、チケット付与システムでユーザーをリソースに認証し、クライアント、サーバー、およびキー配布センター (KDC) を含みます。
Kerberosが機能するためには、クライアントがKDCにチケットを要求する必要があります。クライアントは、チケット (ASリクエストと呼ばれる) を要求する前に、ユーザー名、パスワード、およびドメインを使用してKDCに認証する必要があります。

-
新しいユーザーとサービスプリンシパル名 (SPN) の関連付け
GatewayのSPNは、クライアントが認証するために使用されます。
- サービスプリンシパル名 (SPN): サービスプリンシパル名 (SPN) は、サービスインスタンスの一意の識別子です。Kerberos認証は、SPNを使用してサービスインスタンスをサービスサインインアカウントに関連付けます。この機能により、クライアントアプリケーションは、アカウント名を知らなくても、アカウントのサービス認証を要求できます。
SetSPNは、Windowsデバイス上でSPNを管理するためのアプリケーションです。SetSPNを使用すると、SPN登録を表示、編集、削除できます。
- Active Directoryサーバーで、コマンドプロンプトを開きます。
-
コマンドプロンプトで、次のコマンドを入力します。
setspn –A http/<LB fqdn> <domain\Kerberos user> -
KerberosユーザーのSPNを確認するには、次のコマンドを実行します。
setspn –l <Kerberos user>setspnコマンドの実行後、[Delegation] タブが表示されます。 -
指定されたサービスへの委任のためにこのユーザーを信頼するオプションと任意の認証プロトコルを使用するオプションを選択します。Webサーバーを追加し、HTTPサービスを選択します。

-
クライアントがGatewayのSPNを見つけるためのDNSレコードを作成します。
Active DirectoryにTXT DNSレコードを追加します。
注:
名前は_Kerberosで始まり、データはドメイン名である必要があります。FQDNはKerberos.
と表示される必要があります。 
ドメインに参加しているWindowsクライアントは、チケットを要求するために_kerberos.fqdnを使用します。たとえば、クライアントがcitrite.netに参加している場合、オペレーティングシステムは*.citrite.netを持つ任意のWebサイトのチケットを取得できます。ただし、Gatewayドメインがgateway.citrix.comのような外部ドメインである場合、クライアントのオペレーティングシステムはKerberosチケットを取得できません。
したがって、クライアントが_kerberos.gateway.citrix.comを検索し、認証用のKerberosチケットを取得するのに役立つDNS TXTレコードを作成する必要があります。
-
Kerberosを認証要素として構成します。
-
NetScaler®ユーザー用のKCDアカウントを作成します。ここでは手動でこれを行うことを選択しましたが、キータブファイルを作成することもできます。
注:
代替ドメイン(内部ドメインと外部ドメイン)を使用している場合は、サービスSPNを
HTTP/PublicFQDN.com@InternalDomain.extに設定する必要があります。- レルム - Kerberosレルム。通常は内部ドメインのサフィックスです。
- ユーザーレルム - これはユーザーの内部ドメインのサフィックスです。
- エンタープライズレルム - これは、KDCがプリンシパル名ではなくエンタープライズユーザー名を予期する特定のKDC展開でのみ指定する必要があります。
- 委任ユーザー - これは、以前の手順でADに作成したKCD用のNetScalerユーザーアカウントです。パスワードが正しいことを確認してください。

-
セッションプロファイルが正しいKCDアカウントを使用していることを確認します。セッションポリシーを認証、承認、および監査の仮想サーバーにバインドします。

-
認証ポリシーを認証、承認、および監査の仮想サーバーにバインドします。これらのポリシーは、クライアントからパスワードを取得しない認証、承認、および監査方法を使用するため、KCDを使用する必要があります。ただし、UPN形式でユーザー名とドメイン情報を取得する必要があります。
注:
IPアドレスまたはEPAスキャンを使用して、ドメイン参加デバイスと非ドメイン参加デバイスを区別し、Kerberosまたは通常のLDAPを認証要素として使用できます。
-
クライアントの構成
VDAへのシングルサインオンを成功させるには、以下を実行します。
前提条件:
- ドメイン参加済みマシン
- SSO設定が有効なCitrix Workspace 2112.1以降
- 接続が保護されているかを確認する必要なURLを信頼する
- クライアントとADからKerberosを検証します。クライアントOSはKerberosチケットを取得するためにADへの接続性が必要です。
ブラウザで信頼する必要があるURLの一部を以下に示します。
- Gateway URLまたはFQDN
- AD FQDN
- ブラウザベースの起動からのSSO用Workspace URL
-
Internet Explorer、Microsoft Edge、またはGoogle Chromeを使用している場合は、以下を実行します。
- ブラウザを起動します。
- クライアントでローカルグループポリシーエディターを開きます。

- コンピューターの構成 > Windows コンポーネント > Internet Explorer > インターネットコントロールパネル > セキュリティページに移動します。
- サイトとゾーンの割り当てリストを開き、リストされているすべてのURLを値1(1)で追加します。
- (オプション)
Gpupdateを実行してポリシーを適用します。
-
Mozilla Firefoxブラウザを使用している場合は、以下を実行します。
- ブラウザを開きます。
- 検索バーに
about:configと入力します。 - リスクを承諾して続行します。
- 検索フィールドにnegotiateと入力します。
-
表示されたデータリストから、network.negotiate-auth.trusted-urisがドメイン値に設定されていることを確認します。

これでクライアント側の構成は完了です。
-
Citrix Workspaceアプリまたはブラウザを使用してWorkspaceにログインします。
これにより、ドメイン参加済みデバイスでユーザー名またはパスワードの入力を求められることはありません。
Kerberosのトラブルシューティング
注:
この検証手順を実行するには、ドメイン管理者である必要があります。
コマンドプロンプトまたはWindows PowerShellで、SPNユーザーのKerberosチケット検証を確認するために次のコマンドを実行します。
```
add authentication OAuthIdPProfile <name> [-clientID <string>][-clientSecret ][-redirectURL <URL>][-issuer <string>][-audience <string>][-skewTime <mins>] [-defaultAuthenticationGroup <string>]
add authentication OAuthIdPPolicy <name> -rule <expression> [-action <string> [-undefAction <string>] [-comment <string>][-logAction <string>]
add authentication ldapAction <name> -serverIP <IP> -ldapBase "dc=aaa,dc=local"
ldapBindDn <administrator@aaa.local> -ldapBindDnPassword <password> -ldapLoginName sAMAccountName
add authentication policy <name> -rule <expression> -action <string>
bind authentication vserver auth_vs -policy <ldap_policy_name> -priority <integer> -gotoPriorityExpression NEXT
bind authentication vserver auth_vs -policy <OAuthIdPPolicyName> -priority <integer> -gotoPriorityExpression END
bind vpn global –certkey <>
<!--NeedCopy--> ```