2016-11-10 9 views
0

Shibboleth를 서비스 공급자 (SP)로 사용하여 ADFS 3.0 및 SAML 2.0을 설정하고 있습니다. 성공적으로 인증서를 ADFS로 가져 왔습니다. 에 로그인 한 후SAML 2.0 및 ADFS 3.0에서 연합 오류 제거

https://c-adfs01.contoso.com/Shibboleth.sso/SAML2/POST` 

: 사용자가 리디렉션되기 때문에 ADFS는 공급자 (또는 ADFS IDP) 로그인 페이지가 작동을 주장

https://c-adfs01.contoso.com/adfs/ls/idpinitiatedsignon 

그러나,이 명령을 실행 할 때마다 :

systemctl restart shibd && systemctl restart httpd 

나는 다음과 같은 오류를 얻을 :

2016-11-09 16:54:36 ERROR XMLTooling.ParserPool : error on line 1, column 2732, message: grammar not found for namespace 'http://docs.oasis-open.org/wsfed/federation/200706' 
2016-11-09 16:54:36 ERROR XMLTooling.ParserPool : error on line 1, column 2732, message: attribute 'ServiceDisplayName' is not declared for element 'RoleDescriptor' 
2016-11-09 16:54:36 ERROR XMLTooling.ParserPool : error on line 1, column 3923, message: no declaration found for element 'fed:ClaimTypesRequested' 
2016-11-09 16:54:36 ERROR XMLTooling.ParserPool : error on line 1, column 24961, message: no declaration found for element 'fed:TargetScopes' 
2016-11-09 16:54:36 ERROR XMLTooling.ParserPool : error on line 1, column 25333, message: no declaration found for element 'fed:ApplicationServiceEndpoint' 
2016-11-09 16:54:36 ERROR XMLTooling.ParserPool : error on line 1, column 25536, message: no declaration found for element 'fed:PassiveRequestorEndpoint' 
2016-11-09 16:54:36 ERROR XMLTooling.ParserPool : error on line 1, column 25724, message: element 'fed:ClaimTypesRequested' is not allowed for content model '(Signature?,Extensions?,KeyDescriptor*,Organization?,ContactPerson*)' 
2016-11-09 16:54:36 ERROR XMLTooling.ParserPool : error on line 1, column 26099, message: grammar not found for namespace 'http://docs.oasis-open.org/wsfed/federation/200706' 
2016-11-09 16:54:36 ERROR XMLTooling.ParserPool : error on line 1, column 26099, message: attribute 'ServiceDisplayName' is not declared for element 'RoleDescriptor' 
2016-11-09 16:54:36 ERROR XMLTooling.ParserPool : error on line 1, column 27277, message: no declaration found for element 'fed:TokenTypesOffered' 
2016-11-09 16:54:36 ERROR XMLTooling.ParserPool : error on line 1, column 27444, message: no declaration found for element 'fed:ClaimTypesOffered' 
2016-11-09 16:54:36 ERROR XMLTooling.ParserPool : error on line 1, column 48496, message: no declaration found for element 'fed:SecurityTokenServiceEndpoint' 
2016-11-09 16:54:36 ERROR XMLTooling.ParserPool : error on line 1, column 49192, message: no declaration found for element 'fed:PassiveRequestorEndpoint' 
2016-11-09 16:54:36 ERROR XMLTooling.ParserPool : error on line 1, column 49380, message: element 'fed:TokenTypesOffered' is not allowed for content model '(Signature?,Extensions?,KeyDescriptor*,Organization?,ContactPerson*)' 
2016-11-09 16:54:36 ERROR OpenSAML.MetadataProvider.XML : error while loading resource (https://c-adfs01.contoso.com/FederationMetadata/2007-06/FederationMetadata.xml): XML error(s) during parsing, check log for specifics 
2016-11-09 16:54:36 WARN OpenSAML.MetadataProvider.XML : adjusted reload interval to 600 seconds 
2016-11-09 16:54:36 CRIT Shibboleth.Application : error initializing MetadataProvider: XML error(s) during parsing, check log for specifics 
나는 ClaimTypesOffered 등 (얻을 수있는 서비스 제공 업체를 구성 어떻게 ... 내 질문은, 그래서

LoadModule mod_shib /usr/lib64/shibboleth/mod_shib_24.so 

ShibCompatValidUser Off 

<Location /Shibboleth.sso> 
    SetHandler shib 
    AuthType None 
    Require all granted 
</Location> 

:

여기

<SPConfig xmlns="urn:mace:shibboleth:2.0:native:sp:config" 
    xmlns:conf="urn:mace:shibboleth:2.0:native:sp:config" 
    xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" 
    xmlns:samlp="urn:oasis:names:tc:SAML::2.0:protocol" 
    xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" 
    clockSkew="180"> 


    <!-- ADFS Extension --> 
    <OutOfProcess> 
     <Extensions> 
      <Library path="/usr/lib64/shibboleth/adfs.so" fatal="true"/> 
     </Extensions> 
    </OutOfProcess> 
    <InProcess logger="native.log" checkSpoofing="true"> 
     <Extensions> 
      <Library path="/usr/lib64/shibboleth/adfs-lite.so" fatal="true"/> 
     </Extensions> 
    </InProcess> 
    <RequestMapper type="Native" 
     sessionError="/var/log/shibboleth/session_error.log" 
     metadataError="/var/log/shibboleth/metadata_error.log" 
     accessError="/var/log/shibboleth/access_error.log" 
     sslError="/var/log/shibboleth/ssl_error.log"> 
     <RequestMap applicationId="default"> 
      <Host name="c-app01"> 
       <Path name="secure" authType="shibboleth" requireSession="true"/> 
      </Host> 
     </RequestMap> 
    </RequestMapper> 

    <!-- The ApplicationDefaults element is where most of Shibboleth's SAML bits are defined. --> 
    <ApplicationDefaults entityID="https://c-app01.contoso.com/Shibboleth.sso/Metadata.xml" 
      REMOTE_USER="eppn persistent-id targeted-id"> 
     <Sessions lifetime="28800" timeout="3600" relayState="ss:mem" 
       checkAddress="false" handlerSSL="true" cookieProps="https"> 
      <!-- Putting another SSO here will make shibd fail. There should only be one SSO. --> 
      <SSO> 
       SAML2 SAML1 ADFS 
      </SSO> 
      <!-- SAML and local-only logout. --> 
      <Logout>SAML2 Local</Logout> 
      <!-- Extension service that generates "approximate" metadata based on SP configuration. --> 
      <Handler type="MetadataGenerator" Location="/Metadata.xml" signing="false"/> 
      <!-- Status reporting service. --> 
      <Handler type="Status" Location="/Status" acl="127.0.0.1 ::1"/> 
      <!-- Session diagnostic service. --> 
      <Handler type="Session" Location="/Session" showAttributeValues="false"/> 
      <!-- JSON feed of discovery information. --> 
      <Handler type="DiscoveryFeed" Location="/DiscoFeed"/> 
     </Sessions> 
     <Errors supportContact="[email protected]" 
      helpLocation="/about.html" 
      styleSheet="/shibboleth-sp/main.css"/> 
     <!-- Example of remotely supplied batch of signed metadata. --> 


     <!-- using validate="true" will give errors in Federationmetadata.xml--> 
     <MetadataProvider type="XML" validate="true" 
      uri="https://c-adfs01.contoso.com/FederationMetadata/2007-06/FederationMetadata.xml" 
      reloadInterval="3600"> 
      <DiscoveryFilter type="Blacklist" matcher="EntityAttributes" trimTags="true" 
      attributeName="http://macedir.org/entity-category" 
      attributeNameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" 
      attributeValue="http://refeds.org/category/hide-from-discovery" /> 
     </MetadataProvider> 
     <!-- Example of locally maintained metadata. --> 
     <AttributeExtractor type="XML" validate="true" reloadChanges="false" path="attribute-map.xml"/> 
     <!-- Use a SAML query if no attributes are supplied during SSO. --> 
     <AttributeResolver type="Query" subjectMatch="true"/> 
     <!-- Default filtering policy for recognized attributes, lets other data pass. --> 
     <AttributeFilter type="XML" validate="true" path="attribute-policy.xml"/> 
     <!-- Simple file-based resolver for using a single keypair. --> 
     <CredentialResolver type="File" key="c-app01.contoso.com.key" certificate="c-app01.contoso.com.pem"/> 
    </ApplicationDefaults> 


    <!-- Policies that determine how to process and authenticate runtime messages. --> 
    <SecurityPolicyProvider type="XML" validate="true" path="security-policy.xml"/> 


    <!-- Low-level configuration about protocols and bindings available for use. --> 
    <ProtocolProvider type="XML" validate="true" reloadChanges="false" path="protocols.xml"/> 


</SPConfig> 

가 여기 내 아파치 구성의 내 shibboleth.xml 구성입니다 오류에서) 오류를 제거하려면?

답변

0

는 구성 SP는

그래서,이 솔루션은 shibboleth2.xml

구성 내부 MetadataProvider 태그에 validate="false"를 사용하는

IDP이었다 이메일 주소와 전화 번호가 ADFS에서 작성되어야하는 .

이 구성에 있습니다 위의 단계 후

AD FS Management > Service (right click) > Service Federation Properties > Organization

실행, 나는 SP에 가서 링크를 사용할 때 IDP 로그인 페이지로 리디렉션 할 수 있었다 :

https://c-app01.contoso.com/Shibboleth.sso/Login?entityID=https://c-adfs01.contoso.com/FederationMetadata.xml/2007-06/FederationMetadata.xml?target=https://c-app01.contoso.com/secure

IDP 로그인 후 target으로 성공적으로 리디렉션됩니다.

다른 것들을 참고 사항 :

이 페더레이션 서비스 식별자에있는 Metadata 사용하고 있는지 확인합니다 : 내 경우

AD FS Management > Service (right click) > Service Federation Properties > General

는, 그것이 https://c-adfs01.contoso.com/FederationMetadata/2007-06/FederationMetadata.xml