OIDC エントラ ID 認証 (プレビュー)
このセクションでは、ユーザーがEntra IDを使用して認証できるようにNetScalerとStoreFrontを構成する方法について説明します。この構成では、ユーザーはハイブリッドIDを持つことも、Active DirectoryアカウントなしでEntraのみのIDを持つこともできます。
重要:
VDAへのEntra IDシングルサインオンは現在プレビュー中です。この機能はサポートなしで提供されており、本番環境での使用はまだ推奨されていません。
前提条件
- ネットスケーラー エーディーシー
- StoreFront のバージョン 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 認証プロファイルを構成する方法について説明します。この構成は、サインインのために外部 OAuth IdP (Microsoft Entra ID など) にユーザーをリダイレクトする方法と、認証後に受信した OAuth トークンを処理する方法を ADC に指示します。エンドポイント、クライアント資格情報、スコープ、および 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に認証する際にOIDをユーザー名として渡すように、userNameFieldを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仮想サーバーを作成し、認証プロファイルをバインドする
StoreFrontとNetScaler Gatewayを統合するのステップ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-->
ストアフロント内でのCitrix ゲートウェイの構成
-
ストアフロントにNetScaler Gatewayインスタンスを追加する(https://docs.netscaler.com/ja-jp/netscaler-gateway/current-release/integrate-citrix-gateway-with-citrix-products/integrate-citrix-gateway-with-storefront.html#5-add-a-netscaler-gateway-instance-on-storefront)。
-
-
ログインの種類をドメインに設定します。
-
有効なコールバックURLを指定します。これは、StoreFrontでのEntra ID認証に必要です。
-
-
Citrix DaaSリソースを集約するストアの場合、リモートアクセス用にゲートウェイを構成する(/ja-jp/storefront/current-release/stores/remote-access.html)。
-
認証方法の管理画面で、Citrix Gatewayからのパススルーを有効にし、Entra ID設定を構成します。