Intégration AD FS

Aperçu

Cette section fournit des instructions sur :

Notes

  • Ces instructions s'appliquent uniquement à AD FS 2016.

  • Dans les instructions, remplacez <workflowgen url> par la domaine et le chemin à votre instance de WorkflowGen; par exemple, localhost/wfgen ou www.macompagnie.com/wfgen.

Authentification AD FS 2016

Cette section contient les instructions sur la configuration de l'authentification déléguée avec Active Directory Federation Services (AD FS) OpenID Connect, et vous montrera comment créer une instance de WorkflowGen utilisant AD FS pour l'authentification des utilisateurs.

Prérequis

  • Assurez-vous d'avoir une copie de WorkflowGen sous licence installée et en fonctionnement sur un serveur.

  • Assurez-vous d'avoir installé et configuré AD FS 2016 ou version ultérieure sur un serveur.

  • Assurez-vous d'avoir l'accès d'administrateur AD FS pour pouvoir configurer AD FS.

  • Assurez-vous d'avoir approvisionné un utilisateur Active Directory existant depuis lequel vous pourrez vous authentifier à WorkflowGen et que cet utilisateur a les permissions d'accès d'administrateur. Ceci est important car une fois que vous aurez activé la délégation, vous devrez toujours pouvoir gérer l'application.

  • Le mode de chiffrement AES et sa clé sont requis pour que l'authentification fonctionne.

Note sur l'approvisionnement des utilisateurs et des groupes

WorkflowGen supporte la synchronisation des utilisateurs et des groupes Active Directory; pour les instructions sur la configuration, voir la section Configuration avancée.

Configuration d'AD FS

La configuration d'AD FS est très simple; il faut tout simplement ajouter un nouveau groupe d'applications dans lequel vous configurez ensuite l'application serveur et un API Web.

Étape 1 : Inscrivez un nouveau groupe d'applications

  1. Dans le gestionnaire de serveur, ouvrez AD FS Management.

  2. Cliquez sur le répertoire Application Groups dans le panneau à gauche, puis cliquez sur Add Application Group dans le panneau à droite.

  3. Dans l'écran Add Application Group Wizard qui s'affiche :

    1. Saisissez le nom du groupe : WorkflowGen

    2. Sélectionnez le modèle : Server application accessing a web API

  4. Cliquez sur Next.

  5. Dans l'écran Server application :

    1. Saisissez le nom de l'application : WorkflowGen - Server application

    2. Copiez l'identifiant du client, dont vous aurez besoin dans la configuration de WorkflowGen plus tard.

    3. Saisissez l'URI de redirection : https://<workflowgen url>/auth/callback

    4. Cliquez sur Add. Vous devriez maintenant voir l'URI de redirection dans la liste sous le champ Redirect URI.

    5. Cliquez sur Next.

  6. Générez une clé secrète client dans l'écran Configure Application Credentials :

    1. Cochez seulement la case à cocher Generate a shared secret.

    2. Copiez la clé car vous ne pourrez plus la retrouver plus tard.

    3. Cliquez sur Next.

  7. Configurez le nom et l'identifiant de l'API GraphQL de WorkflowGen dans l'écran Configure Web API :

    1. Saisissez le nom de l'application : WorkflowGen GraphQL API

    2. Saisissez l'identifiant de l'API : https://<workflowgen url>/graphql

    3. Cliquez sur Add.

    4. Cliquez sur Next.

  8. Configurez l'accès GraphQL à l'application Web WorkflowGen :

    1. Assurez-vous que l'application Web WorkflowGen (WorkflowGen - Server application) est dans la liste Client application.

    2. Cochez openId, profile et email.

    3. Cliquez sur Next.

    4. Examinez la section de sommaire et complétez le groupe d'applications.

Vous devriez maintenant avoir un group d'applications qui contient deux applications : l'application serveur de WorkflowGen (qui est l'application Web) et l'API GraphQL de WorkflowGen.

Étape 2 : Ajoutez l'UPN au jeton d'accès

Par défaut, un UPN d'utilisateur n'est pas inclus dans le jeton d'accès retourné par AD FS, donc vous devez configurer un règle de transformation d'émission (« Issuance Transform Rule ») pour l'API GraphQL qui passe par l'UPN. Pour ce faire :

  1. Dans AD FS Management, cliquez sur le répertoire Application Groups à gauche, puis double-cliquez sur le groupe WorkflowGen.

  2. Vous devriez maintenant voir toutes les applications du groupe dans une nouvelle fenêtre. Double-cliquez sur WorkflowGen GraphQL API dans la liste.

  3. Cliquez sur Add Rule sur l'onglet Issuance Transform Rules.

  4. Sur l'écran Select Rule Template, sélectionnez le modèle de règle de revendication Pass Through or Filter an Incoming Claim, puis cliquez sur Next.

  5. Sur l'écran Configure Rule :

    1. Saisissez Pass through UPN dans le champ Claim rule name.

    2. Sélectionnez UPN dans la liste déroulante Incoming claim type.

    3. Assurez-vous que Pass through all claim values est sélectionné.

    4. Cliquez sur Finish.

AD FS est maintenant configuré pour l'authentification déléguée depuis WorkflowGen.

Configuration de WorkflowGen

Vous devez maintenant configurer WorkflowGen pour déléguer l'authentification à AD FS.

Étape 1 : Ajoutez les valeurs AD FS au web.config de WorkflowGen

Ouvrez le fichier web.config de WorkflowGen et ajoutez les propriétés suivantes sous <appSettings> :

<!-- ADFS auth -->
<add key="ApplicationSecurityAuthProvider" value="adfs"/>
<add key="ApplicationSecurityAuthClientId" value="<CLIENT ID>" />
<add key="ApplicationSecurityAuthClientSecret" value="<CLIENT SECRET>" />
<add key="ApplicationSecurityAuthMetadataUrl" value="<METADATA URL>" />
<add key="ApplicationSecurityAuthAppIdClaim" value="appid" />
<add key="ApplicationSecurityAuthUsernameClaim" value="upn" />
<add key="ApplicationSecurityAuthClockTolerance" value="60" />
  • Remplacez <CLIENT ID> par l'identifiant de client généré par AD FS pour l'application WorkflowGen.

  • Remplacez <CLIENT SECRET> par la clé secrète partagée générée pour l'application WorkflowGen.

  • Remplacez <METADATA URL> par l'URL des métadonnées du serveur AD FS. Par défaut, il devrait ressembler à https://<adfs url>/adfs/.well-known/openid-configuration.

Tableau des options web.config

WorkflowGen est maintenant lié à AD FS et réciproquement. La dernière étape est de configurer quelques options pour finaliser le « câblage interne ».

Étape 2 : Ajoutez des valeurs de sécurité pour la génération de session

Pour générer un jeton de session, vous devez ajouter quelques configurations au fichier web.config.

  1. Ouvrez le fichier web.config de WorkflowGen et ajoutez la propriété suivante sous <appSettings> :

     <!-- Auth -->
     <add key="ApplicationSecurityAuthSessionTokenSigningSecret" value="<SECRET>" />
  2. Remplacez <SECRET> par une valeur qui ne peut pas être devinée, comme un UUID.

Le secret sera seulement accessible dans votre instance de WorkflowGen, donc lors de la génération du jeton de session, WorkflowGen le signera avec ce secret afin de vérifier la validité de tous les jetons qui seront envoyés.

Étape 3 : Activez la délégation d'authentification

Vous devez maintenant activer la délégation en remplaçant le système d'authentification dans IIS et faire pointer les modules de WorkflowGen au module d'authentification correct.

Configurez IIS

  1. Dans IIS Manager, cliquez sur l'application WorkflowGen dans l'arborescence.

  2. Cliquez sur le bouton Authentication.

  3. Activez Anonymous Authentication et désactivez toutes les autres authentifications.

  4. Répétez ces étapes pour toutes les sous-applications.

Ajoutez des propriétés aux fichiers web.config de certains modules

Certains modules doivent faire vérifier leur authentification par le module d'authentification spécial de WorkflowGen Advantys.Security.JWTAuthenticationModule, tandis que certains autres modules ne le doivent pas parce qu'ils sont soit publics ou ne font pas partie du système d'authentification global.

  1. Ajoutez la propriété suivante au fichier web.config de WorkflowGen :

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
     <system.webServer>
         <modules>
             <add name="ApplicationSecurityAuthenticationModule" type="Advantys.Security.Http.JWTAuthenticationModule" />
         </modules>
     </system.webServer>
    </configuration>
  2. Ajoutez la propriété suivante au fichier web.config du module auth :

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
     <system.webServer>
         <modules>
             <remove name="ApplicationSecurityAuthenticationModule"/>
         </modules>
     </system.webServer>
    </configuration>

    Cette ligne enlève le module d'authentification Node.js du système d'authentification global, car cette application Node.js encapsule les mécanismes d'authentification de OpenID Connect.

  3. Répétez les deux étapes ci-haut pour les modules hooks et scim.

  4. Copiez les assemblies et bibliothèques de dépendances .NET suivants de \wfgen\bin dans les dossiers \bin de tous les formulaires Web personnalisés (\wfgen\wfapps\webforms\<custom webform>\bin) :

    • Advantys.My.dll

    • Advantys.Security.dll

    • Newtonsoft.Json.dll

    • jose-jwt.dll

Vous devriez maintenant avoir une instance de WorkflowGen en fonctionnement avec l'authentification déléguée à AD FS via le protocole OpenID Connect. Assurez-vous d'avoir approvisionné vos utilisateurs à WorkflowGen afin qu'ils puissent accéder à WorkflowGen.

Configuration d'AD FS 2016 pour les applications mobiles

Les applications mobiles doivent suivre une approche semblable à celle des applications Web ordinaires appelée « Authorization Code Flow with Proof Key for Code Exchange (PKCE) ». La principale distinction entre PKCE et le « Authorization Code Flow » classique est que l'application mobile ne reçoit pas de clé secrète client; à la place, elle échange une paire de codes pour prouver l'origine de la tentative d'authentification. Le problème est qu'on ne peut pas se fier à une application mobile car elle est distribuée librement aux utilisateurs et donc elle n'est plus sous le contrôle, puis les sources pourraient être décompilées et analysées pour révéler les clés secrètes client.

Cette section contient les instructions sur comment configurer AD FS pour les applications mobiles afin que vos utilisateurs mobiles puissent aussi bénéficier de l'authentification déléguée.

Prérequis

  • Assurez-vous d'avoir une copie de WorkflowGen sous licence installée et en fonctionnement sur un serveur.

  • Assurez-vous d'avoir l'accès d'administrateur AD FS pour pouvoir le configurer.

  • Assurez-vous d'avoir approvisionné un utilisateur Active Directory existant depuis lequel vous pourrez vous authentifier à WorkflowGen pour pouvoir utiliser l'application après.

  • Assurez-vous d'avoir installé la plus récente version de WorkflowGen Plus sur votre appareil et que l'appareil est supporté.

  • Assurez-vous d'avoir bien configuré l'authentification déléguée à AD FS sur votre instance de WorkflowGen en suivant les instructions dans la section Authentification AD FS.

Configuration d'AD FS

Cette configuration se fait dans plusieurs étapes. D'abord, vous devez inscrire une nouvelle application native dans AD FS. Ensuite, vous devez donner à l'application les permissions requises pour accéder à l'API GraphQL de WorkflowGen.

Étape 1: Inscrivez une nouvelle application native

  1. Dans la fenêtre AD FS Management, naviguez vers le dossier Application Groups, puis doublez-cliquez sur le groupe WorkflowGen.

  2. Cliquez sur Add application.

  3. Configurez l'application :

    1. Name : WorkflowGen Plus

    2. Copiez l'identifiant, dont vous aurez besoin dans l'application.

    3. Redirect URI : workflowgenplus://auth.authenticate

  4. Cliquez sur Add, puis cliquez sur Next.

  5. Vérifiez la configuration et lorsque vous aurez terminé, cliquez sur Next puis sur Close.

Vous avez maintenant ajouté l'application native WorkflowGen Plus à votre groupe d'applications AD FS WorkflowGen.

Étape 2 : Donnez accès à l'API GraphQL

  1. Dans la fenêtre AD FS Management, naviguer au dossier Application Groups, puis cliquez sur le groupe WorkflowGen.

  2. Double-cliquez sur l'application WorkflowGen GraphQL API.

  3. Dans l'onglet Client Permissions, cliquez sur l'application WorkflowGen Plus, puis cliquez sur Add.

  4. Sélectionnez WorkflowGen Plus dans la liste des autorisations d'applications.

  5. Assurez-vous que les portées openid, profile et email sont cochées.

  6. Cliquez sur OK, puis cliquez sur OK dans le menu du groupe d'applications WorkflowGen.

L'app mobile WorkflowGen Plus est maintenant configurée dans AD FS.

Configuration d'AD FS pour pour les scripts côté serveur

Dans certains cas, vous voudrez effectuer une tâche spécifique qui peut être automatisée mais qui doit pouvoir accéder à l'API GraphQL de WorkflowGen; ce cas d'usage est souvent sous forme de script côté serveur. Pour ceci, OAuth2 fournit un type d'autorisation appelé Client Credentials qui échange tout simplement un ID client et une clé secrète client pour un jeton d'accès. Il n'y a aucun jeton ID car ceci ne fait pas partie du standard OpenID Connect, et aucun utilisateur n'est impliqué.

Cette section contient les instructions sur comment configurer AD FS avec un script côté serveur qui a accès à l'API GraphQL.

Prérequis

  • Assurez-vous d'avoir une copie de WorkflowGen sous licence installée et en fonctionnement sur un serveur.

  • Assurez-vous d'avoir l'accès d'administrateur WorkflowGen.

  • Assurez-vous d'avoir l'accès d'administrateur AD FS pour pouvoir configurer AD FS.

  • Assurez-vous d'avoir bien configuré l'authentification déléguée à Ad FS sur votre instance de WorkflowGen en suivant les instructions dans la section Authentification AD FS.

Configuration d'AD FS

Étape 1 : Inscrivez une nouvelle application serveur

  1. Dans la fenêtre AD FS Management, naviguez vers le dossier Application Groups, puis double-cliquez sur le groupe WorkflowGen.

  2. Dans la fenêtre WorkflowGen Properties, cliquez sur Add application.

  3. Sélectionnez le type Server application, puis cliquez sur Next.

  4. Configurez l'application serveur :

    1. Name : Mon application serveur

    2. Copiez l'identifiant du client; vous en aurez besoin pour le flux Client Credentials Grant car vous ne pourrez plus le retrouver plus tard.

    3. Ajoutez un URI de redirection. Il importe peu ce que vous saisissez car le flux Client Credentials Grant n'utilise pas cette valeur.

    4. Cliquez sur Add, puis cliquez sur Next.

  5. Dans la fenêtre Configure Application Credentials, générez une clé secrète client pour l'application serveur :

    1. Cochez Generate a shared secret.

    2. Copiez la valeur; vous en aurez besoin pour le flux Client Credentials Grant.

    3. Cliquez sur Next.

  6. Vérifiez la configuration puis cliquez sur Next.

  7. Cliquez sur Close.

Vous devriez maintenant voir la nouvelle application serveur listée dans le group d'applications WorkflowGen.

Étape 2 : Donnez accès à l'API GraphQL

Maintenant que vous avec créé l'application serveur, vous devez lui donner accès à l'API GraphQL. Pour ce faire :

  1. Dans la fenêtre AD FS Management, naviguez vers le dossier Application Groups, puis cliquez sur le groupe WorkflowGen.

  2. Dans la fenêtre WorkflowGen Properties, double-cliquez sur WorkflowGen GraphQL API.

  3. Dans l'onglet Client Permissions dans la fenêtre WorkflowGen GraphQL API, cliquez sur Add.

  4. Cliquez sur l'application serveur que vous avec créée dans la section précédente, puis cliquez sur Add.

  5. Vous devriez maintenant voir votre application serveur dans la liste d'applications clientes; assurez-vous qu'elle est sélectionnée.

  6. Assurez-vous que les portées openid, profile et email sont cochées.

  7. Cliquez sur OK.

Vous avez maintenant inscrit votre application serveur dans AD FS et lui a donné accès à l'API GraphQL de WorkflowGen.

Configuration de WorkflowGen

Comme pour l'approvisionnement des utilisateurs, WorkflowGen doit savoir quelle application accède à l'API GraphQL. Vous devez donc inscrire l'application, qui est constituée de votre script.

Inscrivez une nouvelle application

  1. Dans la page Applications du module d'administration de WorkflowGen, cliquez sur Nouvelle application.

  2. Renseignez le formulaire :

    • Name : Mon application serveur

    • Description : Une description qui indique clairement qui identifie clairement le script

    • Type : Non-interactive Client

    • Impersonate username : Un nom d'utilisateur qui a les permissions requises pour accéder à l'API GraphQL

    • Client ID : L'ID client que vous avez retrouvée plus tôt

    • Active : Cochez cette case à cocher

  3. Cliquez sur Save.

Votre application devrait maintenant paraître dans la liste d'applications.

Vous devriez maintenant avoir mis en place les composants nécessaires à faire des requêtes à l'API GraphQL depuis votre script en passant le jeton d'accès reçu d'AD FS via le flux Client Credentials Grant.

Configuration d'AD FS 2016 pour les applications monopage

Les applications JavaScript s'exécutant dans un navigateur sont souvent difficiles à sécuriser à cause de la nature ouverte du Web. Le stockage sécurisé est nonexistant, et tout est en texte clair (pour HTTP version 1.1). Voici une citation (en Anglais) de l'équipe Azure Active Directory qui synthétise l'état de l'authentification avec les applications monopage (« single-page applications ») :

The OAuth2 implicit grant is notorious for being the grant with the longest list of security concerns in the OAuth2 specification. And yet, that is the approach implemented by ADAL JS and the one we recommend when writing SPA applications. What gives? It’s all a matter of tradeoffs: and as it turns out, the implicit grant is the best approach you can pursue for applications that consume a Web API via JavaScript from a browser.

(Source : https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-dev-understanding-oauth2-implicit-grant)

Il est donc important de faire toutes les vérifications nécessaires pour assurer la validité de vos demandes et les réponses.

Cette section contient les instructions sur comment configurer AD FS avec une application monopage (« SPA ») avec laquelle les utilisateurs pourront s'authentifier et faire des requêtes à l'API GraphQL. Cette configuration est constituée de trois étapes : inscrire la SPA, donner accès à l'API et régler quelques URLs de redirection.

Prérequis

  • Assurez-vous d'avoir une copie de WorkflowGen sous licence installée et en fonctionnement sur un serveur.

  • Assurez-vous d'avoir l'accès d'administrateur AD FS pour pouvoir configurer AD FS.

  • Assurez-vous d'avoir approvisionné un utilisateur Active Directory existant depuis lequel vous pourrez vous authentifier à WorkflowGen pour pouvoir utiliser l'application.

  • Assurez-vous d'avoir bien configuré l'authentification déléguée à AD FS sur votre instance de WorkflowGen en suivant les instructions dans la section Authentification AD FS.

Configuration d'AD FS

Actuellement, AD FS supporte trois types d'applications : Native, Serveur et API Web. Comme vous pouvez le constater, il n'y a rien pour les applications monopage dans les navigateurs ou même dans les applications Web régulières qui affiche les pages sur le serveur. Cependant, vous pouvez utiliser les types supportés pour vos besoins. Le type d'application Native vous permet de récupérer un ID client et de définir un URI de rappel qui peuvent être utilisés pour effectuer un flux d'autorisation implicite avec une application monopage; AD FS répondra conformément car elle supporte le protocole OpenID Connect.

Cette configuration se fait dans plusieurs étapes. D'abord, vous devez inscrire une nouvelle application native dans AD FS. Ensuite, vous devez donner à l'application les permissions requises pour accéder à l'API GraphQL de WorkflowGen.

Étape 1 : Inscrivez une nouvelle application native

  1. Dans la fenêtre AD FS Management, naviguez vers le dossier Application Groups, puis doublez-cliquez sur le groupe WorkflowGen.

  2. Cliquez sur Add application.

  3. Configurez l'application :

    1. Name : Mon app monopage

    2. Copiez l'identifiant, dont vous aurez besoin dans l'application.

    3. Redirect URI : https://monappmonopage.com/callback

  4. Cliquez sur Add, puis cliquez sur Next.

  5. Vérifiez la configuration et lorsque vous aurez terminé, cliquez sur Next puis sur Close.

Étape 2 : Donnez accès à l'API GraphQL

  1. Dans la fenêtre AD FS Management, naviguez vers le dossier Application Groups, puis double-cliquez sur le groupe WorkflowGen.

  2. Double-cliquez sur l'application WorkflowGen GraphQL API.

  3. Dans l'onglet Client Permissions, cliquez sur l'application WorkflowGen Plus, puis cliquez sur Add.

  4. Choisissez Mon app monopage dans la liste des permissions des applications.

  5. Assurez-vous que les portées openid, profile et email sont cochées.

  6. Cliquez sur OK, puis cliquez sur OK dans le menu du groupe d'applications WorkflowGen.

Vous avez maintenant configuré votre application monopage dans AD FS.

Génération d'un lien universel pour WorkflowGen Plus

Depuis la version 1.2.0 de WorkflowGen Plus et la version 7.11.2 de WorkflowGen serveur, vous pouvez générer un lien universel pour simplifier le processus de connexion Auth0 de vos utilisateurs de l'application mobile WorkflowGen Plus.

URL de base

  • protocol : workflowgenplus://

  • hostname : auth.init

Paramètres

Vous devez régler les paramètres suivants :

  • provider : adfs

  • client_id : Utilisez l'ID client que vous avez créé antérieurement dans la configuration (p.ex. : 7gdj4hs92y).

  • domain : Le nom du domaine AD FS sans le protocole URL (p.ex. : macompagnie.com).

  • audience : L'URL de votre API GraphQL de WorkflowGen, dont la valeur doit être encodée URL (p.ex. : http://workflow.macompagnie.com/wfgen/graphql).

Le lien universel devrait suivre cette structure :

workflowgenplus://auth.init?provider=adfs&client_id=6g909d00-8580-49a4-9003-a30f6b87ae86&domain=macompagnie.com&audience=http%3A%2F%2Fworkflow.macompagnie.com%2Fwfgen

Une fois que vous aurez généré le lien universel, donnez-le à vos utilisateurs, qui pourront l'utiliser pour se connecter à WorkflowGen Plus par la méthode préconfigurée.

Informations supplémentaires sur l'intégration AD FS

Support des services SOAP

WorkflowGen supporte seulement les requêtes à l'API SOAP en utilisant les méthodes d'authentification classiques. Si vous devez toujours utiliser cette API, vous devez effectuer quelques étapes additionnelles pour la configurer correctement. Pour ce faire :

  1. Créez un nouvel annuaire WorkflowGen séparé pour les utilisateurs de l'API SOAP.

  2. Approvisionnez-le avec des utilisateurs et des groupes au besoin.

  3. Dans Gestionnaire IIS, cochez la méthode d'authentification De base pour l'application \ws\wfgen.

  4. Dans le fichier web.config (situé dans \Inetpub\wwwroot\wfgen), ajoutez le suivant sous <location path="ws" inheritInChildApplications="false"> :

    <system.webServer>
        <modules>
            <remove name="ApplicationSecurityAuthenticationModule" />
        </modules>
    </system.webServer>

Options configurables

Le tableau ci-dessous liste toutes les options configurables dans WorkflowGen que vous pouvez utiliser pour personnaliser votre expérience d'authentification; elles se trouvent dans le fichier web.config de WorkflowGen.

Dernière mise à jour