OIDC エントラ ID 認証 (プレビュー)
このセクションでは、ユーザーがEntra IDを使用して認証できるようにNetScalerとStoreFrontを構成する方法について説明します。この構成では、ユーザーはハイブリッドIDを持つことも、Active DirectoryアカウントなしでEntraのみのIDを持つこともできます。
重要:
VDAへのEntra IDシングルサインオンは現在プレビュー中です。この機能はサポートなしで提供されており、本番環境での使用はまだ推奨されません。
前提条件
- ネットスケーラー エーディーシー
- ストアフロント 2603 以降
- Microsoft Entra ID と、以下のいずれかの権限を持つアカウント:
- クラウドアプリケーション管理者
- アプリケーション管理者
- グローバル管理者
マイクロソフト アジュール エントラ ID アプリケーションを作成する
Microsoft Entra ID のアプリ登録は、Entra ID がアプリケーション (この場合は NetScaler OIDC) を認識できるように定義します。この登録は、アプリケーションの認証および承認要求も管理します。OAuth は、ユーザーを認証しトークンを発行するために信頼できるIDプロバイダー (IdP) を必要とするため、アプリを登録することで Entra ID に「このアプリケーションは OAuth フローの IdP としてあなたを使用します」と伝えます。
- NetScaler または StoreFront 認証に使用する Entra ID テナントの Azure ポータルにサインインします。
- Microsoft Entra ID リソース > 管理 > アプリの登録 に移動し、新規登録 を選択します。
- アプリケーションに名前を付けます。例えば、NetScaler StoreFront Authentication のように指定します。
- サポートされているアカウントの種類で、この組織ディレクトリ内のアカウントのみを選択します。
-
リダイレクト URIで、作成するアプリケーションの種類としてWebを選択します。アクセストークンが送信されるURIを入力します。形式は <NetScaler Virtual Server URL>/oauth/login を使用します。例:
https://netscalerentra.customer.com/oauth/login。アジュール ID(/ja-jp/storefront/current-release/media/integrate-with-citrix-gateway-and-citrix-adc/azure-entra-id.png)
クライアントシークレットの作成
クライアントシークレットを作成するには:
- アプリケーションを登録したら、管理 > 証明書とシークレットに移動します。
- クライアントシークレットを選択し、新しいクライアントシークレットを選択します。 アプリはこれらの資格情報を使用して、IdPと安全に通信し、トークンを要求します。
- シークレットの説明と期間を指定します。
- シークレットを作成したら、その値を記録しておきます。これはセットアッププロセスで後で必要になり、作成のこの段階でのみ表示されるためです。
アジュール ネットスケーラー(/ja-jp/storefront/current-release/media/integrate-with-citrix-gateway-and-citrix-adc/azure-netscaler-login.png)
アプリケーション権限の構成
アプリケーション権限を構成するには:
- 管理 > アプリの登録に移動し、アプリケーションを選択します。
- 管理 > API のアクセス許可を選択します。
- 「User.Read」権限はデフォルトで既に追加されています。
- openid と profile を追加するようにしてください。
- 「<tenant name> の管理者同意を付与」を選択し、承認します。
Microsoft Entra ID の API 権限における「管理者同意を付与」とは、管理者が組織内のすべてのユーザーに代わって、要求された権限でアプリケーションが特定のリソースまたは API にアクセスすることを承認することを意味します。

XML信頼を有効にするようにCitrix DaaSを構成する
デフォルトでは、Citrix DaaSはユーザーのActive Directory資格情報を使用して要求を認証します。Entra ID認証では、StoreFrontは資格情報を持っていません。そのため、認証を必要とせずにStoreFrontを信頼するようにDaaSを構成する必要があります。代わりに、サービスレベルの認証を提供するためにセキュリティキーを有効にすることを強くお勧めします。
- Citrix Cloudにサインインし、DaaSコンソールに移動します。
- 設定 に移動します。
-
XML信頼 をオンにします。

- (オプションの手順) セキュリティを強化するために、DaaSとStoreFront間でセキュリティキーを有効にすることができます。詳細については、Citrix DaaS™ ドキュメントの「セキュリティキーの管理」を参照してください。
NetScaler認証プロファイルを構成する
このセクションでは、ゲートウェイVPN仮想サーバーにバインドできるNetScaler認証プロファイルを構成する方法について説明します。この構成は、ADCがユーザーを外部OAuth IdP(Microsoft Entra IDなど)にリダイレクトしてサインインさせる方法と、認証後に受信したOAuthトークンを処理する方法を指示します。エンドポイント、クライアント資格情報、スコープ、およびADCがトークンからユーザー情報を抽出する方法を指定します。
前の手順で取得したクライアントシークレットと、Microsoft Entra ID認証エンドポイントが必要です。認証エンドポイントは、Azureポータルでアプリ登録の概要に移動し、エンドポイント タブをクリックすると見つけることができます。
認証仮想サーバーを作成する
認証仮想サーバーはユーザー認証を処理します。
add authentication vserver EntraId_Authentication_VirtualServer SSL 0.0.0.0 443 \
-state ENABLED \
-authentication ON \
-td 0 -appflowLog ENABLED \
-noDefaultBindings NO
<!--NeedCopy-->
OAuthポリシーとアクションを作成する
OAuthアクションは、NetScaler ADCがMicrosoft Entra IDなどのOAuth IdPとどのように連携するかを指定します。このアクションにより、Citrix GatewayはユーザーをサインインのためにIdPにリダイレクトし、返されたOAuthトークンを処理できます。これにより、ゲートウェイがStoreFrontに認証する際に、userNameFieldをoidに設定し、OIDをユーザー名として渡すようになります。StoreFrontは、OIDがEntra IDアクセストークンを検索して取得した詳細と一致することを確認します。一致しない場合、認証は失敗します。
前の手順で取得したクライアントIDとクライアントシークレットが必要です。
add authentication OAuthAction EntraId_Oauth_Server \
-authorizationEndpoint "https://login.microsoftonline.com/<TenantId>/oauth2/v2.0/authorize\?prompt=login" \
-tokenEndpoint "https://login.microsoftonline.com/<TenantId>/oauth2/v2.0/token" \
-clientID <ClientId> \
-clientSecret <ClientSecret> \
-Attribute1 email \
-Attribute2 family_name \
-Attribute3 given_name \
-Attribute4 upn \
-CertEndpoint "https://login.microsoftonline.com/<TenantId>/discovery/v2.0/keys" \
-userNameField oid \
-allowedAlgorithms HS256 RS256 RS512 \
-PKCE ENABLED \
-tokenEndpointAuthMethod client_secret_post \
-OAuthType GENERIC \
-grantType CODE \
-refreshInterval 1440
add authentication Policy EntraId_Authentication_Policy \
-rule true \
-action EntraId_Oauth_Server
<!--NeedCopy-->
authorizationEndpointにはクエリ文字列パラメーターprompt=loginが含まれており、ユーザーがNetScaler経由でStoreFrontにアクセスしようとすると、再認証が強制されます。
認証ポリシーを仮想サーバーにバインドする
bind authentication vserver EntraId_Authentication_VirtualServer \
-policy EntraId_Authentication_Policy \
-priority 100 \
-gotoPriorityExpression END
<!--NeedCopy-->
認証プロファイルを作成する
add authentication authnProfile EntraId_Auth_Profile \
-authnVsName EntraId_Authentication_VirtualServer \
-AuthenticationLevel 0
<!--NeedCopy-->
VPN仮想サーバーを作成し、認証プロファイルをバインドする
前の手順で作成した認証プロファイルを使用して、NetScaler GatewayとStoreFrontを統合するのステップ1、2、4を完了します。
または、適切なCitrix Gatewayが既にある場合は、新しい認証プロファイルをそれにバインドできます。このコマンドを実行すると、既存の認証プロファイルが置き換えられます。
set vpn vserver <StoreFront ICA Proxy vServer> \
-authentication ON \
-authnProfile EntraId_Auth_Profile
<!--NeedCopy-->
StoreFrontへのSSOのためのEntra IDトークンインジェクション構成
Citrix Gatewayがユーザーを認証した後、ユーザーが認証されていることを検証し、グループメンバーシップを検索できるように、十分な情報をStoreFrontに渡す必要があります。デフォルトでは、Citrix GatewayはActive Directoryのユーザー名とパスワードのみを送信します。Entra ID認証の場合、StoreFrontがMicrosoft Graph APIを使用してユーザー情報を検索できるように、Entra IDアクセストークンを渡す必要があります。これを実現するには、StoreFrontへのユーザー認証呼び出しにEntra IDトークンを追加する書き換えポリシーを追加する必要があります。書き換えEntra IDアクセストークンポリシーが有効にならない場合、ログインは失敗します。書き換えポリシー機能がデフォルトで無効になっており、まだ有効になっていない場合は、まず有効にする必要があります。
enable ns feature Rewrite
add rewrite action EntraId_Oauth_Insert_AccessToken_Header insert_http_header X-Citrix-OIDC-Access-Token "AAA.USER.ATTRIBUTE(\"accesstoken\")" \
-comment "A rewrite policy to add the OAUTH access_token to subsequent user authentication requests"
add rewrite policy EntraId_Oauth_Insert_AccessToken_Policy "HTTP.REQ.URL.TO_LOWER.ENDSWITH(\"gatewayauth/login\") || HTTP.REQ.URL.TO_LOWER.ENDSWITH(\"citrixagbasic/authenticate\")" EntraId_Oauth_Insert_AccessToken_Header \
-comment "A rewrite policy to add the OAUTH access_token to subsequent user authentication requests"
bind vpn vserver <StoreFront ICA Proxy vServer> \
-policy EntraId_Oauth_Insert_AccessToken_Policy \
-priority 100 \
-gotoPriorityExpression END \
-type REQUEST
<!--NeedCopy-->
ストアフロント内でシトリックス ゲートウェイを構成する
-
-
ログインの種類をドメインに設定します。
-
有効なコールバックURLを指定します。これは、StoreFrontでのEntra ID認証に必要です。
-
-
Citrix DaaSリソースを集約するストアに対して、リモートアクセス用にゲートウェイを構成します(/ja-jp/storefront/current-release/stores/remote-access.html)。
-
認証方法の管理画面で:
a. Citrix Gatewayからのパススルーを有効にします。 b. Entra ID設定を構成します。 c. 委任認証を有効にします。