昨晚,我們嘗試將網站遷移到新的託管提供者。這個新的託管提供者使用 SSL 卸載程序,這會導致使用 SAML 的網站出現問題。遷移後,當我們嘗試使用 SAML 登入時,出現以下錯誤,在錯誤和 web.config 中,我已將客戶名稱更改為 customer。我們認為 SAML 期望 HTTPS 回應,但它得到的是 HTTP 回應。有沒有辦法透過 web.config 來影響這一點。我還添加了 web.config 的一部分,其中包含有關 SAML 的大多數客戶配置,我們也嘗試使用 CookieHandler on 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:在相依者信任「microsoft:identityserver:Customersaml」上未配置AssertionConsumerService,此為信任方格為信任的匹配項http://Customer.domain.com/AuthServices/Acs' 由請求指定。在 Microsoft.IdentityServer.Service.SamlProtocol.EndpointResolver.LookupAssertionConsumerServiceByUrl(Collection`1assertionConsumerServices,Uri requestAssertionConsumerServiceUrl,字串scopeIdentity)在 Microsoftl.IdentityServer.ServicetionConsumerServiceUrl,字串scopeIdentity)在 Microsoftl.IdentityServer.Service.Samlsolto enticationRequest請求,ScopeDescriptionscopeDescription)在 Microsoft.IdentityServer . Web.Protocols.Saml.SamlProtocolManager.GetResponseEndpointFromRequest(SamlRequest請求,布林isUrlTranslationNeeded,ScopeDescription範圍)在Microsoft.IdentityServer.Web.Protocols.Saml.SamlProtocolm.Issue(Htidalityalcialn見到State,字串&newSamlSession,String& samlpAuthenticationProvider、Boolean isUrlTranslationNeeded、WrappedHttpListenerContext 上下文、Boolean isKmsiRequested) 在Microsoft.IdentityServer.Web.Protocols.Saml.SamlProtopdler. SamlRequest、SecurityTokenElement onBehalfOf、String reyingPartyIdentifier、Boolean isKmsiRequested、Boolean isApplicationProxy TokenRequired、字串& samlpSessionState、字串& samlpAuthenticationProvider )位於Microsoft.IdentityServer.Web.Protocols.Saml.SamlProtocolHandler.BuildSignInResponseCoreWithSerializedToken(HttpSamlRequestMessage httpSamlRequest、WithSerializedToken(HttpSamlRequestMessage [SamlRe布林值isKmsiRequested、布林值isApplicationProxyTokenRequired) 位於Microsoft.IdentityServer.Web. Protocols.Saml.SamlProtocolHandler.BuildSignIn ResponseCoreWithSecurityToken(SamlSignInContext) context、SecurityToken securityToken、SecurityToken deviceSecurityToken)位於Microsoft.IdentityServer.Web.Protocols.Saml.SamlProtocolr. colRequest(ProtocolContext protocolContext 、PassiveProtocolHandler protocolHandler)位於Microsoft.IdentityServer.Web。
答案1
檢查 AD FS 上的依賴方信任並查看端點。它是否有路徑的端點'http://Customer.domain.com/AuthServices/Acs'?