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

次の手順では、Citrix GatewayをIDプロバイダーとして設定する方法について説明します。
オンプレミス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をコピーして貼り付けます。
- パスワードの送信: シングルサインオンをサポートするためにこのオプションを有効にします。このオプションはデフォルトで無効になっています。
1. **Create Authentication OAuth IdP Profile**画面で、次のパラメーターの値を設定し、**Create**をクリックします。
- **名前** – 認証プロファイルの名前。文字、数字、またはアンダースコア文字 (_) で始まる必要があります。名前には、文字、数字、ハイフン (-)、ピリオド (.)、ポンド (#)、スペース ( )、アットマーク (@)、等号 (=)、コロン (:)、およびアンダースコア文字のみを含めることができます。プロファイル作成後に名前を変更することはできません。
- **クライアントID** – SPを識別する一意の文字列。認証サーバーはこのIDを使用してクライアント構成を推測します。最大長: 127。
- **クライアントシークレット** – ユーザーと認証サーバーによって確立されたシークレット文字列。最大長: 239。
- **リダイレクトURL** – コード/トークンを投稿する必要があるSP上のエンドポイント。
- **発行者名** – トークンを受け入れるサーバーのID。最大長: 127。例: `https://GatewayFQDN.com`。
- **オーディエンス** – IdPによって送信されたトークンのターゲット受信者。受信者はこのトークンを検証します。
- **スキュー時間** – このオプションは、Citrix ADCが受信トークンで許可する許容クロックスキュー (分単位) を指定します。たとえば、スキュー時間が10の場合、トークンは (現在時刻 - 10) 分から (現在時刻 + 10) 分まで、つまり合計20分間有効です。デフォルト値: 5。
- **デフォルト認証グループ** – このプロファイルが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管理ポータルにログインし、構成 > セキュリティ > AAA - アプリケーショントラフィック > ポリシー > 認証 > 高度なポリシー > アクション > LDAP の順に移動します。
-
LDAPアクション画面で、追加をクリックします。
-
- 認証LDAPサーバーの作成画面で、次のパラメーターの値を設定し、作成をクリックします。
- 名前 – LDAPアクションの名前。
- サーバー名/サーバーIP – LDAPサーバーのFQDNまたはIPを指定します。
- セキュリティの種類、ポート、サーバーの種類、タイムアウト に適切な値を選択します。
- 認証 がチェックされていることを確認します。
-
ベースDN – LDAP検索を開始するベース。例:
dc=aaa、dc=local。 -
管理者バインドDN: LDAPサーバーへのバインドのユーザー名。例:
admin@aaa.local。 - 管理者パスワード/パスワードの確認: LDAPをバインドするためのパスワード。
- 接続のテスト をクリックして設定をテストします。
- サーバーログオン名属性: 「sAMAccountName」を選択します。
- その他のフィールドは必須ではないため、必要に応じて構成できます。
-
- 構成 > セキュリティ > AAA - アプリケーショントラフィック > ポリシー > 認証 > 高度なポリシー > ポリシー の順に移動します。
- 認証ポリシー画面で、追加をクリックします。
-
認証ポリシーの作成ページで、次のパラメーターの値を設定し、作成をクリックします。
- 名前 – 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は、偽装と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コマンドの実行後、委任タブが表示されます。 -
指定されたサービスへの委任にこのユーザーを信頼するオプションと、任意の認証プロトコルを使用するオプションを選択します。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--> ```