OAuth IdPとしてのCitrix ADC
Citrix ADCアプライアンスは,OpenID-Connect (OIDC)プロトコルを使用して,アイデンティティプロバイダとして構成できるようになりました。OIDCプロトコルは,Citrix ADCアプラデンティティ提供機能を強化します。OIDCは,ユーザーパスワードを転送するのではなく,特定の有効期間を持つトークンを使用することにより,セキュリティを強化するため,シングルサインオンでエンタープライズ規模のホストアプリケーションにアクセスできるようになりました。OpenIDは,アプリやサービスなどのブラウザ以外のクライアントと統合するように設計されています。したがって,oidcプロトコルは多くの実装で広く採用されています。
注
アプライアンスがOIDCプロトコルを使用してOAuth IdPとして機能するには,Citrix ADCがバージョン12.1以降である必要があります。
Citrix ADCをOAuth IdPとして持
- ユーザーが組織全体で1つのIDを持つため,複数の認証パスワードを維持するオーバーヘッドを排除します。
- パスワードはIDプロバイダでのみ共有され,アクセスするアプリケーションとは共有されないため,パスワードの堅牢なセキュリティを提供します。
- さまざまなシステムとの膨大な相互運用性を提供し,ホストされたアプリケーションがOpenIDを受け付けやすくなります。
注
ソリューションが機能するには,Citrix ADC以高级版上が必要です。
图形界面を使用してCitrix ADCアプラOAuth IdPとして構成するには
[構成]>[セキュリティ]> [AAAアプリケーショントラフィック]>[ポリシー]>[認証]>[高度なポリシー]> [OAuth IdP]に移動します。
[プロファ邮箱ル]をクリックし,[追加]をクリックします。
[認証OAuth IDPプロファルの作成画面で,次のパラメタの値を設定し,[作成をクリックします。
的名字:認証プロファ邮箱ルの名前。文字,数字,またはアンダースコア文字(_)で始まり,文字,数字,ハイフン(-),ピリオド(.)ポンド(#),スペース(),アットマーク(@),等号(=),コロン(:),およびアンダースコア文字のみを含める必要があります。プロファ邮箱ルの作成後は変更できません。
- クラ邮箱アントid: spを識別する一意の文字列。認可サバは,このidを使用してクラ。最大長:127
- 客户的秘密—ユザと認可サバによって確立されたシクレット文字列。最大長:239
- リダ邮箱レクトurl—コド/トsp上のエンドポ。
- [发行人的名字]:トクンを受け付けるサバのid .输出说明最大長:127
- オディエンス—IdPによって送信されるトクンのタゲット受信者。これは受信者がチェックするかもしれません。
- スキュ時間:このオプションは,Citrix ADCが受信トークンで許可するクロックスキューを分単位で指定します。たとえば,SkewTimeが10の場合,トークンは(現在の時刻-10)分から(現在時刻+ 10)分,つまり20分まで有効です。デフォルト値:5。
- デフォルト認証グルプ——nFactorフローで使用できるIdPによってこのプロファイルが選択されたときに,セッション内部グループリストに追加されるグループ。これは,次の認証ポリシの式(aaa.user .の式)。IS_MEMBER_OF (" xxx "))で使用できます。証明書利用者に関連するnFactorフロを特定します。最大長:63
为此概要文件添加到会话的组,以简化策略评估并帮助定制策略。除了提取的组之外,这是在身份验证成功时选择的默认组。最大长度:63。
[ポリシ]をクリックし,[追加]をクリックします。
[認証OAuth IDPポリシの作成画面で,次のパラメタの値を設定し,[作成をクリックします。
- [名称]:認証ポリシの名前。
- 行动—以前に作成されたプロファ邮箱ルの名前。
- 日志操作—リクエストがこのポリシに一致する場合に使用するメッセジログアクションの名前。必須の提出ではありません。
- 未定义结果アクション输出说明:ポリシ評価の結果が未定義(undef)である場合に実行するアクション。必須フィルドではありません。
- 表达式—ポリシが特定のリクエストに応答するために使用する高度なポリシ式。たとえば,真です。
- コメント—ポリシに関するコメント。
OAuthIdPポリシとLDAPポリシ
設定>セキュリティ> 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アクションを選択します。
- 表达-ポリシが特定のリクエストに応答するために使用する高度なポリシ式。たとえば,真**です。
OAuth機能は,証明書利用者側(RP)側およびCitrix网关およびCitrix ADCのIdP側からのトークンAPIで次の機能をサポートするようになりました。
pkce(コド交換のための証明キ)のサポト
Client_assertionのサポト
コマンドラインでOIDCプロトコルを使用してCitrix ADCアプライアンスをIdPとして構成するには
コマンドプロンプトで,次のコマンドを入力します。
add authentication OAuthIDPProfile [-clientID ][-clientSecret][-redirectURL ][-issuer ][-audience ][-skewTime ] [-defaultAuthenticationGroup ] add authentication OAuthIdPPolicy -rule [-action [- underdefaction ][-comment ][-logAction ] add authentication ldapAction aaa-ldap-act -serverIP 10.0.0.10 -ldapBase "dc=aaa,dc=local" ldapBindDn -ldapBindDnPassword . [-defaultAuthenticationGroup -ldap-ad -pol -rule true -action aaa-ldap-act bind authentication vserver auth_vs -policy -priority 100 -gotoPriorityExpression NEXT bind authentication vserver auth_vs -policy -priority 5 -gotoPriorityExpression END bind vpn global -certkey <>
注
複数のキをバ。バンドされた証明書のパブリック部分は,
jwks \ _uri查询(https://gw/oauth/idp/certs)
への応答として送信されます。
Oidcプロトコルでの暗号化されたトクンのサポト
OIDCメカニズムを備えたCitrix ADCアプライアンスは,暗号化されたトークンの署名付きトークンの送信をサポートするようになりました。Citrix ADCアプライアンスは、JSON Web暗号化仕様を使用して暗号化されたトークンを計算し、暗号化されたトークンのコンパクトなシリアル化のみをサポートします。OpenIDトークンを暗号化するには、Citrix ADCアプライアンスに証明書利用者(RP)の公開キーが必要です。公開鍵は、証明書利用者の既知の設定エンドポイントをポーリングすることで動的に取得されます。
新しい“relyingPartyMetadataURLオプションが”認証OAuthidpProfile”プロフィールに導入されました。
Cliを使用して証明書利用者のエンドポントを設定するには
コマンドプロンプトで入力します。
“‘OAuthIDPProfile设置身份验证
- * * relyingPartyMetadataURL * *: Citrix ADC IdPが構成されている証明書利用者に関する詳細を取得できるエンドポイント。メタデタ応答には,RP公開キのjwks_uriのエンドポントを含める必要があります。- * * refreshInterval * *証明書を分単位で更新するために,このエンドポイントをポーリングする必要があるレートを定義します。—**status**—ポリング操作のステタスを反映します。Citrix ADCアプライアンスが公開鍵を正常に取得すると、ステータスは完了します。 **例** ``` set authentication OAuthIDPProfile sample_profile -relyingPartyMetadataURL https://rp.customer.com/metadata -refreshInterval 50 -status < >
エンドポイントが構成されると,Citrix ADCアプライアンスはまず証明書利用者の既知のエンドポイントをポーリングして構成を読み取ります。現在,Citrix ADCアプラereplicationアンスは" jwks_uri "エンドポereplicationントのみを処理します。
- 応答に" jwks_uri "がない場合,プロファルのステタスは完了していません. txt
- 応答に“jwks_uriが存在する場合,Citrix ADCはそのエンドポイントもポーリングして,証明書利用者の公開鍵を読み取ります。
注:
トークン暗号化では,RSAES-OAEPおよびAES256 GCM暗号化タイプのアルゴリズムのみがサポートされています。
OpenIDコネクトでのカスタム属性のサポト
OpenID
証明書利用者は,ユーザープロファイルの作成や承認の決定を行うために,トークンに1つ以上のユーザー名またはユーザープリンシパル名(隐喻)を要求する場合があります。ほとんどの場合,ユザ。場合によっては,ユーザーアカウントのプロビジョニングに,姓や姓などの詳細が必要になることがあります。
IdPとして構成されたCitrix ADCアプライアンスは,式を使用してOIDCid_tokenに追加の属性を送信するために使用できます。高度なポリシ式は,要件に従ってカスタム属性を送信するために使用されます。Citrix IdPは、属性に対応する式を評価し、最終トークンを計算します。
Citrix ADCアプラアンスは自動的に出力デタをJSONify
します。たとえば,数値(SSNなど)やブール値(真またはfalse)は引用符で囲まれません。グルプなどの複数値を持属性は,配列マ("["と"]")内に配置されます。複合型属性は自動的に計算されず,要件に従ってこれらの複合値のPI式を設定できます。
Cliを使用して証明書利用者のエンドポントを設定するには
コマンドプロンプトで入力します。
set oauthidpprofile -attributes
< AAA-custom-attribute-pattern >
は,次のように記述できます。
Attribute1 = PI-Expression@@@attribute2 = PI-Expression@@@
“attribute1”、“attribute2は,id_tokenに挿入される属性の名前を表すリテラル文字列です。
注:最大2000バereplicationトの属性を設定できます。
例:设置oauthidpprofile sample_1 -attributes q{myname=http.req.user.name@@@ssn="123456789"@@@jit="false"@@@groups=http.req.user.groups}
- 先行するPI式は,属性に対して使用される値を表す高度なポリシ式です。PI式は," 'ハドコドされた文字列' "などの文字列リテラルを送信するために使用できます。文字列リテラルは,一重引用符を囲む二重引用符で囲むか,開始とパターンを二重引用符で囲みます(前述のとおり,開始パターンは“q”{です)。属性の値が文字列リテラルでない場合,式は実行時に評価され,その値はト,クンで送信されます。実行時の値が空の場合,対応する属性はidトクンに追加されません。
- 例で定義されているように,“false”は属性“jit”のリテラル文字列です。また,”
ssn
には参照用にハドコドされた値があります。グルプと”的名字
は文字列を生成するPI式です。
Citrix Gatewayでのアクティブ/アクティブGSLB展開のサポト
OIDCプロトコルを使用してアイデンティティプロバイダ(IdP)として構成されたCitrix网关は,アクティブ/アクティブGSLB展開をサポートできます。Citrix网关IdPでのアクティブ/アクティブGSLB展開では,複数の地理的ロケーションで受信したユーザーログイン要求を負荷分散できます。
重要
セキュリティを強化するために,CA証明書をSSLサービスにバインドし,SSLサービスで証明書検証を有効にすることをお勧めします。
GSLBセットアップの設定の詳細にいては,GSLB . exeのセットアップと設定の例を参照してください。