Authentification

Aperçu

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" />
<add key="ApplicationSecurityAuthSessionRefreshEnableIFrame" value="Y"/>
  • 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.

Pour des informations sur les options de configuration disponibles à utiliser avec votre instance, consultez l'annexe Paramètres de configuration Web et d'application.

  • Si votre serveur empêche les navigateurs d'incorporer du contenu Web dans des iFrames (en renvoyant l'en-tête X-Frame-Options: DENY), il est fortement recommandé de régler la valeur de ApplicationSecurityAuthSessionRefreshEnableIFrame sur N. Sinon, lorsque la session expire et un utilisateur soumet un formulaire, il sera redirigé pour authentification et les données saisies dans le formulaire seront perdues.

  • Si vous utilisez AD FS 2016 ou version ultérieure, vous pouvez configurer l'en-tête X-Frame-Options pour permettre aux origines spécifiées d'incorporer le contenu AD FS dans une iFrame. Dans ce cas, vous pouvez régler la valeur de ApplicationSecurityAuthSessionRefreshEnableIFrame sur Y, car l'auto rafraîchissement fonctionnera comme prévu.

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 ajouter 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 authentification.

  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.

Configurer l'authentification sans l'API GraphQL

Cette fonctionnalité n'est pas supportée pour AD FS. Il est nécessaire de configurer l'API GraphQL sur le fournisseur.