2014-05-20 3 views
-1

내 프로젝트에서 SAML 2.0을 구현하는 동안 아래 오류로 고생하고 있습니다.Microsoft.IdentityServer.Web.RequestFailedException : MSIS7012 :

세부 사항 : 서버 : 톰캣 IDP : ADFS 2.0

오류 :

여기
Exception details: 
Microsoft.IdentityServer.Web.RequestFailedException: MSIS7012: An error occurred while processing the request. Contact your administrator for details. ---> 
System.ServiceModel.FaultException: The creator of this fault did not specify a Reason. 
    at Microsoft.IdentityServer.Protocols.Saml.Contract.MSISSamlProtocolContractClientManager.ProcessRequest(Message request) 
    at Microsoft.IdentityServer.Protocols.Saml.Contract.MSISSamlProtocolContractClient.ProcessRequest(MSISSamlRequest samlRequest) 
    at Microsoft.IdentityServer.Protocols.Saml.Contract.MSISSamlProtocolContractClient.ProcessRequest[T](MSISSamlRequest samlRequest) 
    at Microsoft.IdentityServer.Protocols.Saml.Contract.MSISSamlProtocolContractClient.Issue(HttpSamlMessage httpSamlMessage, SecurityTokenElement onBehalfOf, String sessionState, String& newSessionState, String& authenticatingProvider) 
    at Microsoft.IdentityServer.Web.FederationPassiveAuthentication.RequestBearerToken(HttpSamlRequestMessage httpSamlRequest, SecurityTokenElement onBehalfOf, String& samlpSessionState, String& samlpAuthenticationProvider) 
    --- End of inner exception stack trace --- 
    at Microsoft.IdentityServer.Web.FederationPassiveAuthentication.RequestBearerToken(HttpSamlRequestMessage httpSamlRequest, SecurityTokenElement onBehalfOf, String& samlpSessionState, String& samlpAuthenticationProvider) 
    at Microsoft.IdentityServer.Web.FederationPassiveAuthentication.BuildSignInResponseCoreWithSerializedToken(String signOnToken, WSFederationMessage incomingMessage) 
    at Microsoft.IdentityServer.Web.FederationPassiveAuthentication.SignIn(SecurityToken securityToken) 

System.ServiceModel.FaultException: The creator of this fault did not specify a Reason. 
    at Microsoft.IdentityServer.Protocols.Saml.Contract.MSISSamlProtocolContractClientManager.ProcessRequest(Message request) 
    at Microsoft.IdentityServer.Protocols.Saml.Contract.MSISSamlProtocolContractClient.ProcessRequest(MSISSamlRequest samlRequest) 
    at Microsoft.IdentityServer.Protocols.Saml.Contract.MSISSamlProtocolContractClient.ProcessRequest[T](MSISSamlRequest samlRequest) 
    at Microsoft.IdentityServer.Protocols.Saml.Contract.MSISSamlProtocolContractClient.Issue(HttpSamlMessage httpSamlMessage, SecurityTokenElement onBehalfOf, String sessionState, String& newSessionState, String& authenticatingProvider) 
    at Microsoft.IdentityServer.Web.FederationPassiveAuthentication.RequestBearerToken(HttpSamlRequestMessage httpSamlRequest, SecurityTokenElement onBehalfOf, String& samlpSessionState, String& samlpAuthenticationProvider) 



The verification of the SAML message signature failed. 
Message issuer: http://XXXXX.XXXX.XXXX.com/adfs/services/trust 
Exception details: 
MSIS1015: Server required signed SAML AuthenticationRequest but no signature present. 

가 내 디코딩 된 인증 요청입니다 :

<?xml version="1.0" encoding="UTF-8"?> 
-<samlp:AuthnRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" Version="2.0" ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" IssueInstant="2014-05-20T05:25:51.083Z" IsPassive="false" ID="_abff2b25141987e9da0f33f30b1180d6" ForceAuthn="false" AssertionConsumerServiceURL="https://inbspg001nfh.as.XXXX.XXXX.com:8443/JavaSamlSP/setcookie.jsp"><samlp:Issuer xmlns:samlp="urn:oasis:names:tc:SAML:2.0:assertion">http://XXXX.XXXX.XXXX.com/adfs/services/trust</samlp:Issuer><saml2p:NameIDPolicy xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol" Format="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent" AllowCreate="true"/>-<saml2p:RequestedAuthnContext xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol" Comparison="exact"><saml:AuthnContextClassRef xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport</saml:AuthnContextClassRef></saml2p:RequestedAuthnContext></samlp:AuthnRequest> 

너희들은 어떤 생각을 가지고, 제발 도와주세요 .. 미리 감사드립니다 ..

답변

0

이것은 일반적으로 ADFS가 인증 요청에 서명 할 것으로 기대하기 때문에 발생합니다.

SP에 요청에 서명하고 ADFS를 그대로 두거나 ADFS에 서명 된 요청이 없도록 지시 할 수 있습니다. (보안을 위해 전자와 함께). 해결하는 방법

번호 :

  • 인증에 서명 할 수있는 SP 옵션을 설정합니다. 요청
  • 새로운 SP 메타 데이터를 생성하고 가져옵니다.

    은 SP의 경우 : 다음 ADFS 측면에서

설정 ADFSClaimsProvider -TargetIdentifier SP-SignedSamlRequestsRequired $ 거짓

ADFS의 모든

:

설정 ADFSProperties -SignedSamlRequestsRequired $ False

+0

Thnks .. 서명 된 요청을 기대하지 않도록 ADFS를 구성했습니다. 내가 동일한 오류를 .. 점점 더 하나의 결과 : adfs에서 메타 데이터를 테스트하는 동안 .. 그 말 : ssl/tls ..에 대한 보안 채널을 설정할 수 없습니다 .. 어떤 생각이 .. 일어나고 있습니다. – user3610987