SAML 認証の認証の改善

この機能は SAML 知識を持つユーザ向けであり、この情報を使用するには、基本的な認証能力が必要です。この情報を使用するには、読者が FIPS を理解している必要があります。

以下のCitrix ADC機能は、SAML 2.0仕様と互換性のあるサードパーティのアプリケーション/サーバーで使用できます。

  • SAML サービスプロバイダ (SP)
  • SAML ID プロバイダー (IdP)

SPとIdPは、クラウドサービス間でシングルサインオン(SSO)を可能にします。SAML SP 機能は、IdP からのユーザーの要求に対処する方法を提供します。IdPは、サードパーティのサービスまたは別のCitrix ADCアプライアンスである可能性があります。SAML IdP 機能は、ユーザーのログオンをアサートし、SP によって消費される要求を提供するために使用されます。

SAML サポートの一部として、IdP モジュールと SP モジュールの両方が、ピアに送信されるデータにデジタル署名します。デジタル署名には、SP からの認証要求、IdP からのアサーション、これらの 2 つのエンティティ間のログアウトメッセージが含まれます。デジタル署名は、メッセージの信頼性を検証します。

SAML SP および IdP の現在の実装は、パケットエンジンでシグニチャ計算を行います。これらのモジュールは、SSL 証明書を使用してデータに署名します。FIPS準拠のCitrix ADCでは、SSL証明書の秘密鍵はパケットエンジンまたはユーザー空間では利用できないため、現在のSAMLモジュールはFIPSハードウェアに対応していません。

このドキュメントでは、シグニチャ計算を FIPS カードにオフロードするメカニズムについて説明します。公開鍵が利用可能であるため、署名の検証はソフトウェアで行われます。

解決策

SAML 機能セットは、署名オフロードに SSL API を使用するように拡張されました。影響を受ける SAML サブ機能の詳細については、docs.citrix.com を参照してください。

  1. SAML SP ポストバインディング — 認証リクエストの署名

  2. SAML IdP ポストバインディング — アサーション/応答/両方の署名

  3. SAML SP シングルログアウトシナリオ — SP によって開始されたモデルでのログアウト要求の署名と IdP によって開始されたモデルでの ログアウト応答の署名

  4. SAML SP アーティファクトバインディング — アーティファクト解決リクエストの署名

  5. SAML SP リダイレクトバインディング — 認証要求の署名

  6. SAML IdP リダイレクトバインディング — 応答/アサーション/両方の署名

  7. SAML SP 暗号化のサポート — アサーションの復号化

プラットフォーム

API は FIPS プラットフォームにのみオフロードできます。

構成

オフロード設定は、FIPS プラットフォーム上で自動的に実行されます。

ただし、FIPS ハードウェアのユーザー空間では SSL 秘密キーを使用できないため、FIPS ハードウェアで SSL 証明書を作成する際に若干の構成が変更されます。

設定情報は次のとおりです。

  • add ssl fipsKey fips-key

    次に、CSR を作成し、CA サーバで使用して証明書を生成する必要があります。その証明書を /nsconfig/sl にコピーできます。ファイルがfips3cert.cerであると仮定しましょう。

  • add ssl certKey fips-cert -cert fips3cert.cer -fipsKey fips-key

    次に、SAML SP モジュールの SAML アクションでこの証明書を指定する必要があります。

  • set samlAction <name> -samlSigningCertName fips-cert

    同様に、SAML IdP モジュールの samlIdpProfile でこれを使用する必要があります。

  • set samlidpprofile fipstest –samlIdpCertName fips-cert

初めて、上記のfipsキーはありません。FIPS キーがない場合は、「https://support.citrix.com/servlet/KbServlet/download/9539-102-665378/NS9000\_FIPS\_6\[1\]\[1\].1.pdf」の説明に従って作成します。

  • create ssl fipskey <fipsKeyName> -modulus <positive_integer> [-exponent ( 3 | F4 )]

  • create certreq <reqFileName> -fipskeyName <string>