Citrix CloudのIDプロバイダーとしてオンプレミスのNetScaler Gatewayを使用する
Citrix Cloudでは、ワークスペースにサインインする利用者を認証するためのIDプロバイダーとしてオンプレミスのNetScaler Gatewayを使用することをサポートしています。
NetScaler Gateway認証を使用すると、次のことが可能になります。
- 引き続き、既存のNetScaler Gatewayでユーザーを認証するため、Citrix Workspace経由でオンプレミスのVirtual Apps and Desktopsのリソースにアクセスできます。
- NetScaler Gatewayの認証、承認、および監査機能をCitrix Workspaceで使用してください。
- パススルー認証、スマートカード、セキュアトークン、条件付きアクセスポリシー、フェデレーションなどの機能を使用して、ユーザーがCitrix Workspace を通じて必要なリソースにアクセスできるようにします。
NetScaler Gateway認証は、次の製品バージョンでの使用がサポートされています。
- NetScaler Gateway 13.0 41.20 アドバンスエディションまたはそれ以降
- NetScaler Gateway 12.1 54.13 アドバンスエディションまたはそれ以降
前提条件
-
クラウドコネクタ-Citrix Cloud Connectorソフトウェアをインストールするには、少なくとも2台のサーバーが必要です。
-
Active Directory -必要なチェックを実行します。
-
NetScaler Gatewayの要件
-
クラシックポリシーの非推奨のため、オンプレミスゲートウェイで高度なポリシーを使用します。
-
Citrix Workspaceへのサブスクライバを認証するためにゲートウェイを構成する場合、ゲートウェイはOpenID Connectプロバイダーとして機能します。Citrix CloudとGateway間のメッセージはOIDCプロトコルに準拠し、デジタル署名トークンが含まれます。したがって、これらのトークンに署名するための証明書を構成する必要があります。
-
クロック同期-ゲートウェイはNTP時刻に同期する必要があります。
-
詳しくは、「前提条件」を参照してください。
オンプレミスのNetScaler Gateway でOAuth IdPポリシーを作成する
重要:
Citrix Cloud >[アイデンティティおよびアクセス管理]>[認証]タブで、クライアントID、シークレット、およびリダイレクトURLを生成しておく必要があります 。詳しくは、「 オンプレミスのNetScaler GatewayをCitrix Cloudに接続する」を参照してください。
OAuth IdP認証ポリシーの作成には、次のタスクが含まれます。
-
OAuth IDプロバイダープロファイルを作成する。
-
OAuth IdP ポリシーを追加します。
-
OAuth IdP ポリシーを認証仮想サーバーにバインドします。
-
証明書をグローバルにバインドします。
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 -certkeyName <>
<!--NeedCopy-->
GUI を使用した OAuth IdP プロファイルの作成
-
[ セキュリティ] > [AAA-アプリケーショントラフィック] > [ポリシー] > [認証] > [高度なポリシー] > [OAuth IDプロバイダー]に移動します。
-
OAuth IDP ページで、[ プロファイル ] タブを選択し、[ 追加] をクリックします。
-
OAuth IdP プロファイルを設定します。
注:
-
Citrix Cloud >[アイデンティティとアクセス管理]>[認証]タブからクライアントID、シークレット、およびリダイレクトURLの値をコピーして貼り付けて 、Citrix Cloudへの接続を確立します。
-
発行者名の例にゲートウェイ URL を正しく入力します。 https://GatewayFQDN.com
-
また、クライアント ID を [ オーディエンス ] フィールドにもコピーして貼り付けます。
-
パスワードを送信:シングルサインオンサポートの場合、このオプションを有効にします。デフォルトでは、このオプションは無効になっています。
-
-
[ 認証 OAuth IDP プロファイルの作成 ] 画面で、次のパラメータの値を設定し、[ 作成] をクリックします。
- 名前:認証プロファイルの名前。文字、数字、またはアンダースコア文字(_)で開始する必要があります。名前には、英字、数字、ハイフン (-)、ピリオド (.)、ポンド (#)、スペース ()、アットマーク (@)、等号 (=)、コロン (:)、およびアンダースコアのみを含める必要があります。プロファイルの作成後は変更できません。
- クライアント ID: SP を識別する一意の文字列。承認サーバーは、このIDを使用してクライアントの構成を推測します。最大文字数:127。
- クライアントシークレット:ユーザーと認証サーバーによって設定されたシークレット文字列。最大文字数:239。
- リダイレクト URL: コード/トークンを投稿する必要がある SP 上のエンドポイント。
- 発行者名:トークンを受け入れるサーバーのID。最大文字数:127。例:https://GatewayFQDN.com
- オーディエンス:IdP から送信されるトークンのターゲット受信者。このトークンは受信者によって確認されます。
- スキュー時間:このオプションは、NetScalerが受信トークンで許容するクロックスキュー(分単位)を指定します。たとえば、SkewTime が 10 の場合、トークンは (現在の時刻-10) 分から (現在時刻 + 10) 分、つまり 20 分まで有効です。デフォルト値:5。
- デフォルト認証グループ:このプロファイルがIdPによって選択されたときにセッション内部グループリストに追加されるグループで、nFactorフローで使用できます。証明書パーティ関連の nFactor フローを識別するための認証ポリシーの式(AAA.USER.IS_MEMBER_OF (「xxx」))で使用できます。最大文字数:63。
このプロファイルのセッションにグループが追加され、ポリシーの評価が簡素化され、ポリシーのカスタマイズに役立ちます。このグループは、抽出されたグループに加えて認証が成功した場合に選択されるデフォルトのグループです。
- 依存パーティメタデータURL:NetScaler IdPが構成中の依存パーティに関する詳細を取得できるエンドポイント。メタデータ応答には、RP 公開鍵の jwks_uri のエンドポイントが含まれている必要があります。最大長は 255 です。
- 更新間隔:依存パーティメタデータが更新される間隔。デフォルトの間隔は 50 です。
- トークンの暗号化:このオプションを選択すると、 NetScalerから送信されるトークンは暗号化されます。
- 署名サービス: データの署名に使用されるクラウドサービスの名前。これは、署名がクラウドにオフロードされた場合にのみ適用されます。
- 属性:ID トークンに挿入される属性の名前と値のペア。最大長は 1047 文字です。
- パスワードを送信:ID トークンで暗号化されたパスワードを送信するには、このオプションを選択します。
-
[ポリシー] をクリックし、[追加] をクリックします
-
[ 認証 OAuth IDP ポリシーの作成 ] 画面で、次のパラメータの値を設定し、[ 作成] をクリックします。
- Name - 認証ポリシーの名前。
- Action - 以前に作成されたプロファイルの名前。
- Log Action - 要求がこのポリシーに一致する場合に使用するメッセージログアクションの名前。必須の提出ではありません。
- Undefined-Resultアクション :ポリシー評価の結果が未定義(UNDEF)である場合に実行するアクション。必須フィールドではありません。
- Expression - ポリシーが特定の要求に応答するために使用するデフォルトの構文式。例:true。
- Comments - ポリシーに関するコメント。
注:
SendPassword がオン(デフォルトではオフ)に設定されている場合、ユーザー資格情報は暗号化され、安全なチャネルを介してCitrix Cloudに渡されます。セキュリティで保護されたチャネルを介してユーザー資格情報を渡すと、起動時にCitrix Virtual Apps and DesktopsへのSSOを有効にできます。
OAuthIdP ポリシーと LDAP ポリシーを認証仮想サーバーにバインドする
-
設定 > セキュリティ > AAA アプリケーショントラフィック > ポリシー > 認証 > 詳細ポリシー > アクション > LDAPに移動します。
-
[ LDAP アクション ] 画面で、[ 追加] をクリックします。
-
[ 認証 LDAP サーバーの作成 ] 画面で、次のパラメータの値を設定し、[ 作成] をクリックします。
- Name — LDAP アクションの名前
- サーバ名/サーバ IP — LDAP サーバの FQDN または IP を指定します。
- [ セキュリティタイプ]、[ポート]、[サーバータイプ]、[タイムアウト] の適切な値を選択する
- [ 認証] がオンになっていることを確認します
-
ベース DN: LDAP 検索を開始する基本。例:
dc=aaa,dc=local
。 -
管理者バインド DN: LDAP サーバーへのバインドのユーザー名。例:
admin@aaa.local
。 - 管理者パスワード/パスワードの確認:LDAP をバインドするためのパスワード
- [ 接続のテスト ] をクリックして、設定をテストします。
- サーバーログオン名属性:「samAccountName」を選択します。
- その他のフィールドは必須ではないため、必要に応じて設定できます。
-
設定 > セキュリティ > AAA アプリケーショントラフィック > ポリシー > 認証 > 詳細ポリシー > ポリシーにナビゲートして下さい。
-
[ 認証ポリシー ] 画面で、[ 追加] をクリックします。
-
[ 認証ポリシーの作成 ] ページで、次のパラメータの値を設定し、[ 作成] をクリックします。
- Name — LDAP 認証ポリシーの名前。
- [アクションタイプ] — [ LDAP] を選択します。
- [アクション] — LDAP アクションを選択します。
- Expression — ポリシーが特定のリクエストに応答するために使用するデフォルトの構文式。例:true**。
認証コンテキストクラス参照値を保存
オンプレミスのIdPとして構成されたNetScalerは、Citrix Workspaceプラットフォーム(WSP)のマルチドメインログイン機能をサポートするために、Citrix Workspaceが提供する認証コンテキストクラスリファレンス(ACR)値を保存できます。
Citrix WorkspaceがACR値をNetScaler IdPのOAuth認証エンドポイントに送信すると、NetScalerはACR値を保存します。これらの ACR 値を使用して、nFactor フローの次のファクターを決定できます。
OAuth IdP /oauth/idp/
認証エンドポイントのログインは、以下の形式の ACR 値パラメータを含むクエリを受信します。NetScalerは、ACR値をユーザーセッション属性に保存します。
GET /oauth/idp/login?response_type=code&scope=openid%20profile%20ctxs_cc&acr_values=device_id:69eec3333333333+wsp:wspmultiurlmain.cloud.com&client_id=test&redirect_uri=https%3A%2F%2Fav6.aaa.local%2Foauth%2Flogin&state=Y3R4PXlFYkpFdEJOeDFLN0hUY2VCc1pBOGc2RjU3d21PcjJ2aXprZkhFSkdBTzVVTzM4eEZBUW1qTEFwR25DSE&code_challenge_method=S256&code_challenge=IJgD-qaJZdhuGt3m262BjjMXrFTOwioV6uSBA-uIY18
上の例では、ACR 値パラメータはacr_values=device_id:69eec3333333333+wsp:wspmultiurlmain.cloud.com
です。
nFactor フローで ACR 値を使用する方法を示す式の例を以下に示します。
-
WSP URL を取得するには、ポリシー設定内の式
aaa.user.wsp.eq("URL")
を使用します。例:
add authentication policy wsp_check -rule aaa.user.wsp.eq("wspmultiurlmain.cloud.com ") -action ldap-act
-
ACR 値パラメータからデバイス ID を取得するには、ポリシー設定内の式
aaa.user.acr_values.value("device_id").eq(value)
を使用します。例:
add authentication policy acr_value_check -rule aaa.user.acr_values.value("device_id").eq("69eec3333333333") -action ldap-act
-
ACR 値パラメータから WSP 値を取得するには、ポリシー設定内の式
aaa.user.acr_values.value("wsp").eq("URL")
を使用します。例:
add authentication policy acr_value_check -rule aaa.user.acr_values.value("wsp").eq("wspmultiurlmain.cloud.com") -action ldap-act