AEM의 SAML 관련 문제 해결

이 문서에서는 AEM에서 SAML(Security Assertion Markup Language) 문제를 해결하는 방법에 대해 설명합니다. 무한 루프 문제, 잘못된 어설션 문제 및 해결 방법을 다룹니다.

설명 description

환경

Experience Manager

문제/증상

AEM(Adobe Experience Manager)에서 SAML(Security Assertion Markup Language) 관련 문제를 해결하려면 어떻게 합니까?

해결 방법 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에 어설션이 서명되지 않았는지 확인합니다. 응답이 서명되었는지, 그리고 saml 사양에 따라 어설션에 서명되어야 하는지 idp 팀에 문의하십시오.
  • IDP의 어설션이 암호화된 경우 SAML 추적기 출력이 있는지 확인합니다. SAML 인증 핸들러의 구성에서 암호화 확인란을 사용해야 합니다.

SAML 인증서 형식이 적절한지 확인:

  • SAML 응답에서 서명을 가져와 인증서를 수정합니다. 즉, 65번째 줄 다음에는 Enter 키를 누릅니다.
  • 그런 다음 AEM truststore에 설치하고 인증서 세부 정보를 IDP와 일치시키는 데 사용할 수 있습니다.

암호화:

  • 먼저 항상 암호화 없이 SAML 설정을 완료합니다. 이 작업이 완료되면 암호화를 활성화합니다. 이 방법을 사용하면 문제를 디버깅하기 쉽습니다

디스패처:

  • SAML 로그인 요청이 필터 섹션에서 허용되는지 확인하십시오.허용되지 않는 경우 /filter 섹션을 업데이트하여 */saml_login에 대한 POST 요청을 허용합니다.

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

  • httpd.conf의 웹 서버 레벨에서 Mod 헤더(mod_header)의 변경 사항을 확인합니다. 변경 내용은 아래 형식이어야 합니다

    < < < < < < 헤더는 항상 설정 쿠키(.*) "$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의 개인 키가 제공되지 않음: 인증 요청에 서명할 수 없음" 오류를 무시할 수 있습니다.

개인 키를 검색할 수 없음:

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
  • 하르[ 1] SAML 요청/응답을 추출할 파일

[ 1] HAR 파일 생성

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