ADFS를 통해 IDP로 SP 인증서를 갱신할 때 SSO 로그인 오류가 발생함
ADFS를 통해 IDP로 SP 인증서를 갱신할 때 SSO 로그인 오류가 발생합니다.
IdP(ADFS)에서 새로운 SP 인증서를 업데이트할 때 SSO 오류가 발생합니다.
오류 : 응답에 유효하지 않은 상태 코드.
조사 단계:
- SAML 추적을 캡처하여 SAML 응답을 찾습니다.
- 브라우저에 SAML 메시지 디코더 플러그인을 추가합니다.
Chrome: https://chrome.google.com/webstore/detail/saml-message-decoder/mpabchoaimgbdbbjjieoaeiibojelbhm?hl=en
Firefox: https://addons.mozilla.org/en-US/firefox/addon/saml-message-decoder-extension/ - 플러그인을 열고 이 메시지 복사를 클릭합니다.
- Notepad++를 열고 설치하려면 여기를 클릭하십시오.
- 메시지를 붙여넣어 XML 언어에서 직접 SAML 응답을 찾습니다.
- IdP의 SAML 응답에 속성이 있는지 확인합니다.
- 속성이 나타나지 않는 경우, Webex가 IdP에서 수신하지 않고 있음을 의미합니다. 따라서 이 문제는 IdP 끝에서 조사해야 합니다.
- 상대방 구성에 의존하는 ADFS Webex를 확인하려면 여기를 클릭하십시오.
- 구성이 잘 보이면 이벤트 뷰어 로그를 확인합니다.
- Windows 로그에서 ADFS 오류 확인:
- Windows 로그에서 ADFS 이벤트 로그 오류 코드 364를 찾습니다. 이벤트 세부 사항은 유효하지 않은 인증서를 식별합니다. 이러한 경우, ADFS 호스트는 포트 80에 있는 방화벽을 통해 인증서의 유효성을 검증할 수 없습니다.
- 방화벽을 통해 인터넷으로 포트 80에 IdP 액세스를 허용하여 CRL 확인을 수행할 수 있습니다.
- 포트가 열려 있으면 Microsoft 및 방화벽으로 후속 조치를 취하십시오.
- 방화벽에서 포트 80이 열려 있지 않거나 CRL 확인이 작동하지 않는 경우, CRL을 비활성화합니다.
- ADFS 서버에서 > 이벤트 뷰어 > 응용프로그램 > ADFS > 관리를 클릭하고 > 로그인을 복제한 타임스탬프에서 오류 로그를 검색합니다. 다음 오류가 나타나는 경우:
오류: "페더레이션 수동 요청 중 오류가 발생함.
추가 데이터
프로토콜 이름: Saml
의존 대상: https://idbroker.webex.com/39xxxx4ea-4xxe-416e-bd4f-4cxxxxxxx
예외 세부 사항:
프로토콜 이름: Saml
의존 대상: https://idbroker.webex.com/39xxxx4ea-4xxe-416e-bd4f-4cxxxxxxx
예외 세부 사항:
Microsoft.IdentityServer.Service.SecurityTokenService.RevocationValidationException: MSIS3014: 의존 대상 트러스트의 암호화 인증서 'https://idbroker.webex.com/39xxxx4ea-4xxe-416e-bd4f-4cxxxxxxx' 섬프린트 '754B9208F1F75C5CC962750F3675C5D129471D80'으로 식별되는 인증서가 유효하지 않습니다. 인증서가 해지, 만료되었거나, 인증서 체인을 신뢰할 수 없음을 가리킬 수도 있습니다.
at Microsoft.IdentityModel.Threading.AsyncResult.End(IAsyncResult 결과)
at Microsoft.IdentityModel.Threading.TypedAsyncResult1.End(IAsyncResult result) at Microsoft.IdentityServer.Web.WSTrust.SecurityTokenServiceManager.Issue(RequestSecurityToken request, IList1& identityClaimSet, List1 additionalClaims) at Microsoft.IdentityServer.Web.WSTrust.SecurityTokenServiceManager.Issue(RequestSecurityToken request, List1 additionalClaims)
at Microsoft.IdentityServer.Web.Protocols.Saml.SamlProtocolManager.Issue(HttpSamlRequestMessage httpSamlRequestMessage, SecurityTokenElement onBehalfOf, String sessionState, String relayState, String& newSamlSession, String& samlpAuthenticationProvider, Boolean isUrlTranslationNeeded, WrappedHttpListenerContext context, Boolean isKmsiRequested)
at Microsoft.IdentityServer.Web.Protocols.Saml.SamlProtocolHandler.RequestBearerToken(WrappedHttpListenerContext context, HttpSamlRequestMessage httpSamlRequest, SecurityTokenElement onBehalfOf, String relyingPartyIdentifier, Boolean isKmsiRequested, Boolean isApplicationProxyTokenRequired, String& samlpSessionState, String& samlpAuthenticationProvider)at Microsoft.IdentityServer.Web.Protocols.Saml.SamlProtocolHandler.BuildSignInResponseCoreWithSerializedToken(HttpSamlRequestMessage httpSamlRequest, WrappedHttpListenerContext context, String relyingPartyIdentifier, SecurityTokenElement signOnTokenElement, Boolean isKmsiRequested, Boolean isApplicationProxyTokenRequired) at Microsoft.IdentityServer.Web.Protocols.Saml.SamlProtocolHandler.BuildSignInResponseCoreWithSecurityToken(SamlSignInContext context, SecurityToken securityToken, SecurityToken deviceSecurityToken)
at Microsoft.IdentityServer.Web.Protocols.Saml.SamlProtocolHandler.Process(ProtocolContext context)
at Microsoft.IdentityServer.Web.PassiveProtocolListener.ProcessProtocolRequest(ProtocolContext protocolContext, PassiveProtocolHandler protocolHandler)
at Microsoft.IdentityServer.Web.PassiveProtocolListener.OnGetContext(WrappedHttpListenerContext context)"
at Microsoft.IdentityServer.Web.Protocols.Saml.SamlProtocolManager.Issue(HttpSamlRequestMessage httpSamlRequestMessage, SecurityTokenElement onBehalfOf, String sessionState, String relayState, String& newSamlSession, String& samlpAuthenticationProvider, Boolean isUrlTranslationNeeded, WrappedHttpListenerContext context, Boolean isKmsiRequested)
at Microsoft.IdentityServer.Web.Protocols.Saml.SamlProtocolHandler.RequestBearerToken(WrappedHttpListenerContext context, HttpSamlRequestMessage httpSamlRequest, SecurityTokenElement onBehalfOf, String relyingPartyIdentifier, Boolean isKmsiRequested, Boolean isApplicationProxyTokenRequired, String& samlpSessionState, String& samlpAuthenticationProvider)at Microsoft.IdentityServer.Web.Protocols.Saml.SamlProtocolHandler.BuildSignInResponseCoreWithSerializedToken(HttpSamlRequestMessage httpSamlRequest, WrappedHttpListenerContext context, String relyingPartyIdentifier, SecurityTokenElement signOnTokenElement, Boolean isKmsiRequested, Boolean isApplicationProxyTokenRequired) at Microsoft.IdentityServer.Web.Protocols.Saml.SamlProtocolHandler.BuildSignInResponseCoreWithSecurityToken(SamlSignInContext context, SecurityToken securityToken, SecurityToken deviceSecurityToken)
at Microsoft.IdentityServer.Web.Protocols.Saml.SamlProtocolHandler.Process(ProtocolContext context)
at Microsoft.IdentityServer.Web.PassiveProtocolListener.ProcessProtocolRequest(ProtocolContext protocolContext, PassiveProtocolHandler protocolHandler)
at Microsoft.IdentityServer.Web.PassiveProtocolListener.OnGetContext(WrappedHttpListenerContext context)"
해상도는 다음과 같습니다.
- ADFS에서 관리자로 Powershell을 열고 다음 명령어를 실행합니다.
Get-AdfsRelyingPartyTrust -Identifier 'https://idbroker.webex.com/39xxxx4ea-4xxe-416e-bd4f-4cxxxxxxx ' | Set-AdfsRelyingPartyTrust -SigningCertificateRevocationCheck None -EncryptionCertificateRevocationCheck None
참고:
- 따옴표로 식별자 URL을 입력하고 오류 메시지에서 식별자 URL을 찾을 수 있는지 확인하고 복사하고 붙여넣습니다.
- 정부용 Webex(FedRAMP) Control Hub는 https://admin-usgov.webex.com/를 사용해야 합니다.
또는
- ADFS에서 관리자로 Powershell을 열고 다음 명령어를 실행합니다.
Get-AdfsRelyingPartyTrust -이름 "Cisco Webex" | Set-AdfsRelyingPartyTrust -SigningCertificateRevocationCheck None -EncryptionCertificateRevocationCheck None
참고: 회신 당사자 신뢰의 이름을 ADFS에서 생성한 고객 한 명과 동일한 이름으로 큰따옴표로 입력하십시오.
- Control Hub에서 SSO를 테스트하여 확인합니다.
이 문서가 도움이 되었습니까?