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