StoreFront

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 としてあなたを使用します」と伝えます。

  1. NetScaler または StoreFront 認証に使用する Entra ID テナントの Azure ポータルにサインインします。
  2. Microsoft Entra ID リソース > 管理 > アプリの登録 に移動し、新規登録 を選択します。
  3. アプリケーションに名前を付けます。例えば、NetScaler StoreFront Authentication のように指定します。
  4. サポートされているアカウントの種類で、この組織ディレクトリ内のアカウントのみを選択します。
  5. リダイレクト 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)

クライアントシークレットの作成

クライアントシークレットを作成するには:

  1. アプリケーションを登録したら、管理 > 証明書とシークレットに移動します。
  2. クライアントシークレットを選択し、新しいクライアントシークレットを選択します。 アプリはこれらの資格情報を使用して、IdPと安全に通信し、トークンを要求します。
  3. シークレットの説明と期間を指定します。
  4. シークレットを作成したら、その値を記録しておきます。これはセットアッププロセスで後で必要になり、作成のこの段階でのみ表示されるためです。

アジュール ネットスケーラー(/ja-jp/storefront/current-release/media/integrate-with-citrix-gateway-and-citrix-adc/azure-netscaler-login.png)

アプリケーション権限の構成

アプリケーション権限を構成するには:

  1. 管理 > アプリの登録に移動し、アプリケーションを選択します。
  2. 管理 > API のアクセス許可を選択します。
  3. User.Read」権限はデフォルトで既に追加されています。
  4. openidprofile を追加するようにしてください。
  5. <tenant name> の管理者同意を付与」を選択し、承認します。

Microsoft Entra ID の API 権限における「管理者同意を付与」とは、管理者が組織内のすべてのユーザーに代わって、要求された権限でアプリケーションが特定のリソースまたは API にアクセスすることを承認することを意味します。

Azure 権限の付与

XML信頼を有効にするようにCitrix DaaSを構成する

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

  1. Citrix Cloudにサインインし、DaaSコンソールに移動します。
  2. 設定 に移動します。
  3. XML信頼 をオンにします。

    Azure 権限の付与

  4. (オプションの手順) セキュリティを強化するために、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に認証する際に、userNameFieldoidに設定し、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-->

ストアフロント内でシトリックス ゲートウェイを構成する

  1. ストアフロントにネットスケーラー ゲートウェイインスタンスを追加する

  2. シトリックス ゲートウェイを構成する

    • ログインの種類をドメインに設定します。

    • 有効なコールバックURLを指定します。これは、StoreFrontでのEntra ID認証に必要です。

  3. Citrix DaaSリソースを集約するストアに対して、リモートアクセス用にゲートウェイを構成します(/ja-jp/storefront/current-release/stores/remote-access.html)。

  4. 認証方法の管理画面で:

a. Citrix Gatewayからのパススルーを有効にします。 b. Entra ID設定を構成します。 c. 委任認証を有効にします。