AD FS 4.0

Configuration d'AD FS pour permettre l'authentification depuis une application AppScho

Introduction

Windows Server, depuis sa version 2016 et AD FS 4.0, propose une implémentation complète d'un framework d'authentification et autorisation OpenID Connect. Ce mode d'authentification est particulièrement adapté à une utilisation sur des applications mobiles natives.

La gestion des refresh tokens a été implémentée par Microsoft à partir de la version 4.0 d'AD FS. Pour les versions antérieures à celle-ci, ce guide n'est pas applicable.

L'authentification utilise le flow authorization_code, utilisant l'interface Web de connexion d'AD FS afin de récupérer un code à usage unique à échanger contre des jetons d'authentification. Ces jetons sont constitués d'un access token, permettant d'accéder aux ressources autorisées, ainsi qu'un refresh token, permettant de maintenir continuellement (dans la limite des règles imposées par AD FS) une session d'authentification.

De plus, AD FS implémente la norme JWK permettant à un tiers (ici l'infrastructure d'AppScho et/ou les Web Services mis en place par l'établissement) de vérifier la validité cryptographique d'un token de façon indépendante.

Cette procédure à été réalisée sur un Windows Server 2016 en langue anglaise, veuillez prendre soin de bien repérer les traductions appropriées dans les différents menus.

Mise en place

Le principe ici est créer un client OpenID Connect à fournir à AppScho, qui sera utilisé par l'application mobile et les infrastructures d'AppScho pour authentifier les utilisateurs.

Création du client OpenID Connect

Rendez-vous dans la AD FS Management Console, dans la catégorie Application Groups et cliquez sur Add application group...

Puis remplissez les informations suivantes (chaque numéro correspond à un écran) :

    • Name: AppScho

    • Native application accessing a Web API

    • Notez le Client Identifier

    • Redirect URI : <sera fournie par AppScho>

    • Identifier : AppScho

    • Sélectionnez Permit everyone (tout le monde sera autorisé à essayer de se connecter)

    • Cochez "openid", "email" et "profile" comme scopes

    • Cliquez sur Suivant, puis Terminer

Configuration des claims renvoyées

OpenID Connect est capable, une fois un utilisateur connecté, de renvoyer des informations relatives à celui-ci directement dans le token généré. Il s'agit ici d'indiquer quels attributs Active Directory renvoyer dans quels attributs (claims) JWT.

Rendez-vous dans la AD FS Management Console, dans la catégorie Application Groups, puis AppScho, puis AppScho - Web API.

  • Rendez-vous dans la section Issuance Transform Rules

  • Cliquez sur Add Rule...

  • Sélectionnez Send LDAP Attributes as Claims

  • Donnez un nom à cette règle, par exemple AppScho user information

  • Attribute store : Active Directory

  • Puis réalisez dans le tableau le mapping ci-dessous :

    • User-Principal-Name -> E-Mail Address

    • User-Principal-Name -> UPN

    • Display-Name -> Name

    • Surname -> Surname

    • Given-Name -> Given-Name

Si vous désirez ou nécessitez de nous envoyer certains attributs supplémentaires (par exemple le campus d'appartenance de l'utilisateur, ou sa promotion), veuillez rajouter une ligne avec un champ personnalisé.

Certaines traductions françaises dans l'interface sont erronées ou dupliquées, il sera donc nécessaire d'effectuer un test afin de vérifier que les attributs corrects ont été sélectionnés.

Informations à fournir à AppScho

Une fois la procédure réalisée, voici les informations qui seront nécessaires de nous fournir afin de tester et de mettre en place l'authentification :

  • L'URL publique de votre serveur AD FS 4.0 (généralement similaire à https://votread.etablissement.fr/adfs)

  • Le Client ID de l'application créée (A.2)

  • Le Resource Identifier, si vous avez renseigné une valeur différentes (A.3)

  • Le mapping de vos attributs Active Directory.

  • Un compte actif sur votre Active Directory pour pour se connecter à travers le client OpenID Connect

Last updated