2017-02-13 1 views
0

J'essaie de configurer SimpleSAMLphp avec un fichier FederationMetadata.xml généré par un serveur AD FS 2.0 (dont vous pouvez voir ci-dessous - j'ai remplacé la partie centrale du domaine par le mot "domain").Comment connecter SP à l'IdP sur le domaine .local?

Étant donné que notre application Web n'est pas sur leur réseau, elle ne peut pas voir les machines sur le domaine .local. Je ne sais pas grand-chose sur ADFS et SAML mais je pensais que les points de terminaison IdP devaient être accessibles par le SP. Cependant, le contact technique pour l'IdP n'arrête pas de dire que tout ce dont nous avons besoin est ce fichier et que cela n'a pas d'importance que le SP soit externe au réseau.

Y at-il quelque chose qui me manque ici? L'IdP et le SP peuvent-ils communiquer en utilisant ces métadonnées?

<EntityDescriptor ID="**ID**" entityID="http://adfs2.domain.local/adfs/services/trust" xmlns="urn:oasis:names:tc:SAML:2.0:metadata"> 
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> 
    <ds:SignedInfo> 
     <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> 
     <ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/> 
     <ds:Reference URI="**URI**"> 
      <ds:Transforms> 
       <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/> 
       <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> 
      </ds:Transforms> 
      <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> 
      <ds:DigestValue>**digest**</ds:DigestValue> 
     </ds:Reference> 
    </ds:SignedInfo> 
    <ds:SignatureValue>**signature**</ds:SignatureValue> 
    <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> 
     <X509Data> 
      <X509Certificate>**cert**</X509Certificate> 
     </X509Data> 
    </KeyInfo> 
</ds:Signature> 
<RoleDescriptor xsi:type="fed:ApplicationServiceType" protocolSupportEnumeration="http://docs.oasis-open.org/ws-sx/ws-trust/200512 http://schemas.xmlsoap.org/ws/2005/02/trust http://docs.oasis-open.org/wsfed/federation/200706" ServiceDisplayName="adfs2.domain.local" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:fed="http://docs.oasis-open.org/wsfed/federation/200706"> 
    <KeyDescriptor use="encryption"> 
     <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> 
      <X509Data> 
       <X509Certificate>**cert**</X509Certificate> 
      </X509Data> 
     </KeyInfo> 
    </KeyDescriptor> 
    <fed:ClaimTypesRequested> 
     <auth:ClaimType Uri="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"> 
      <auth:DisplayName>E-Mail Address</auth:DisplayName> 
      <auth:Description>The e-mail address of the user</auth:Description> 
     </auth:ClaimType> 
     <auth:ClaimType Uri="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706"> 
      <auth:DisplayName>Given Name</auth:DisplayName> 
      <auth:Description>The given name of the user</auth:Description> 
     </auth:ClaimType> 

     ... 

    </fed:ClaimTypesRequested> 
    <fed:TargetScopes> 
     <EndpointReference xmlns="http://www.w3.org/2005/08/addressing"> 
      <Address>https://adfs2.domain.local/adfs/services/trust/2005/issuedtokenmixedasymmetricbasic256</Address> 
     </EndpointReference> 
     <EndpointReference xmlns="http://www.w3.org/2005/08/addressing"> 
      <Address>https://adfs2.domain.local/adfs/services/trust/2005/issuedtokenmixedsymmetricbasic256</Address> 
     </EndpointReference> 
     <EndpointReference xmlns="http://www.w3.org/2005/08/addressing"> 
      <Address>https://adfs2.domain.local/adfs/services/trust/13/issuedtokenmixedasymmetricbasic256</Address> 
     </EndpointReference> 
     <EndpointReference xmlns="http://www.w3.org/2005/08/addressing"> 
      <Address>https://adfs2.domain.local/adfs/services/trust/13/issuedtokenmixedsymmetricbasic256</Address> 
     </EndpointReference> 
     <EndpointReference xmlns="http://www.w3.org/2005/08/addressing"> 
      <Address>https://adfs2.domain.local/adfs/ls/</Address> 
     </EndpointReference> 
     <EndpointReference xmlns="http://www.w3.org/2005/08/addressing"> 
      <Address>http://adfs2.domain.local/adfs/services/trust</Address> 
     </EndpointReference> 
    </fed:TargetScopes> 
    <fed:ApplicationServiceEndpoint> 
     <EndpointReference xmlns="http://www.w3.org/2005/08/addressing"> 
      <Address>https://adfs2.domain.local/adfs/services/trust/2005/issuedtokenmixedasymmetricbasic256</Address> 
     </EndpointReference> 
    </fed:ApplicationServiceEndpoint> 
    <fed:PassiveRequestorEndpoint> 
     <EndpointReference xmlns="http://www.w3.org/2005/08/addressing"> 
      <Address>https://adfs2.domain.local/adfs/ls/</Address> 
     </EndpointReference> 
    </fed:PassiveRequestorEndpoint> 
</RoleDescriptor> 
</EntityDescriptor> 

Répondre

0

Votre SP et leur fournisseur d'identité n'ont pas besoin de communiquer du tout. Une fois que vous avez échangé des métadonnées, la confiance est établie entre votre SP et leur IdP. SAML n'a aucune exigence sur la façon dont les métadonnées sont échangées. Certaines personnes le font par courrier électronique, d'autres le publient sur un serveur Web, d'autres le génèrent dynamiquement sur leur IdP ou SP et d'autres vous fournissent simplement les valeurs de données (cert, endpoints, etc.) et construisent vous-même les métadonnées.

Ce qui est important est que l'utilisateur qui se connecte a accès à la fois la SP et IdP. Le profil SAML le plus courant est le SP qui redirige le navigateur de l'utilisateur vers le fournisseur d'identité, puis après la connexion, le fournisseur d'identité provoque le retour du navigateur sur le SP.

Il existe d'autres profils à SAML, qui ne sont pas fréquemment utilisés, la communication de SP à l'IdP. Dans votre cas, le fournisseur d'identité ne prend pas en charge ce profil.

+0

Les métadonnées fournies ne sont pas du tout des métadonnées SAMLv2, mais des métadonnées WS-Federation. C'est une technologie totalement différente. –

+0

Fantastique, merci pour votre réponse. –