ADC

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として構成するには

  1. [設定] > [セキュリティ] > [AAA アプリケーショントラフィック] > [ポリシー] > [認証] > [高度なポリシー] > [OAuth IdP] に移動します。

  2. [プロファイル] をクリックし、[追加] をクリックします。

    認証 OAuth IDP プロファイルの作成」 画面で、次のパラメータの値を設定し、「 作成 」をクリックします。

    • [Name]:認証プロファイルの名前。
    • クライアントID :SPを識別する一意の文字列。
    • クライアント・シークレット :SPを識別する一意のシークレット。
    • リダイレクトURL :コード/トークンを投稿する必要があるSP上のエンドポイント。
    • 発行者名 — IdP を識別する文字列。
    • 対象者 — IdP によって送信されるトークンのターゲット受信者。これは、 受信者が確認することがあります。
    • Skew Time — トークンが有効である時間。
    • デフォルトの認証グループ – ポリシーの評価を簡素化し、ポリシーのカスタマイズを支援するために、このプロファイルのセッションに追加されるグループ。
  3. [ポリシー] をクリックし、[追加] をクリックします。

  4. 認証 OAuth IDP ポリシーの作成 」画面で、次のパラメータの値を設定し、「 作成 」をクリックします。

    • Name 認証ポリシーの名前。
    • アクション –以前に作成されたプロファイルの名前。
    • ログアクション– リクエストがこのポリシーに一致する場合に使用するメッセージログアクションの名前。提出必須ではありません。
    • 未定義の結果アクション:ポリシー評価の結果が未定義 (UNDEF)の場合に実行するアクション。必須フィールドではありません。
    • –ポリシーが特定の要求に応答するために使用するデフォルトの構文式。たとえば、trueです。
    • [Comments] :ポリシーに関するコメント。

OAuthIdPポリシーとLDAPポリシーを認証仮想サーバーにバインドする

  1. [設定] > [セキュリティ] > [AAA アプリケーショントラフィック] > [ポリシー] > [認証] > [高度なポリシー] > [アクション] > [LDAP]に移動します。

  2. [LDAP アクション] 画面で、[追加] をクリックします。

  3. 認証 LDAP サーバーの作成」 画面で、次のパラメーターの値を設定し、「 作成 」をクリックします。

    • 名前 –LDAPアクションの名前
    • サーバー名/サーバーIP — LDAP サーバーの FQDN または IP を指定します。
    • [セキュリティタイプ]、[ポート]、[サーバタイプ]、[タイムアウト] に適切な値を選択します。
    • [認証] がオンになっていることを確認します。
    • ベース DN: LDAP 検索を開始するベース。たとえば、dc=aaa、dc=ローカルです。
    • 管理者バインドDN: LDAPサーバーへのバインドのユーザー名。たとえば、admin@aaa.local です。
    • 管理者パスワード/パスワードの確認:LDAP をバインドするためのパスワード
    • [接続のテスト] をクリックして、設定をテストします。
    • サーバーのログオン名属性:「sAMアカウント名」 を選択します。
    • その他のフィールドは必須ではないため、必要に応じて設定できます。
  4. [設定] > [セキュリティ] > [AAA アプリケーショントラフィック] > [ポリシー] > [認証] > [高度なポリシー] > [ポリシー] に移動します。

  5. [認証ポリシー] 画面で、[追加] をクリックします。

  6. [認証ポリシーの作成] ページで、次のパラメータの値を設定し、[作成] をクリックします。

    • 「名前」— 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)への応答として送信されます。

OAuth 認証