어젯밤에 우리는 웹사이트를 새로운 호스팅 제공업체로 마이그레이션하려고 했습니다. 이 새로운 호스팅 제공업체는 SSL 오프로더를 사용하므로 SAML을 사용하는 웹사이트에 문제가 발생합니다. 마이그레이션 후 SAML을 사용하여 로그인을 시도했을 때 아래 오류가 발생했습니다. 오류 및 web.config에서 고객 이름을 고객으로 변경했습니다. SAML은 HTTPS 응답을 기대하지만 HTTP 응답을 받습니다. web.config에서 이에 영향을 미칠 수 있는 방법이 있습니까? 또한 SAML과 관련된 대부분의 고객 구성을 사용하여 web.config의 일부를 추가했으며 False에서 CookieHandler를 사용하여 시도했지만 동일한 오류가 발생했습니다. 여러분이 우리를 도와주셨으면 좋겠습니다!
웹.구성 구성
<!-- 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 URL '의 접두사 일치인 신뢰 당사자 트러스트 'microsoft:identityserver:Customersaml'에 AssertionConsumerService가 구성되어 있지 않습니다.http://Customer.domain.com/AuthServices/Acs' 요청에 의해 지정되었습니다. Microsoft.IdentityServer.Service.SamlProtocol.EndpointResolver.LookupAssertionConsumerServiceByUrl(Collection`1 AssertionConsumerServices, Uri RequestedAssertionConsumerServiceUrl, String rangeIdentity) at Microsoft.IdentityServer.Service.SamlProtocol.EndpointResolver.FindSamlResponseEndpointForAuthenticationRequest(Boolean ArtifactEnabled, AuthenticationRequest request, 범위 설명)(Microsoft.IdentityServer) .Web.Protocols.Saml.SamlProtocolManager.GetResponseEndpointFromRequest(SamlRequest 요청, 부울 isUrlTranslationNeeded, ScopeDescription 범위) at Microsoft.IdentityServer.Web.Protocols.Saml.SamlProtocolManager.Issue(HttpSamlRequestMessage httpSamlRequestMessage, SecurityTokenElement onBehalfOf, String sessionState, String RelayState, String& newSamlSession, 문자열 및 samlpAuthenticationProvider, Boolean isUrlTranslationNeeded, WrappedHttpListenerContext context, Boolean isKmsiRequested) - Microsoft.IdentityServer.Web.Protocols.Saml.SamlProtocolHandler.RequestBearerToken(WrappedHttpListenerContext context, HttpSamlRequestMessage httpSamlRequest, SecurityTokenElement onBehalfOf, String ReliablePartyIdentifier, Boolean isKmsiRequested , 부울 isApplicationProxyTokenRequired, String& samlpSessionState, String& samlpAuthenticationProvider ) Microsoft.IdentityServer.Web.Protocols.Saml.SamlProtocolHandler.BuildSignInResponseCoreWithSerializedToken(HttpSamlRequestMessage httpSamlRequest, WrappedHttpListenerContext context, String lookingPartyIdentifier, SecurityTokenElement signOnTokenElement, Boolean isKmsiRequested, Boolean isApplicationProxyTokenRequired) SamlProtocolHandler.BuildSignInResponseCoreWithSecurityToken(SamlSignInContext 컨텍스트, SecurityToken securityToken, SecurityToken deviceSecurityToken)(Microsoft.IdentityServer.Web.Protocols.Saml.SamlProtocolHandler.Process(ProtocolContext 컨텍스트))(Microsoft.IdentityServer.Web.PassiveProtocolListener.ProcessProtocolRequest(ProtocolContext 프로토콜 컨텍스트, PassiveProtocolHandler 프로토콜 핸들러))(Microsoft.IdentityServer.Web). PassiveProtocolListener.OnGetContext(WrappedHttpListenerContext 컨텍스트)
답변1
AD FS에서 신뢰 당사자 신뢰를 확인하고 끝점을 살펴보세요. 경로 '에 대한 끝점이 있습니까?http://Customer.domain.com/AuthServices/Acs'?