web-dev-qa-db-fra.com

Comment créer des métadonnées XML de fédération pour "Relying Party Trust" et "Approbations de fournisseur de revendications" pour ADFS 2.0

L'une de nos applications Web souhaite se connecter au serveur ADFS 2.0 pour obtenir le jeton de justificatif d'identité et vérifier les rôles de l'utilisateur en fonction. L'administrateur du serveur ADFS nous a demandé de leur fournir un fichier XML de métadonnées de fédération pour leur permettre de créer des approbations entre parties de confiance. J'ai cherché sur Google et seulement trouver comment télécharger le fichier XML de métadonnées de fédération du serveur ADFS à l'aide d'une URL - https: // [nom du serveur adfs] /federationmetadata/2007-06 /federationmetadata.xml Mais n’a trouvé aucun guide pour créer un fichier XML de métadonnées de fédération permettant de créer " partie utilisatrice Trust "et" Approbations de fournisseur de revendications ". Existe-t-il des outils pour créer ces fichiers de métadonnées? S'il vous plaît partager une idée sur la façon de créer.

Merci

Lu

Répondez à ma propre question:

J'ai trouvé les outils Federation Utility dans WindowsIdentityFoundation-SDK-4.0 dans - http://www.Microsoft.com/en-ca/download/details.aspx?id=4451 le fera.

21
Yadong

En fait, l'URL est

https://server/federationmetadata/2007-06/federationmetadata.xml

Je ne connais aucun outil.

Vous pouvez utiliser la classe Microsoft.IdentityModel.Protocols.WSFederation.Metadata ou vous référer à Génération dynamique des métadonnées de fédération .

Consultez "Thinktecture.IdentityServer.v2/src/Bibliothèques/Thinktecture.IdentityServer.Protocols/FederationMetadata" sur Thinktecture.IdentityServer.v2 .

Ou si votre application utilise WIF, c'est dans le répertoire des métadonnées.

Mise à jour:

En WIF, sauf si vous souhaitez chiffrer le jeton, vous n'avez pas besoin du certificat. C'est plus pour le côté ADFS, car il doit signer le jeton et l'application. a besoin de la clé publique pour vérifier.

Exemple:

<?xml version="1.0" encoding="utf-8"?>
<EntityDescriptor ID="_5b6cd05c-a5e3-470d-a2fc-6c6f66633d1b" entityID="http://localhost/app/" xmlns="urn:oasis:names:tc:SAML:2.0:metadata">
    <RoleDescriptor xsi:type="fed:ApplicationServiceType" xmlns:fed="http://docs.oasis-open.org/wsfed/federation/200706" protocolSupportEnumeration="http://docs.oasis-open.org/wsfed/federation/200706" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        <fed:ClaimTypesRequested>
            <auth:ClaimType Uri="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706" />
            <auth:ClaimType Uri="http://schemas.Microsoft.com/ws/2008/06/identity/claims/role" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706" />
        </fed:ClaimTypesRequested>
        <fed:TargetScopes>
            <EndpointReference xmlns="http://www.w3.org/2005/08/addressing">
                <Address>http://localhost/app/</Address>
            </EndpointReference>
        </fed:TargetScopes>
        <fed:PassiveRequestorEndpoint>
            <EndpointReference xmlns="http://www.w3.org/2005/08/addressing">
                <Address>http://localhost/app/</Address>
            </EndpointReference>
        </fed:PassiveRequestorEndpoint>
    </RoleDescriptor>
</EntityDescriptor>

où localhost\app\doit être l'URL de votre application. Remarque fin slash!

30
nzpcmad

Je devais le faire récemment, n'ayant jamais utilisé .Net ou ADFS auparavant et n'ayant que l'URL de métadonnées du serveur (STS) avec laquelle j'essayais de m'intégrer. J'avais un PC Windows 10 de base et j'essayais de configurer une application Web Node.js en tant que RP. C'est ce que j'ai fait:

  1. Sur le PC Windows 10, allez dans Panneau de configuration -> Programmes et fonctionnalités -> Activer ou désactiver des fonctionnalités Windows -> Activer Windows Identity Foundation 3.5

  2. Kit de développement logiciel (SDK) Windows Identity Foundation 4.0 installé (tel que mentionné par l'auteur d'origine).

  3. Création d'un fichier Web.config de base contenant:

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <system.web>
    
      </system.web>
    </configuration>
    
  4. Dans le répertoire d'installation du SDK, j'ai trouvé FedUtil.exe et FedUtilSampleUserInput.xml. L'exemple de fichier expliquait tous les paramètres que FedUtil.exe allait demander, ce qui était très utile.

  5. Lancement de FedUtil.exe en tant qu'administrateur (clic droit dans l'explorateur de fichiers), fournissant le fichier Web.config que je viens de créer, l'URL de l'application Web, l'URL de métadonnées du serveur (STS) en tant que "STS existant", et en sélectionnant une nouvelle valeur par défaut. certificat.

  6. Et voilà, un fichier FederationMetadata.xml a été généré et mon fichier Web.config a été mis à jour automatiquement.

  7. J'ai ensuite commenté certains des types de revendications dans le fichier Web.config mis à jour et relancé FedUtil.exe, qui a ensuite mis à jour mon fichier FederationMetadata.xml avec les types de revendications supplémentaires dont j'avais besoin du STS (par exemple, courrier électronique, nom donné). , nom de famille)

  8. Fourni le FederationMetadata.xml à l'administrateur STS, ce qui a fonctionné!

Le seul inconvénient est que tout cela nécessitait une machine Windows ... Je ne suis pas sûr de ce que j'aurais fait sur Mac ou Linux!

12
Richard G

Pour créer des métadonnées SAML RP, un outil Web disponible à l'adresse samltool.com peut vous aider. Je n'en ai pas trouvé pour WS-Federation autre que l'utilitaire de fédération ...

J'ai aussi récemment découvert le site rcFederation qui supporte AD FS/WS-Federation

3
Dscoduc

Le xml de métadonnées pour la création d'une "approbation de partie en relecture" n'est pas une métadonnée de fédération ADFS, mais un xml de métadonnées de SP (Saml issuer).

0
AfjLee