mod_auth_mellon + ADFS 조합으로 인증 실패

소개



idP 에 Microsoft ADFS, SAMP SP 에 mod_auth_mellon 를 조합했을 때에 발생한 인증 에러의 대처 내용입니다.
내용으로서는 단순한 것이었습니다만, 약간 빠져 버렸으므로 참고가 된다고 생각합니다.

발생한 사건



SP에 액세스하고 ADFS로 전환하여 로그인이 성공한 후 SP에 응답을 POST 한 타이밍에서 mod_auth_mellon에서 다음 오류가 출력되어 인증이 실패합니다.
Error processing authn response. Lasso error: [-432] Status code is not success, SAML Response: 
StatusCode1="urn:oasis:names:tc:SAML:2.0:status:Requester",
StatusCode2="urn:oasis:names:tc:SAML:2.0:status:InvalidNameIDPolicy", StatusMessage="(null)"

원인 및 해결 방법



원인은 ADFS가 응답하는 정보가 mod_auth_mellon이 요구하고 있는 정책에 준거하고 있지 않기 때문에 에러가 되고 있다.
해결 방법은 ADFS에 요청 규칙 이름 Name ID로 다음 규칙을 추가하는 것입니다.
c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname"]
 => issue(Type = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier", Issuer = c.Issuer, OriginalIssuer = c.OriginalIssuer, Value = c.Value, ValueType = c.ValueType, Properties["http://schemas.xmlsoap.org/ws/2005/05/identity/claimproperties/format"] = "urn:oasis:names:tc:SAML:2.0:nameid-format:transient");





상기의 대처 방법에 도달하기까지 조사한 내용입니다.

해시 알고리즘의 차이?



idP와 SP에서 해시 알고리즘이 다른 경우에도 이 에러가 발생한다는 것이었지만, 양자 모두 SHA254가 되고 있었다.
→ 만약을 위해, SHA1로 가지런히 해 보았지만 에러는 해소하지 않고.

라이브러리 버전



mod_auth_mellon은 SSO 라이브러리에 lasso를 사용하며 SHA256을 사용하려면 lasso 2.5 이상이 필요합니다.
→ 버전을 확인한 결과 2.5.1이었다.
# yum list installed | grep lasso
Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
lasso.x86_64                          2.5.1-3.el7                     @base

참고 (소프트웨어 구성)





SAML 미들웨어
비고


idP
Microsoft ADFS
WindowsServer2019

SAMP SP
mod_auth_mellon
CentOS Linux (release 7.7.1908)Apache(2.4.6-90.el7.centos) mod_auth_mellon(0.14.0-2.el7_6.4)

좋은 웹페이지 즐겨찾기