Вчера вечером мы пытались перенести веб-сайт к нашему новому хостинг-провайдеру. Этот новый хостинг-провайдер использует SSL-разгрузчик, и это вызывает проблему с веб-сайтом, использующим SAML. После миграции, когда мы попытались войти с помощью SAML, мы получили следующую ошибку, в ошибке и web.config я изменил имя клиента на customer. Мы думаем, что SAML ожидает ответ HTTPS, но получает ответ HTTP. Есть ли способ повлиять на это из web.config? Я также добавил часть web.config с большей частью конфигурации клиента относительно SAML, мы также попробовали это с CookieHandler на False, но та же ошибка. Надеюсь, вы, ребята, сможете нам помочь!
Конфигурация Web.Config
<!-- SAML authService -->
<kentor.authServices
entityId="customersaml"
returnUrl="https://customer.domain.com"
validateCertificates="false">
<identityProviders>
<add entityId="http://ahauth01.customer.nl/adfs/services/trust" signOnUrl="https://ahauth01.customer.nl/adfs/ls/" allowUnsolicitedAuthnResponse="true" binding="HttpPost">
<signingCertificate fileName="~/Config/customer.crt" />
</add>
</identityProviders>
</kentor.authServices>
<system.identityModel.services>
<federationConfiguration>
<cookieHandler requireSsl="true"/>
</federationConfiguration>
</system.identityModel.services>
<system.identityModel>
<identityConfiguration>
<securityTokenHandlers>
<securityTokenHandlerConfiguration>
<audienceUris mode="Never" />
</securityTokenHandlerConfiguration>
</securityTokenHandlers>
</identityConfiguration>
</system.identityModel>
ОШИБКА
Saml Customersaml Microsoft.IdentityServer.Service.Policy.PolicyServer.Engine.AssertionConsumerServiceUrlDoesNotMatchPolicyException: MSIS3200: AssertionConsumerService не настроен для доверия проверяющей стороны «microsoft:identityserver:Customersaml», что является префиксом, совпадающим с URL-адресом AssertionConsumerService «http://Customer.domain.com/AuthServices/Acs' указан запросом. в Microsoft.IdentityServer.Service.SamlProtocol.EndpointResolver.LookupAssertionConsumerServiceByUrl(Collection`1 assertionConsumerServices, Uri askedAssertionConsumerServiceUrl, String scopeIdentity) в Microsoft.IdentityServer.Service.SamlProtocol.EndpointResolver.FindSamlResponseEndpointForAuthenticationRequest(Boolean artifactEnabled, AuthenticationRequest request, ScopeDescription scopeDescription) в Microsoft.IdentityServer.Web.Protocols.Saml.SamlProtocolManager.GetResponseEndpointFromRequest(SamlRequest request, Boolean isUrlTranslationNeeded, ScopeDescription scope) в 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) в Microsoft.IdentityServer.Web.Protocols.Saml.SamlProtocolHandler.RequestBearerToken(WrappedHttpListenerContext context, HttpSamlRequestMessage httpSamlRequest, SecurityTokenElement onBehalfOf, String relyingPartyIdentifier, Boolean isKmsiRequested, Boolean isApplicationProxyTokenRequired, String& samlpSessionState, String& samlpAuthenticationProvider) в Microsoft.IdentityServer.Web.Protocols.Saml.SamlProtocolHandler.BuildSignInResponseCoreWithSerializedToken(HttpSamlRequestMessage httpSamlRequest, WrappedHttpListenerContext context, String relingPartyIdentifier, SecurityTokenElement signOnTokenElement, Boolean isKmsiRequested, Boolean isApplicationProxyTokenRequired) в Microsoft.IdentityServer.Web.Protocols.Saml.SamlProtocolHandler.BuildSignInResponseCoreWithSecurityToken(SamlSignInContext context, SecurityToken securityToken, SecurityToken deviceSecurityToken) в Microsoft.IdentityServer.Web.Protocols.Saml.SamlProtocolHandler.Process(контекст ProtocolContext) в Microsoft.IdentityServer.Web.PassiveProtocolListener.ProcessProtocolRequest(контекст ProtocolContext, PassiveProtocolHandler protocolHandler) в Microsoft.IdentityServer.Web.PassiveProtocolListener.OnGetContext(контекст WrappedHttpListenerContext)
решение1
Проверьте доверие проверяющей стороны на AD FS и посмотрите на конечные точки. Имеет ли он конечную точку для пути 'http://Customer.domain.com/AuthServices/Acs' ?