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

IdP からサービスプロバイダー(コントローラ)への SAML 応答を暗号化することで、SAML 認証のセキュリティを向上させることができます。コントローラは IdP と公開キーを共有し、公開キーを復号するための秘密キーを保存します。

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

OpenSSL のインストール

暗号および SSL/TLS ツールキットの OpenSSL をインストールして、SAML 応答の暗号化に必要な秘密キーと証明書を生成する必要があります。

x509 証明書の生成

  1. 秘密キーを生成します。

    openssl genrsa -out privatekey.pem 2048
    BASH
  2. 秘密キーを pkcs8 形式に変換します。

    openssl pkcs8 -in privatekey.pem -topk8 -nocrypt -out privatekey.p8
    BASH
  3. 秘密キーから証明書を生成します。

    openssl req -new -x509 -key privatekey.pem -out ssocert.pem
    BASH

SAML 暗号化の有効化

秘密キーと x509 証明書を pkcs8 形式で生成した後は、次の手順を実行します。

  1. AppDynamics > Administrator > Authentication Provider > SAML にアクセスします。
  2. SAML EncryptionEnable であることを確認します。

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

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

  1. [SAML Encryption Certificate] テキスト領域で、セクション -----BEGIN CERTIFICATE----- および -----END CERTIFICATE----: の間に x509 証明書の内容を貼り付けます。

    -----BEGIN CERTIFICATE-----
    // Insert x509 certificate content here
    -----END CERTIFICATE----
    TEXT
  2. [ SAML Encryption Key] テキスト領域で、セクション -----BEGIN PRIVATE KEY----- and -----END PRIVATE KEY----- の間に p8 キーファイルの内容を貼り付けます。

    -----BEGIN PRIVATE KEY-----
    // Insert p8 key content here
    -----END PRIVATE KEY-----
    TEXT
  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> は AppDynamics アカウント名です。

    http://<controller_domain_name>:8090/controller/saml-auth?accountName=<account_name>
    TEXT
  3. このネットワーク要求を選択し、応答内のパラメータ SAMLResponse を特定します。暗号化された SAML 応答を表す長いハッシュが表示されます。

    SAMLResponse=PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c2FtbDJwOlJlc3BvbnNlIERlc3RpbmF0aW9uPSJodHRwOi8vZWMyLTU0LTIxMi0wLTIxNi51cy13ZXN0LTIuY29tcHV0ZS5hbWF6b25hd3MuY29tOjgwODA]gRm9yb...
    TEXT
  4. base64 コマンドライン ユーティリティまたはオンラインツールを使用して、暗号化された SAML 応答を復号し、展開することができます。

    base64 --decode SAMLResponse=PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c2FtbDJwOlJlc3BvbnNlIERlc3RpbmF0aW9uPSJodHRwOi8vZWMyLTU0LTIxMi0wLTIxNi51cy13ZXN0LTIuY29tcHV0ZS5hbWF6b25hd3MuY29tOjgwODA]gRm9yb...
    BASH

    SAML 応答が暗号化されている場合は、復号および展開された文字列に SAML XML 応答が含まれています。