SAMLサービスプロバイダーとしてのNetScaler
SAML サービスプロバイダー (SP) は、サービスプロバイダーによってデプロイされる SAML エンティティです。ユーザーが保護されたアプリケーションにアクセスしようとすると、SPはクライアント要求を評価します。クライアントが認証されていない (有効な NSC_TMAA または NSC_TMAS Cookie がない) 場合、SP は要求を SAML ID プロバイダー (IdP) にリダイレクトします。
また、SP は IdP から受信した SAML アサーションも検証します。
NetScalerアプライアンスをSPとして構成すると、トラフィック管理仮想サーバー(負荷分散またはコンテンツスイッチング)は、関連するSAMLアクションに関連するすべてのユーザー要求を受信します。
NetScalerアプライアンスは、ログアウト中のPOSTおよびリダイレクトバインディングもサポートします。
注
NetScalerアプライアンスは、SAML IdPがアプライアンスまたは任意の外部SAML IdPに設定されている展開環境で、SAML SPとして使用できます。
SAML SP、NetScaler アプライアンスとして使用する場合:
-
SAML トークンからユーザー情報 (属性) を抽出できます。この情報は、NetScalerアプライアンスで構成されるポリシーで使用できます。たとえば、GroupMember属性と電子メールアドレス属性を抽出する場合は、SAMLAction でAttribute2 パラメーターを GroupMember として、Attribute3パラメーターを電子メールアドレスとして指定します。
注
ユーザー名、パスワード、ログアウト URL などのデフォルト属性は、属性 1 ~ 16 で抽出しないでください。これらは暗黙的に解析され、セッションに保存されるためです。
-
受信 SAML アサーションから最大 127 バイトの属性名を抽出できます。以前の制限は 63 バイトでした。
-
ポスト、リダイレクト、アーティファクトバインディングをサポートします。
注
インフレートまたはデコード後のアサーションが 10K を超える場合は、大量のデータにリダイレクトバインディングを使用しないでください。
-
アサーションを復号化できます。
-
SAML アサーションから複数値の属性を抽出できます。これらの属性は、次のようなネストされた XML タグとして送信されます。
<AttributeValue> <AttributeValue>Value1</AttributeValue> <AttributeValue>Value2</AttributeValue> \</AttributeValue\>
注
NetScaler 13.0ビルド63.x以降では、SAML属性の個々の最大長が最大40Kバイトまで増加しました。すべての属性のサイズは 40K バイトを超えてはなりません。
以前のXMLが表示されている場合、NetScalerアプライアンスは、値1のみを抽出する古いファームウェアとは対照的に、値1と値2の両方を特定の属性の値として抽出できます。
-
SAML アサーションの有効性を指定できます。
NetScaler SAML IdP とピア SAML SP のシステム時刻が同期していない場合、いずれかの当事者によってメッセージが無効になることがあります。このような状況を回避するために、アサーションが有効な期間を設定できるようになりました。
この期間は「スキュー時間」と呼ばれ、メッセージを受け付けることができる分数を指定します。スキュータイムは SAML SP と SAML IdP で設定できます。
-
認証リクエストで「ForceAuth」という追加属性を外部 IdP (ID プロバイダー) に送信できます。デフォルトでは、ForceAuthn は「False」に設定されています。「True」に設定すると、既存の認証コンテキストに関係なくIdPに認証を強制するよう提案できます。また、NetScaler SPは、アーティファクトバインディングで構成されている場合、クエリパラメータで認証要求を送信します。
CLIを使用してNetScalerアプライアンスをSAML SPとして構成するには
-
SAML SP アクションを設定します。
例
次のコマンドは、認証されていないユーザー要求をリダイレクトする SAML アクションを追加します。
add authentication samlAction SamlSPAct1 -metadataUrl "https://ksidp1.ksaaa.local/metadata/samlidp/SAML_IDP_profile" -samlIdPCertName nssp -samlSigningCertName nssp –samlRedirectUrl https://auth1.example.com -relaystateRule "AAA.LOGIN.RELAYSTATE.EQ(\"https://lb.example1.com/\")"
注意事項
- SamLActionコマンドので
-samlIdPCertName
提供される証明書は、シグニチャの検証を成功させるには、IdP の対応する証明書と一致する必要があります。 - SAML は RSA 証明書のみをサポートします。HSM、FIPS などの他の証明書はサポートされていません。
- 式の末尾に「/」を付けた完全なドメイン名を使用することをお勧めします。
- 管理者は、samlAction コマンドで RelaysStateRule の式を設定する必要があります。式には、ユーザーが認証仮想サーバーにリダイレクトされる前に接続する公開ドメインのリストが含まれている必要があります。たとえば、式には、この SAML アクションを認証に使用するフロントエンド仮想サーバー (VPN、LB、または CS) のドメインが含まれている必要があります。
- 認証仮想サーバーが SAML IdP として構成されている場合、SAML SP アクションで使用する必要があるメタデータ URL は
https://<citrix-adc-saml-idp-fqdn>/metadata/samlidp/SAML_IDP_profile
です。
注:
IdP チェーンの一部として複数の SAML ポリシーがある場合は、最初の SAML ポリシーにのみリレーステートルールを設定すれば十分です。
コマンドの詳細については、「https://developer-docs.citrix.com/projects/citrix-adc-command-reference/en/latest/authentication/authentication-samlAction」および「https://support.citrix.com/article/CTX316577」を参照してください。
- SamLActionコマンドので
-
SAML ポリシーを設定します。
例
次のコマンドは、以前に定義した SAML アクションをすべてのトラフィックに適用する SAML ポリシーを定義します。
add authentication policy SamlSPPol1 -rule true -action SamlSPAct1
-
SAML ポリシーを認証仮想サーバーにバインドします。
例
次のコマンドは、SAML ポリシーを「av_saml」という名前の認証仮想サーバーにバインドします。
bind authentication vserver av_saml -policy SamlSPPol1
-
認証仮想サーバーを適切なトラフィック管理仮想サーバーにバインドします。
例
次のコマンドは、「lb1_ssl」という名前の負荷分散仮想サーバーを追加し、「av_saml」という名前の認証仮想サーバーを負荷分散仮想サーバーに関連付けます。
add lb vserver lb1_ssl SSL 10.217.28.224 443 -persistenceType NONE -cltTimeout 180 -AuthenticationHost auth1.example.com -Authentication ON -authnVsName av_saml
コマンドの詳細については、次を参照してください。 https://developer-docs.netscaler.com/en-us/adc-command-reference-int/current-release/authentication/authentication-samlaction
GUI を使用して NetScaler アプライアンスをSAML SP として構成するには
-
[ セキュリティ] > [AAA ポリシー] > [認証] > [基本ポリシー] > [SAML] に移動します。
-
[ サーバ ] タブを選択し、[ 追加] をクリックし、次のパラメータの値を入力して、[ 作成] をクリックします。
パラメータの説明:
-
Name:サーバーの名前
-
リダイレクト URL-ユーザーが認証する URL。一部の IdP には、SAML セットアップでなければ到達できない特別な URL があります。
-
シングルログアウトURL-NetScalerがクライアントをIdPに戻してサインアウトプロセスを完了するタイミングを認識できるように指定するURL。この単純な展開では使用しません。
-
SAML バインディング-SP と IdP の間で SAML リクエスタとレスポンダのメッセージを転送するために使用されるメカニズム。NetScalerがSPとして機能する場合、ポスト、リダイレクト、およびアーティファクトバインディングをサポートします。デフォルトのバインド方法は POST です。
注:
Artifact バインディングでは、SP と IdP の転送メカニズムが同じである必要があります。
-
ログアウトバインディング-SAML ログアウトメッセージの転送メカニズムを指定します。デフォルトのバインドメカニズムは Post です。
-
IDP 証明書名 -SAML 署名証明書の下にある IdPCert 証明書 (Base64)。
-
ユーザーフィールド- 必要に応じてSPが抽出するユーザー名を含むIdPのSAML認証フォームのセクション。
-
署名証明書名-NetScalerがIdPへの認証要求に署名するために使用するSAML SP証明書(秘密キー付き)を選択します。IdP が認証要求署名を検証できるように、同じ証明書(秘密キーなし)を IdP にインポートする必要があります。ほとんどの IdP は署名証明書名を必要としません。
-
issuerName -識別子。SP と IdP の両方で指定される固有の ID で、サービスプロバイダーを相互に識別しやすくなります。
- 署名されていないアサーションを拒否-IdP からのアサーションに署名が必要な場合に指定できるオプション。デフォルトのオプションは [オン] です。
- ON: 署名のないアサーションを拒否します
- STRICT: レスポンスとアサーションの両方が署名されていることを確認します
- OFF: 署名なしのアサーションを許可します
-
Audience-IdP によって送信されたアサーションが適用可能なオーディエンス。これは通常、サービスプロバイダーを表すエンティティ名または URL です。
-
署名アルゴリズム-SAML トランザクションの署名/検証に使用されるアルゴリズム。デフォルト値は RSA-SHA256 です。
-
ダイジェスト方式-SAML トランザクションのダイジェストの計算/検証に使用されるアルゴリズム。デフォルト値は SHA256 です。
-
デフォルト認証グループ-抽出されたグループに加えて、認証が成功した場合に選択されるデフォルトグループ。
-
Group Name Field:ユーザグループを含むアサーション内のタグの名前。
- スキュー時間(分)-このオプションは、NetScaler サービスプロバイダーが受信アサーションで許可するクロックスキューを分単位で指定します。たとえば、16:00 にスキュー時間を 10 分に設定した場合、SAML アサーションは 15:50 から 16:10(合計 20 分)まで有効です。デフォルトのスキュー時間は 5 分です。
-
-
対応する SAML ポリシーを作成します。
[ セキュリティ] > [AAA アプリケーショントラフィック] > [ポリシー] > [認証] > [詳細ポリシー] > [ポリシー ] に移動し、[ 追加] をクリックします。
「 認証 SAML ポリシーの作成 」ページで、次の詳細を入力します。
- 名前-SAML ポリシーの名前を指定します。
- アクションタイプ-認証アクションタイプとして SAML を選択します。
- アクション-SAML ポリシーをバインドする SAML サーバープロファイルを選択します。
- 表現-ユーザーが SAML サーバーで認証する必要があるかどうかを判断するために SAML ポリシーが使用するルールまたは式の名前を表示します。テキストボックスに「rule = true」という値を設定すると、SAML ポリシーが有効になり、対応する SAML アクションが実行されます。
-
SAML ポリシーを認証仮想サーバーにバインドします。
[セキュリティ] > [AAA-アプリケーショントラフィック] > [仮想サーバー] に移動し、SAML ポリシーを認証仮想サーバーに関連付けます。
-
認証サーバーを適切なトラフィック管理仮想サーバーに関連付けます。
[トラフィック管理] > [負荷分散](または [コンテンツスイッチング])> [仮想サーバー] に移動し、仮想サーバーを選択し、認証仮想サーバーをそれに関連付けます。