Pour que le scénario de fédération d’identité soit valide de bout en bout, il faut que l’application ait déclaré (via le fichier de configuration) que le STS (Security Token Service), à qui est délégué la gestion de l’authentification et de l’identité, est un STS de confiance (c’est à dire que l’application “croît” les informations renvoyées par ce STS), et il faut que le STS ait enregistré l’application comme Relying Party (c’est à dire que le STS accepte d’authentifier et de renvoyer les informations d’identité de l’utilisateur à l’application).

Ce double trust est essentiel puisqu’il permet au STS de ne pas gérer l’authentification d’applications non enregistrées (et donc de ne pas renvoyer de données d’identité à n’importe quelle application) et il permet à l’application de ne pas accepter les informations d’identité émit par n’importe quel STS.

Ce post explique comment enregistrer une application dans ADFS. Pour avoir les informations sur l’enregistrement d’une application dans ACS d’Azure, c’est ici : Enregistrer une application dans ACS.

Inscription d’une Relying Party

Pour démarrer l’inscription, lancez AD FS 2 Management. Sélectionnez le nœud Relying Party Trusts et cliquez sur l’action Add Relying Party.

Relying Party Trusts

Deux choix s’offrent à nous: enregistrer manuellement l’application ou utiliser le fichier FederationMetadata.xml généré par l’utilitaire Windows Identity Foundation Federation Utility (utiliser le fichier permet d’enregistrer automatiquement l’application à partir des informations saisies depuis l’utilitaire).

En choisissant l’enregistrement manuel, le premier écran de configuration demande un nom pour la Relying Party.

Relying Party

Le second écran permet de choisir si l’on souhaite utiliser le protocole SAML 2.0 ou SAML 1 / 1.1.

ADFS Profile

Il faut ensuite sélectionner un certificat si l’on souhaite encrypter le token renvoyé par ADFS.

Certificat

L’écran suivant permet d’activer la fédération passive (par redirection vers le STS) et le SSO (Single-Sign-On). Pour faire de la fédération passive avec une application ASP.NET, il faut au minimum activer le protocole WS-Federation Passive et renseigner l’URL de l’application. Sans cette activation, la redirection qu’effectuera l’application vers l’ADFS sera refusée et un message d’erreur sera renvoyé.

Passive protocol URL

L’écran suivant demande un nom unique pour la Relying Party (on peut laisser l’URL de l’application comme identifiant).

Identifier

Le dernier écran, qui est disponible si on a utilisé l’enregistrement automatique, permet de configurer les autorisations par défaut des utilisateurs.

Relying Party permissions

La Relying Party est configurée.

Relying Party Trusts

L’application peut maintenant effectuer la redirection vers l’ADFS pour demander une authentification de l’utilisateur.

Configuration des claims

Par défaut, ADFS ne va renvoyer aucun claim à une nouvelle Relying Party.

Pour configurer les claims renvoyés à l’application, sélectionnez la Relying Party puis cliquez sur Edit Claims Rules….

Edit Claims Rules

Sur l’écran d’édition des claims, vous aurez la possibilité d’ajouter/modifier et supprimer des règles.

Il y a 5 types de règles différentes :

  • Send LDAP Attributes as Claims : renvoyer des attributs LDAP en tant que Claims
  • Send Group Membership as a Claim : renvoyer un Claim en fonction de l’appartenance de l’utilisateur à un groupe AD
  • Transform an Incoming Claim : transformer un Claim envoyé à l’ADFS (par les Identity Providers) et le renvoyer
  • Pass Through or Filter an Incoming Claim : Renvoyer ou filtrer les claims envoyés à l’ADFS (par les Identity Providers)
  • Send Claims Using a Custom Rule : Utiliser un Custom Attribute Store pour renvoyer des Claims (un _Custom Attribute Store _permet de récupérer des Claims à partir d’une source externe à l’ADFS, comme un web service métier)

Récupération des claims côté applicatif

Depuis l’application .NET, la liste des Claims est accessible depuis la propriété Claims de la classe ClaimsIdentity.

ClaimsIdentity

A bientôt !

Si cet article t'a plu, n'hésites pas à partager , et si tu as des questions / remarques, n'hésites pas à me contacter