AEM에서 SAML 관련 문제를 해결하는 방법

AEM에서 SAML 관련 문제를 해결하는 방법

목표

어떻게 AEM의 SAML 관련 문제를 해결할 수 있습니까? 문제를 해결하는 데 필요한 정보는 무엇입니까?

단계

무한 루프 문제:

  • ds:signature가 SAML 검증의 일부인지 확인합니다. > 그렇지 않으면, 이 작업은 IDP 끝점에서 수행되며, 서명된 검증에 대한 확인란을 선택하십시오.
  • SAML 응답에서 nameId 형식을 확인하십시오. 이 형식은 SAML 구성에 구성된 nameId 정책 형식과 정확히 일치해야 합니다.
  • SAML 응답에서 SAML AudienceRestriction을 확인하십시오. 이 태그의 값은 SAML 구성의 엔티티 ID와 정확히 일치해야 합니다.
  • saml2:conditions(NotBefore 및 NotOnOrAfter)를 확인합니다. 서버는 ntp 서버와 동기화되지 않습니다. ntpd를 사용하고, SYS 시간(ntpdate -s pool.ntp.org)을 동기화하도록 강제 실행하십시오. 테스트를 위해 시계 허용치를 -1로 변경하십시오. 이렇게 하면 시계 차이가 무시됩니다.
  • idp에 검증이 서명되어 있지 않았는지 확인하십시오. idp 팀에게 응답이 서명되어 있고 SAML 스펙에 따라 검증에 서명해야 하는지 확인하십시오. 
  • IDP의 검증이 암호화되어 있으면 SAML 추적기 출력을 확인하십시오. yes인 경우 SAML 인증 처리기의 구성에서 암호화 확인란을 사용해야 합니다.

SAML 인증서가 적절한 형식인지 확인하십시오.

  • SAML 응답에서 서명을 가져오고 인증서를 수정(즉 65번째 줄 다음)한 다음 Enter 키를 누르는 등의 작업을 수행하십시오.
  • 그러면 이것을 사용하여 AEM truststore에 설치하고 IDP와 인증서 세부사항을 일치시킬 수 있습니다.

암호화:

  • 암호화하지 않고 먼저 SAML 설정을 완료하십시오. 이 작업이 완료되면 암호화를 활성화합니다. 이 방법으로 문제를 쉽게 디버깅할 수 있습니다.

디스패처:

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

    /0100 { /type "allow" /method "POST" /url "*/saml_login" }
  • httpd.conf의 웹 서버 수준에서 Mod 헤더(mod_header)에 변경 사항이 있는지 확인하십시오. 이 헤더는 항상 다음 형식이어야 합니다.
    <<<<<< Header always edit Set-Cookie (.*) "$1; HTTPOnly; Secure" >>>>>

유효하지 않은 검증:

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
  • truststore에 저장된 인증서에 문제가 있을 수 있습니다. 여기서 해결 방법은 새 idp_cert를 삭제하고 다시 업로드한 다음, 사용 사례를 확인하는 것일 수 있습니다.
  • SAML 응답을 암호화하지 않는 경우 "SP의 개인 키가 제공되지 않음: 인증 요청에 서명할 수 없습니다"라는 오류를 무시할 수 있습니다.

개인 키를 검색할 수 없음:

[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]https://help.tenderapp.com/kb/troubleshooting-your-tender-site/generating-an-har-file

Adobe 로고

내 계정 로그인