OAuth 認証
認証、承認、および監査のトラフィック管理機能は、OAuthおよびOpenID Connect(OIDC)認証をサポートします。Google、Facebook、Twitter などのアプリケーションでホストされているサービスにユーザーを認証し、認証します。
注意事項
- ソリューションが機能するには、Citrix ADC Advanced Edition以降が必要です。
- アプライアンスがOIDCを使用してOAuthIdPとして機能するには、Citrix ADCアプライアンスがバージョン12.1以降である必要があります。
- Citrix ADC アプライアンスの OAuth は、「OpenID コネクト 2.0」に準拠しているすべての SAML IdP に対して認定されています。
Citrix ADCアプライアンスは、SAMLおよびOIDCを使用して、サービスプロバイダー(SP)またはIDプロバイダー(IdP)として動作するように構成できます。以前は、IdPとして構成されたCitrix ADCアプライアンスはSAMLプロトコルのみをサポートしていました。Citrix ADC 12.1バージョン以降、Citrix ADCはOIDCもサポートします。
OIDCはOAuthの拡張機能です authorization/delegation. Citrix ADCアプライアンスは、他の認証メカニズムと同じクラスのOAuthおよびOIDCプロトコルをサポートします。OIDCは、ユーザー情報を収集できないトークンのみを取得するOAuthとは対照的に、承認サーバーからユーザー情報を取得する方法を提供するため、OAuthへのアドオンです。
認証メカニズムにより、OpenID トークンのインライン検証が容易になります。Citrix ADCアプライアンスは、証明書を取得し、トークンの署名を検証するように構成できます。
OAuthおよびOIDCメカニズムを使用する主な利点は、ユーザー情報がホストされているアプリケーションに送信されないことです。したがって、個人情報の盗難のリスクが大幅に軽減されます。
認証、承認、および監査用に構成されたCitrix ADCアプライアンスは、HMACHS256アルゴリズムを使用して署名された着信トークンを受け入れるようになりました。さらに、SAML ID プロバイダー (IdP) の公開キーは、URL エンドポイントから学習するのではなく、ファイルから読み取られます。
Citrix ADC 実装では、アプリケーションは、認証、承認、および監査トラフィック管理仮想サーバーによってアクセスされます。したがって、OAuth を設定するには、OAuth ポリシーを設定する必要があります。OAuth ポリシーは、認証、認可、および監査トラフィック管理仮想サーバーに関連付ける必要があります。
OpenIDConnectプロトコルを構成します
Citrix ADCアプライアンスは、OIDCプロトコルを使用してIDプロバイダーとして構成できるようになりました。OIDCプロトコルは、Citrix ADCアプライアンスのID提供機能を強化します。これで、シングルサインオンでエンタープライズ全体でホストされているアプリケーションにアクセスできます。OIDCは、ユーザーパスワードを転送しないことでセキュリティを強化しますが、特定の有効期間を持つトークンを処理します。OIDCは、アプリやサービスなどの非ブラウザークライアントと統合するようにも設計されています。したがって、多くの実装でOIDCが広く採用されています。
OpenID コネクトをサポートすることの利点
- OIDCは、ユーザーが組織全体で単一のIDを持っているため、複数の認証パスワードを維持するオーバーヘッドを排除します。
- OIDCは、パスワードがIDプロバイダーとのみ共有され、アクセスするアプリケーションとは共有されないため、パスワードに堅牢なセキュリティを提供します。
- OIDCは、さまざまなシステムとの相互運用性が非常に高いため、ホストされているアプリケーションがOpenIDを簡単に受け入れることができます。
- OIDCは、ネイティブクライアントがサーバーと簡単に統合できるようにするシンプルなプロトコルです。
GUIを使用してOpenIDConnectプロトコルを使用してCitrix ADCアプライアンスをIdPとして構成するには
-
[設定] > [セキュリティ] > [AAA アプリケーショントラフィック] > [ポリシー] > [認証] > [高度なポリシー] > [OAuth IdP] に移動します。
-
[プロファイル] をクリックし、[追加] をクリックします。
「 認証 OAuth IDP プロファイルの作成」 画面で、次のパラメータの値を設定し、「 作成 」をクリックします。
- [Name]:認証プロファイルの名前。
- クライアントID :SPを識別する一意の文字列。
- クライアント・シークレット :SPを識別する一意のシークレット。
- リダイレクトURL :コード/トークンを投稿する必要があるSP上のエンドポイント。
- 発行者名 — IdP を識別する文字列。
- 対象者 — IdP によって送信されるトークンのターゲット受信者。これは、 受信者が確認することがあります。
- Skew Time — トークンが有効である時間。
- デフォルトの認証グループ – ポリシーの評価を簡素化し、ポリシーのカスタマイズを支援するために、このプロファイルのセッションに追加されるグループ。
-
[ポリシー] をクリックし、[追加] をクリックします。
-
「 認証 OAuth IDP ポリシーの作成 」画面で、次のパラメータの値を設定し、「 作成 」をクリックします。
- Name — 認証ポリシーの名前。
- アクション –以前に作成されたプロファイルの名前。
- ログアクション– リクエストがこのポリシーに一致する場合に使用するメッセージログアクションの名前。提出必須ではありません。
- 未定義の結果アクション:ポリシー評価の結果が未定義 (UNDEF)の場合に実行するアクション。必須フィールドではありません。
- 式 –ポリシーが特定の要求に応答するために使用するデフォルトの構文式。たとえば、trueです。
- [Comments] :ポリシーに関するコメント。
OAuthIdPポリシーとLDAPポリシーを認証仮想サーバーにバインドする
-
[設定] > [セキュリティ] > [AAA アプリケーショントラフィック] > [ポリシー] > [認証] > [高度なポリシー] > [アクション] > [LDAP]に移動します。
-
[LDAP アクション] 画面で、[追加] をクリックします。
-
「 認証 LDAP サーバーの作成」 画面で、次のパラメーターの値を設定し、「 作成 」をクリックします。
- 名前 –LDAPアクションの名前
- サーバー名/サーバーIP — LDAP サーバーの FQDN または IP を指定します。
- [セキュリティタイプ]、[ポート]、[サーバタイプ]、[タイムアウト] に適切な値を選択します。
- [認証] がオンになっていることを確認します。
- ベース DN: LDAP 検索を開始するベース。たとえば、dc=aaa、dc=ローカルです。
- 管理者バインドDN: LDAPサーバーへのバインドのユーザー名。たとえば、admin@aaa.local です。
- 管理者パスワード/パスワードの確認:LDAP をバインドするためのパスワード
- [接続のテスト] をクリックして、設定をテストします。
- サーバーのログオン名属性:「sAMアカウント名」 を選択します。
- その他のフィールドは必須ではないため、必要に応じて設定できます。
-
[設定] > [セキュリティ] > [AAA アプリケーショントラフィック] > [ポリシー] > [認証] > [高度なポリシー] > [ポリシー] に移動します。
-
[認証ポリシー] 画面で、[追加] をクリックします。
-
[認証ポリシーの作成] ページで、次のパラメータの値を設定し、[作成] をクリックします。
- 「名前」— LDAP 認証ポリシーの名前。
- アクションタイプ— [LDAP] を選択します。
- 「アクション」— LDAP アクションを選択します。
- Expression — ポリシーが特定の要求に応答するために使用するデフォルトの構文式。たとえば、true**です。
CLIを使用してOpenIDConnectプロトコルを使用してCitrix ADCアプライアンスをIdPとして構成するには
コマンドプロンプトで、次のコマンドを入力します。
add authentication OAuthIDPProfile <name> [-clientID <string>][-clientSecret ][-redirectURL <URL>][-issuer <string>][-audience <string>][-skewTime <mins>] [-defaultAuthenticationGroup <string>]<!--NeedCopy-->
-
add authentication OAuthIdPPolicy <name> -rule <expression> [-action <string> [-undefAction <string>] [-comment <string>][-logAction <string>]<!--NeedCopy-->
-
add authentication ldapAction aaa-ldap-act -serverIP 10.0.0.10 -ldapBase "dc=aaa,dc=local"<!--NeedCopy-->
-
ldapBindDn <administrator@aaa.local> -ldapBindDnPassword <password> -ldapLoginName sAMAccountName<!--NeedCopy-->
-
add authentication policy aaa-ldap-adv-pol -rule true -action aaa-ldap-act<!--NeedCopy-->
-
bind authentication vserver auth_vs -policy <ldap_policy_name> -priority 100 -gotoPriorityExpression NEXT<!--NeedCopy-->
-
bind authentication vserver auth_vs -policy <OAuthIDPPolicyName> -priority 5 -gotoPriorityExpression END<!--NeedCopy-->
bind vpn global –certkey <><!--NeedCopy-->
注
複数のキーをバインドできます。バインドされた証明書のパブリック部分は、
jwks\_uri query (https://gw/oauth/idp/certs)
への応答として送信されます。