Ошибка входа SSO во время продления сертификата SP посредством ADFS в качестве IDP
Ошибка входа SSO во время продления сертификата SP посредством ADFS в качестве IDP.
Сбой SSO при обновлении нового сертификата SP для IdP (ADFS).
Ошибка: недопустимый код состояния в ответе.
Действия по изучению проблемы.
- Создайте трассировку SAML, чтобы найти ответ SAML.
- Добавьте плагин SAML Message Decoder в браузер:
Для 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++, чтобы установить Нажмите здесь.
- Вставьте сообщение для поиска ответа SAML непосредственно на языке XML.
- Проверьте, присутствуют ли атрибуты в ответе SAML от поставщика удостоверений.
- Если вы не видите какие-либо атрибуты, это означает, что Webex не получает их от IdP. Таким образом, проблему необходимо изучить с конца IdP.
- Чтобы проверить конфигурацию ADFS Webex на стороне, щелкните здесь.
- Когда конфигурация выглядит нормально, проверьте журналы просмотра событий.
- Проверьте, нет ли ошибок ADFS в журналах Windows. Для этого выполните следующие действия.
- Найдите в журналах Windows код ошибки журнала событий ADFS 364. В сведениях о событии указан недействительный сертификат. В таких случаях узлу ADFS не разрешается проверка сертификата через порт 80 брандмауэра.
- Разрешите IdP доступ к порту 80 через брандмауэр в Интернет, чтобы он мог выполнять проверку 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 result)
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)"
Вот решение:
- Откройте Powershell в ADFS в качестве администратора и выполните команду:
Get-AdfsRelyingPartyTrust -Identifier 'https://idbroker.webex.com/39xxxx4ea-4xxe-416e-bd4f-4cxxxxxxx ' | Set-AdfsRelyingPartyTrust -SigningCertificateRevocationCheck None -EncryptionCertificateRevocationCheck None
Примечание.
- Обязательно введите URL идентификатора в кавычки, а URL идентификатора можно найти в сообщении об ошибке, скопируйте и вставьте его.
- Webex для правительственных организаций (FedRAMP) должен использовать Control Hubhttps://admin-usgov.webex.com/.
ЛИБО
- Откройте Powershell в ADFS в качестве администратора и выполните команду:
Get-AdfsRelyingPartyTrust -Name "Cisco Webex" | Set-AdfsRelyingPartyTrust -SigningCertificateRevocationCheck None -EncryptionCertificateRevocationCheck None
Примечание. Обязательно введите имя доверия отвечающей стороны так же, как и имя клиента, созданного в его ADFS, и в двойных кавычках.
- Протестируйте SSO в Control Hub для проверки.
Была ли статья полезной?