AEMでのSAML関連の問題のトラブルシューティング

この記事では、AEMでSAML (Security Assertion Markup Language)の問題をトラブルシューティングする方法について説明します。 無限ループの問題、無効なアサーションの問題、およびそれらを解決するための対策を解決します。

説明 description

環境

Adobe Experience Manager

問題/症状

Adobe Experience Manager(AEM)に関するSecurity Assertion Markup Language (SAML)関連の問題のトラブルシューティング方法を教えてください。

解決策 resolution

無限ループの問題:

  • ds:signatureがSAML アサーション >の一部であるかどうかを確認します。そうでない場合は、IDP エンドでこれを行い、署名済みアサーションのチェックボックスをオンにします
  • SAML応答でnameId形式を確認します。この形式は、SAML設定で設定されたnameId ポリシー形式と完全に一致する必要があります
  • SAML応答でSAML AudienceRestrictionを確認します。このタグの値は、SAML設定のエンティティ IDと完全に一致する必要があります
  • saml2:条件(NotBeforeおよびNotOnOrAfter)、サーバーがntp サーバーと同期していないことを確認します。 ntpdを使用し、強制的にsys時間を同期させます(ntpdate -s pool.ntp.org)。 テストの場合、クロックの許容値を–1に変更すると、クロックの違いは無視されます。
  • idpにアサーションが署名されていないかどうかを確認します。 idp チームに、応答が署名され、アサーションはsaml仕様に従って署名する必要があることを依頼します。
  • IDPからのアサーションが暗号化されているかどうかをSAML トレーサー出力で確認します。 yesの場合、SAML認証ハンドラーの設定では、暗号化チェックボックスを使用する必要があります

SAML証明書の形式が適切かどうかを確認します:

  • SAML応答から署名を取得し、証明書を修正します。つまり、65行目の後、Enter キーを押します。
  • これを使用して、AEMのトラストストアにインストールし、証明書の詳細をIDPと一致させることができます。

暗号化:

  • まず、暗号化なしでSAML設定を常に完了させます。 これが完了したら、暗号化を有効にします。 これにより、問題を簡単にデバッグできます

Dispatcher:

  • フィルターセクションでSAML ログインリクエストが許可されていることを確認します。そうでない場合は、/filter セクションを更新して、POST リクエストを*/saml_loginに許可します。

    /0100 { /type "allow" /method "POST" /url "*/saml_login" }

  • httpd.conf.ItのWeb サーバーレベルでのMod ヘッダー(mod_header)の変更を確認します。以下の形式にする必要があります

    < < < < < < ヘッダーは常にSet-Cookie (。*) "$1; HTTPOnly; Secure" > > > >を編集します>

無効なアサーション:

1
2
com.adobe.granite.auth.saml.model.Assertion Invalid Assertion: Signature invalid. com.adobe.granite.auth.saml.SamlAuthenticationHandler Private key of SP not provided: Cannot sign Authn request
  • トラストストアに保存されている証明書に問題がある可能性があります。 解決策は、新しいidp_certを削除して再アップロードし、ユースケースを確認することです。
  • SAML応答を暗号化していない場合は、「SPの秘密鍵が提供されていません:Authn リクエストに署名できません」というエラーを無視できます。

秘密鍵を取得できません:

1
2
[ com.adobe.granite.security.user.internal.servlets.KeyStoreManagingServlet,1121, [ javax.servlet.Servlet] ] ServiceEvent REGISTERED saml.log:27.01.2019 14:16:13.642 *ERROR* [ qtp275633701-179] com.adobe.granite.auth.saml.SamlAuthenticationHandler KeyStore uninitialized. Cannot retrieve private key to decrypt assertions.
  • このエラーは、IDPがアサーションを暗号化し、応答を復号化するための秘密鍵がないことを意味します。 応答を暗号化する場合は、AEM キーストアに有効な秘密鍵をアップロードする必要があります。

SAML関連のサポートチケットを発行する際に提供する情報:

  • SAML リクエスト
  • SAML応答
  • SAML設定
  • SAMLのデバッグログ(com.adobe.granite.auth.saml)
  • Error.log
  • SAML リクエスト/レスポンスを抽出するHAR[ 1] ファイル

[ 1] HAR ファイルの生成

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f