Citrix ADC

SAML SP としてのCitrix ADC

SAML サービスプロバイダー (SP) は、サービスプロバイダーによってデプロイされた SAML エンティティです。ユーザーが保護されたアプリケーションにアクセスしようとすると、SPはクライアント要求を評価します。クライアントが認証されていない(有効なNSC_TMAAまたはNSC_TMASクッキーがない)場合、SPは要求をSAMLアイデンティティ・プロバイダ(IdP)にリダイレクトします。

また、SP は IdP から受信した SAML アサーションも検証します。

Citrix ADCアプライアンスがSPとして構成されている場合、すべてのユーザー要求は、関連するSAMLアクションに関連付けられたトラフィック管理仮想サーバー(負荷分散またはコンテンツスイッチング)によって受信されます。

Citrix ADCアプライアンスは、ログアウト時のPOSTおよびリダイレクトバインディングもサポートしています。

Citrix ADCアプライアンスは、SAML IdPがアプライアンスまたは任意の外部 SAML IdPで構成されるデプロイメントで、SAML SPとして使用できます。

SAML SPとして使用する場合、Citrix ADCアプライアンスは以下を実行します。

  • SAML トークンからユーザー情報 (属性) を抽出できます。この情報は、Citrix ADCアプライアンス上で構成されているポリシーで使用できます。たとえば、GroupMember 属性と emailaddress 属性を抽出する場合は、SAMLAction で Attribute2 パラメーターを GroupMember として指定し、 Attribute3 パラメーターをメールアドレスとして指定します。

    ユーザー名、パスワード、ログアウト URL などのデフォルト属性は、暗黙的に解析され、セッションに格納されるため、属性 1 ~ 16 で抽出しないでください。

  • 着信 SAML アサーションから最大 127 バイトの属性名を抽出できます。以前の制限は 63 バイトでした。

  • ポスト、リダイレクト、アーティファクトのバインディングをサポートします。

    膨張またはデコード後のアサーションが10Kを超える場合、大量のデータにはリダイレクトバインディングを使用しないでください。

  • アサーションを復号化できます。

  • SAML アサーションから複数値の属性を抽出できます。これらの属性は、次のようなネストされた XML タグで送信されます。

    <AttributeValue> <AttributeValue>Value1</AttributeValue> <AttributeValue>Value2</AttributeValue> </AttributeValue>

    Citrix ADC 13.0ビルド63.x以降では、SAML属性の個々の最大長が増加し、最大40kバイトが許可されるようになりました。すべての属性のサイズは40kバイトを超えてはなりません。

    Citrix ADCアプライアンスは、以前のXMLで示されている場合、Value1のみを抽出する古いファームウェアとは異なり、Value1とValue2の両方を特定の属性の値として抽出できます。

  • SAML アサーションの有効性を指定できます。

    Citrix ADC SAML IdP とピア SAML SP のシステム時刻が同期していない場合、いずれかの当事者によってメッセージが無効になることがあります。このようなケースを回避するために、アサーションが有効な期間を設定できるようになりました。

    この期間は「スキュー時間」と呼ばれ、メッセージを受信する分数を指定します。スキュー時間は、SAML SP および SAML IdP で構成できます。

  • 認証要求の ‘ForceAuth’ という余分な属性を外部の IdP (ID プロバイダ) に送信できます。デフォルトでは、ForceAuthn は「False」に設定されています。既存の認証コンテキストにもかかわらず認証を強制するように IdP を提案するには、「True」に設定できます。また、アーティファクトバインディングで構成されている場合、Citrix ADC SPはクエリパラメータで認証要求を行います。

コマンドラインインターフェイスを使用してCitrix ADCアプライアンスをSAML SPとして構成するには

  1. SAML SP アクションを構成します。

    次のコマンドは、認証されていないユーザー要求をリダイレクトする SAML アクションを追加します。

    add authentication samlAction SamlSPAct1 -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) のドメインが含まれている必要があります。

    コマンドの詳細については、「https://developer-docs.citrix.com/projects/citrix-adc-command-reference/en/latest/authentication/authentication-samlAction」および「https://support.citrix.com/article/CTX316577」を参照してください。

  2. SAML ポリシーを設定します。

    次のコマンドは、以前に定義されたSAMLアクションをすべてのトラフィックに適用するSAMLポリシーを定義します。

    add authentication policy SamlSPPol1 -rule true -action SamlSPAct1

  3. SAML ポリシーを認証仮想サーバーにバインドします。

    次のコマンドは、SAML ポリシーを「av_saml」という名前の認証仮想サーバーにバインドします。

    bind authentication vserver av_saml -policy SamlSPPol1

  4. 認証仮想サーバを適切なトラフィック管理仮想サーバにバインドします。

    次のコマンドは、「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.citrix.com/projects/citrix-adc-command-reference/en/latest/authentication/authentication-samlActionを参照してください。

GUI を使用して Citrix ADC アプライアンスをSAML SP として構成するには

  1. [ セキュリティ] > [AAA ポリシー] > [認証] > [基本ポリシー] > [SAML] に移動します。

  2. [ サーバ ] タブを選択し、[ 追加] をクリックし、次のパラメータの値を入力して、[ 作成] をクリックします。

    パラメータの説明:

    Name:サーバーの名前

    リダイレクト URL-ユーザーが認証する URL。一部の IdP には、SAML セットアップでなければ到達できない特別な URL があります。

    シングルログアウトURL-Citrix ADCがクライアントをIdPに戻してサインアウトプロセスを完了するタイミングを認識できるように指定するURL。この単純な展開では使用しません。

    SAML バインド:クライアントを SP から IdP に移動するために使用されるメソッド。これは IdP でクライアントがどのように接続するかを理解するために、IdP で同じである必要があります。 Citrix ADCがSPとして機能する場合、POST、REDIRECT、ARTIFACTバインディングがサポートされます。

    ログアウトバインド-リダイレクト

    IDP 証明書名-SAML 署名証明書の下にある IdPCert 証明書 (Base64)。

    User Field-IdP の SAML 認証フォームのセクション。必要な場合に抽出する SP のユーザー名が含まれています。

    署名証明書名-Citrix ADCがIdPへの認証要求に署名するために使用するSAML SP証明書(秘密キー付き)を選択します。IdP が認証要求署名を検証できるように、同じ証明書(秘密キーなし)を IdP にインポートする必要があります。このフィールドは、ほとんどの IdP では必要ありません。

    発行者名-識別子。SP と IdP の両方で指定される一意の ID。サービスプロバイダーを相互に識別するのに役立ちます。

    署名されていないアサーションを拒否する-IdP のアサーションに署名する必要がある場合に指定できるオプション。アサーションのみを署名(ON)するか、IdP からのアサーションとレスポンスの両方を署名する必要がある(STRICT)ことを保証できます。

    Audience-IdP によって送信されたアサーションが適用されるオーディエンス。これは通常、ServiceProvider を表すエンティティ名または URL です。

    署名アルゴリズム-RSA-SHA256

    ダイジェストメソッド-SHA256

    デフォルト認証グループ-抽出されたグループに加えて認証が成功したときに選択されるデフォルトグループ。

    グループ名フィールド-ユーザーグループを含むアサーション内のタグの名前。

    スキュー時間(分)-このオプションは、Citrix ADC ServiceProviderが着信アサーションで許可するクロックスキューを分単位で指定します。

  3. 同様に、対応する SAML ポリシーを作成し、それを認証仮想サーバーにバインドします。

    [セキュリティ] > [AAA-アプリケーショントラフィック] > [仮想サーバー] に移動し、SAML ポリシーを認証仮想サーバーに関連付けます。

  4. 認証サーバを適切なトラフィック管理仮想サーバに関連付けます。

    [トラフィック管理] > [負荷分散](または [コンテンツスイッチング])> [仮想サーバー] に移動し、仮想サーバーを選択し、認証仮想サーバーをそれに関連付けます。