OAuthサービスプロバイダーとしてのNetScaler ADC
認証、承認、および監査トラフィック管理機能は、Google、Facebook、Twitter などのアプリケーションでホストされているアプリケーションに対してユーザーを認証するための OAuth 認証をサポートします。
注意事項
- このソリューションが機能するには、NetScaler Advanced Edition以上が必要です。
- NetScaler 上の OAuth は、「OpenID 接続 2.0」に準拠しているすべての SAML IDP に対応しています。
重要:
コンテンツが多いWebサイトがセッションの期限切れ時に複数の認証要求を送信すると、NetScalerがCSRFエラーで応答することがあります。回避策として、OAuth ポリシーを設定するときに、メインエントリポイントであるホスト名とパスの両方に対してポリシーが設定されていることを確認することをお勧めします。
GUI を使用して OAuth を設定する
-
OAuth アクションとポリシーを設定します。
[ セキュリティ] > [AAA-アプリケーショントラフィック] > [ポリシー] > [認証] > [高度なポリシー] > [ポリシー] に移動し、アクションタイプとして OAuth を使用してポリシーを作成し、必要な OAuth アクションをポリシーに関連付けます。
-
OAuth ポリシーを認証仮想サーバーに関連付けます。
[ セキュリティ] > [AAA-アプリケーショントラフィック] > [仮想サーバ] に移動し、OAuth ポリシーを認証仮想サーバに関連付けます。
注:
属性 (1 ~ 16) は OAuth レスポンスで抽出できます。現在、これらの属性は評価されません。これらは将来の参照のために追加されます。
CLI を使用して OAuth を設定する
-
OAuth アクションを定義します。
add authentication OAuthAction <name> [-OAuthType <OAuthType>] [-authorizationEndpoint <URL>] [-tokenEndpoint <URL>] [-idtokenDecryptEndpoint <URL>] [-clientID <string>][-clientSecret ] [-defaultAuthenticationGroup <string>] [-Attribute1 <string>] [-Attribute2 <string>] [-Attribute3 <string>] [-Attributes <string>] [-tenantID <string>] [-GraphEndpoint <string>] [-refreshInterval <positive_integer>] [-CertEndpoint <string>][-audience <string>] [-userNameField <string>] [-skewTime <mins>] [-issuer <string>] [-UserInfoURL <URL>] [-CertFilePath <string>] [-grantType ( CODE | PASSWORD )] [-authentication ( ENABLED | DISABLED )] [-introspectURL <URL>][-allowedAlgorithms <allowedAlgorithms> ...] [-PKCE ( ENABLED | DISABLED )] [-tokenEndpointAuthMethod <tokenEndpointAuthMethod>] [-metadataUrl <URL>] [-resourceUri <URL>] <!--NeedCopy-->
-
アクションを高度な認証ポリシーに関連付けます。
add authentication Policy <name> -rule <expression> -action <string> <!--NeedCopy-->
例:
add authentication oauthAction a -authorizationEndpoint https://example.com/ -tokenEndpoint https://example.com/ -clientiD sadf -clientsecret df <!--NeedCopy-->
認証 OAuthAction パラメータの詳細については、「 認証 OAuthAction」を参照してください。
注:
- certEndpointが指定されると、NetScalerは設定された頻度でそのエンドポイントをポーリングしてキーを学習します。
NetScalerがローカルファイルを読み取り、そのファイルからキーを解析するように構成するために、次のように新しい構成オプションが導入されました:
set authentication OAuthAction <name> -CertFilePath <path to local file with jwks>
<!--NeedCopy-->
OAuth機能は、NetScaler GatewayとNetScalerの依存パーティ(RP)側とIdP側のトークンAPIで次の機能をサポートするようになりました。
-
PKCE(コード交換のための証明キー)のサポート
-
client_assertion のサポート
OAuth 認証に対する名前と値の属性のサポート
OAuth 認証属性に一意の名前と値を設定できるようになりました。名前は OAuth アクションパラメーターで「Attributes」として設定され、名前はクエリーによって取得されます。抽出された属性は、認証、認可、および監査セッションに保存されます。管理者は、選択した属性名の指定方法に基づいて、http.req.user.attribute("attribute name")
またはhttp.req.user.attribute(1)
を使用して、これらの属性をクエリできます。
属性の名前を指定することで、管理者はその属性名に関連付けられている属性値を簡単に検索できます。また、管理者は「attribute1 to attribute16」を番号だけで覚えておく必要がなくなりました。
重要
OAuth コマンドでは、合計サイズが 1024 バイト未満の最大 64 個の属性をカンマで区切って設定できます。
注
「属性 1 から属性 16」の合計値サイズと「属性」で指定された属性の値が 10 KB 以下であれば、セッションの失敗を回避できます。
CLI を使用して名前と値の属性を設定するには
コマンドプロンプトで入力します:
add authentication OAuthAction <name> [-Attributes <string>]
set authentication OAuthAction <name> [-Attributes <string>]
<!--NeedCopy-->
例:
add authentication OAuthAction a1 –attributes "email,company" –attribute1 email
set authentication OAuthAction oAuthAct1 -attributes "mail,sn,userprincipalName"
<!--NeedCopy-->