SaaS 展開の SAML 応答を暗号化する

このページでは、SaaS 環境でセキュリティ アサーション マークアップ言語(SAML)応答の暗号化を構成する手順について説明します。

IdP からサービスプロバイダー(コントローラテナント)への SAML 応答を暗号化することで、SAML 認証のセキュリティを向上させることができます。コントローラテナントは IdP と公開キーを共有し、公開キーを復号するための秘密キーを保存します。暗号化された SAML 応答を受け入れるようにコントローラテナントを設定するには、アカウントの所有者である必要があります。

重要: 暗号化された SAML 応答を受け入れるようにコントローラテナントを設定するには、アカウントの所有者である必要があります。

Install OpenSSL

You must install the cryptography and SSL/TLS toolkit OpenSSL to generate the private key and certificate that encrypting SAML responses requires.

x509 証明書の生成

  1. 秘密キーを生成します。
    openssl genrsa -out privatekey.pem 2048
  2. 秘密キーを PKCS8 キーに変換
    openssl pkcs8 -in privatekey.pem -topk8 -nocrypt -out privatekey.p8
  3. 秘密キーから証明書を生成します。
    openssl req -new -x509 -key privatekey.pem -out ssocert.pem

Enable SAML Encryption

After you generate the private key in pkcs8

  1. Navigate to AppDynamics > Administrator > Authentication Provider > SAML.
  2. Check Enable for SAML Encryption.

コントローラテナントへの暗号化された証明書と秘密キーの追加

IdP と共有できるように、生成された x509 証明書を追加する必要があります。また、コントローラテナントが IdP からの SAML 応答を復号できるように、秘密キーも必要です。

  1. [SAML Encryption Certificate] テキスト領域の「-----BEGIN CERTIFICATE-----」セクションと「-----END CERTIFICATE----」セクションの間に x509 証明書の内容を貼り付けます。
    -----BEGIN CERTIFICATE-----
    // Insert x509 certificate content here
    -----END CERTIFICATE----
  2. [SAML Encryption Key] テキスト領域の「-----BEGIN PRIVATE KEY-----」セクションと「-----END PRIVATE KEY-----」セクションの間に p8 キーファイルの内容を貼り付けます。
    -----BEGIN PRIVATE KEY-----
    // Insert p8 key content here
    -----END PRIVATE KEY-----
  3. Save をクリックします。

応答を暗号化するための IdP の設定

各 IdP には、応答を暗号化するための設定がそれぞれ必要です。次の手順の概要に従います。

  1. IdP で SAML 暗号化を有効にします。一部の IdP では、これはアサーション暗号化と呼ばれています。
  2. 暗号化アルゴリズムを選択します。任意の暗号化方式を選択できます。または、一部の IdP では自動的に選択されます。
  3. x509 証明書の生成」で生成した x509 証明書をアップロードします。

SAML 応答が暗号化されていることの確認

コントローラテナントで SAML の暗号化を有効にしていて、IdP からの SAML 応答が暗号化されていない場合、SAML 認証を使用してコントローラテナントにログインするときに、コントローラテナントが SAML 認証を拒否します。

SAML 応答が暗号化されていることを確認するには、次の手順を実行します。

  1. SAML 認証設定の確認」で説明されているサービスプロバイダー(コントローラテナント)の SAML フローを使用してコントローラテナントにサインインします。
  2. ブラウザの開発者コンソールの [ネットワーク(Networks)] タブで、<controller_domain_name> <account_name> のようなネットワーク要求を見つけます。
    http://<controller_domain_name>:8090/controller/saml-auth?accountName=<account_name>
  3. このネットワーク要求を選択し、パラメータ SAMLResponse を特定します。
    SAMLResponse=PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c2FtbDJwOlJlc3BvbnNlIERlc3RpbmF0aW9uPSJodHRwOi8vZWMyLTU0LTIxMi0wLTIxNi51cy13ZXN0LTIuY29tcHV0ZS5hbWF6b25hd3MuY29tOjgwODA]gRm9yb...
  4. SAML 応答が暗号化されている場合は、base64 を使用して暗号化された SAML 応答を復号および展開できます。復号および展開された文字列には SAML XML 応答が含まれている必要があります。
    base64 --decode SAMLResponse=PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c2FtbDJwOlJlc3BvbnNlIERlc3RpbmF0aW9uPSJodHRwOi8vZWMyLTU0LTIxMi0wLTIxNi51cy13ZXN0LTIuY29tcHV0ZS5hbWF6b25hd3MuY29tOjgwODA]gRm9yb...