Authentification Microsoft Entra ID
Azure Active Directory (Azure AD) a été renommé Microsoft Entra ID (ME-ID). Bien que la documentation WorkflowGen ait été mise à jour pour refléter ce changement de nom, les paramètres de l'application WorkflowGen font toujours référence à Azure AD (par exemple, connecteur d'annuaire Azure AD SCIM v2
).
De même, certains éléments de configuration ME-ID dans le portail Azure ont été renommés et / ou déplacés. La documentation WorkflowGen a été mise à jour en conséquence, mais il se peut qu'elle ne soit toujours pas tout à fait exacte à cet égard. Consultez la documentation Microsoft Entra ID pour plus d'informations.
Aperçu
Cette section fournit des instructions sur la façon de configurer l'authentification déléguée WorkflowGen avec l'authentification Microsoft Entra ID (ME-ID) via les fournisseurs Microsoft Identity Platform v2.0 ou API endpoint v1, et vous montrera comment configurer une instance WorkflowGen fonctionnelle qui utilise ME-ID pour authentifier vos utilisateurs.
Dans les instructions, remplacez <workflowgen url>
par le domaine et le chemin de votre instance de WorkflowGen; par exemple, localhost/wfgen
ou www.macompagnie.com/wfgen
.
Prérequis
Assurez-vous d'avoir une copie de WorkflowGen sous licence installée et en fonctionnement sur un serveur Web IIS en mode de connexion sécurisé HTTPS.
Vous devez être un administrateur WorkflowGen.
Assurez-vous d'avoir un accès administrateur ME-ID pour pouvoir configurer Azure AD.
Assurez-vous d'avoir provisionné un utilisateur Azure AD existant que vous pouvez authentifier avec WorkflowGen et que l'utilisateur dispose des permissions d'administrateur WorkflowGen. Ceci est important car une fois que vous avez activé l'authentification déléguée avec ME-ID, vous devrez toujours pouvoir gérer l'application Web WorkflowGen.
Le mode de chiffrement AES et sa clé sont requis pour que l'authentification fonctionne.
Configuration de Microsoft Entra ID
La configuration de ME-ID se fait en deux parties. D'abord, vous devez enregistrer l'application Web WorkflowGen et la lier à votre instance de WorkflowGen; ensuite, vous devez enregistrer l'API GraphQL de WorkflowGen afin de pouvoir enregistrer d'autres applications personnalisées pour y accéder.
Étape 1 : Créez une nouvelle inscription d'application pour WorkflowGen
Dans le portail Azure, cliquez sur Inscriptions d'applications dans la section Azure Active Directory.
Cliquez sur Nouvelle inscription et entrez les propriétés :
Nom :
WorkflowGen Web app
Types de comptes pris en charge :
Comptes dans cet annuaire d'organisation uniquement (Default Directory uniquement - Locataire unique)
✏️ Note : En fonction du contexte, vous devez choisir la bonne option pour votre cas d'utilisation pour la valeur Types de comptes pris en charge.
URI de redirection :
Plateforme :
Web
Valeur :
https://<workflowgen url>/auth/callback
📌 Exemple :
https://macompagnie.com/wfgen/auth/callback
Cliquez sur S'inscrire en bas de la page.
Vous devriez maintenant voir la page d'aperçu de l'enregistrement de l'application Web WorkflowGen.
Étape 2 : Générez une clé secrète client pour l'application
Maintenant, vous devez générer une clé secrète client à utiliser par le module d'authentification OIDC de WorkflowGen.
Cliquez sur Ajouter un certificat ou un secret.
Dans la section Secrets client, cliquez sur Nouveau secret client.
Description :
Mon secret
, ou quelque chose de semblable pour rappeler que ceci est la clé secrète client.Date d'expiration : Choisissez 730 jours (24 mois) ou la période d'expiration souhaitée.
Cliquez sur Ajouter.
La clé secrète client générée automatiquement est maintenant affichée sous la colonne Valeur. Copiez la valeur de la clé secrète client et enregistrez-la dans un endroit sûr, car vous ne pourrez plus la récupérer par la suite.
Il n'est plus possible de définir des clés secrètes client pour qu'elles n'expirent jamais. Vous devrez régénérer manuellement une nouvelle clé secrète client tous les deux ans (si l'option 24 mois a été sélectionnée) avant qu'elle n'expire. Ensuite, mettez à jour la clé secrète client utilisée par l'instance WorkflowGen dans son fichier de configuration Web (clé ApplicationSecurityAuthClientSecret
).
Étape 3 : Ajoutez un URI de redirection
Pour que la communication entre WorkflowGen et ME-ID fonctionne, vous devez ajouter un autre URI de redirection autorisé à l'application Web WorkflowGen Web app
enregistrée.
Cliquez sur Authentification.
Dans la section URI de redirection, cliquez sur Ajouter l'URI.
Entrez les informations suivantes :
URI de redirection :
https://<workflowgen url>/auth/logout/return
📌 Exemple :https://macompagnie.com/wfgen/auth/logout/return
✏️ Note : Vous devriez également voirhttps://<workflowgen url>/auth/callback
dans cette liste.
Cliquez sur Enregistrer en haut de la section.
Étape 4 : Créez une nouvelle inscription d'application pour l'API GraphQL de WorkflowGen
Si vous n'avez pas besoin de l'accès à l'API WorkflowGen GraphQL, vous pouvez ignorer l'enregistrement et la configuration de cette application dans Azure (étapes 4 à 6). Dans ce cas, poursuivez complètement la procédure de configuration depuis la section Vérifiez les inscriptions jusqu'à la section Configuration de WorkflowGen. Enfin, suivez la configuration dans la section Configuration de l'authentification sans l'API GraphQL.
Pour exposer l'API GraphQL, vous devez ajouter une nouvelle application qui la représentera. Pour ce faire :
Dans le portail Azure, cliquez sur Inscriptions d'applications dans la section Services Azure.
Cliquez sur Nouvelle inscription et renseignez le formulaire des propriétés :
Nom :
WorkflowGen GraphQL API
Types de comptes pris en charge :
Comptes dans cet annuaire d'organisation uniquement (Default Directory uniquement - Locataire unique)
Cliquez sur S'inscrire en bas de la page.
Vous avez maintenant correctement enregistré l'application WorkflowGen GraphQL API
dans Azure AD.
Étape 5 : Exposez l'API dans l'inscription d'application de l'API WorkflowGen GraphQL
Cliquez sur Exposer une API.
À droite de URI ID d'application, cliquez sur Définir et entrez l'URI
https://<workflowgen url>/graphql
. 📌 Exemple :https://macompagnie.com/wfgen/graphql
Cliquez sur Enregistrer.
Cliquez sur Ajouter une étendue et entrez les informations suivantes :
Nom de l'étendue :
defaut
Qui peut accepter ? :
Administrateurs et utilisateurs
Nom d'affichage du consentement administrateur :
Accès par défaut à l'API WorkflowGen GraphQL
Description du consentement administrateur :
Permet à l'application d'accéder à l'API WorkflowGen GraphQL.
Nom d'affichage du consentement de l'utilisateur :
Accès par défaut à l'API WorkflowGen GraphQL
Description du consentement de l'utilisateur :
Permet à l'application d'accéder à l'API WorkflowGen GraphQL
Cliquez sur Ajouter une étendue.
Depuis octobre 2021, Azure AD nécessite l'utilisation d'un schéma par défaut ou d'un domaine vérifié pour l'URL AppId sur l'application à locataire unique (voir la documentation Microsoft ici pour plus d'informations).
La documentation Microsoft sur la façon d'ajouter et de vérifier un domaine personnalisé est disponible ici.
Étape 6 : Accordez à WorkflowGen l'accès à l'API WorkflowGen GraphQL
Dans la page d'inscription de l'application
WorkflowGen Web app
, cliquez sur Autorisations de l'API.Cliquez sur Ajouter une autorisation, puis sélectionnez l'onglet Mes API.
Cliquez sur l'application
WorkflowGen GraphQL API
dans la liste.Cliquez sur Autorisations déléguées et cochez
defaut
dans la colonne Autorisation.Cliquez sur Ajouter des autorisations.
Dans la page API autorisées, cliquez sur Accorder un consentement d'administrateur pour <votre nom de locataire>, puis cliquez sur Oui.
Vérifiez les inscriptions
Vous devriez maintenant avoir toutes les informations dont vous aurez besoin pour configurer WorkflowGen pour déléguer l'authentification à ME-ID. Voici un résumé :
Un ID client. Ceci est l'ID d'application (client) de l'inscription de l'application
WorkflowGen Web app
dans Azure AD. Vous pouvez le trouver sur sa page d'aperçu.Une clé secrète client. Ceci est la clé secrète client précédemment générée à l'étape 2 pour l'application WorkflowGen Web app.
Une audience. Ceci est la propriété
Application ID URI
(p.ex. :https://<workflowgen url>/graphql
) dans la section Exposer une API de l'inscription de l'applicationWorkflowGen GraphQL API
.Le point de terminaison des métadonnées. Cette URL est liée à votre annuaire ME-ID. Pour la trouver :
Accédez à la page Vue d'ensemble et copiez la valeur
ID de locataire
.L'URL du point de terminaison des métadonnées est créée en remplaçant
<Tenant ID>
par votre ID de locataire comme suit :Pour Microsoft Identity Platform v2.0 (recommandé) :
Pour Azure v1 :
Vous devriez maintenant avoir toutes les informations requises pour lier votre instance de WorkflowGen à ME-ID.
Configuration de WorkflowGen
Vous devez maintenant configurer WorkflowGen pour déléguer l'authentification à ME-ID.
Étape 1 : Ajoutez les valeurs Microsoft Entra ID au web.config
de WorkflowGen
web.config
de WorkflowGenOuvrez le fichier
web.config
de WorkflowGen et ajoutez et / ou mettez à jour les propriétés suivantes sous<appSettings>
: Pour Microsoft Identity Platform v2.0 (recommandé) :Pour Azure v1 :
✏️ Note : Check session iFrame (p.ex.
ApplicationSecurityAuthCheckSessionUrl
) n'est pas supporté dans Microsoft Identity Platform v2.0.Remplacez
<CLIENT ID>
par l'ID d'application (client)WorkflowGen Web app
de ME-ID.Remplacez
<CLIENT SECRET>
par la clé secrète générée par l'inscription de l'applicationWorkflowGen Web app
de ME-ID.Remplacez
<METADATA URL>
par l'URL du point de terminaison de métadonnées que vous avez créée précédemment à partir de la valeurTenant ID
de votre ME-ID.Pour Microsoft Identity Platform v2.0, remplacez
<workflowgen url>
par votre URL WorkflowGen dans la valeur de la cléApplicationSecurityAuthAdditionalScopes
(p.ex. :https://macompagnie.com/wfgen/graphql/default
) si vous avez configuré l'enregistrement de l'applicationWorkflowGen GraphQL API
(étapes 4 à 6). Sinon, supprimez complètement la cléApplicationSecurityAuthAdditionalScopes
.Pour Azure v1, remplacez
<CHECK SESSION URL>
(qui est généralementhttps://login.microsoftonline.com/<Tenant ID>/oauth2/checksession
) par la valeur de la propriétécheck_session_iframe
du point de terminaison de métadonnées. Pour ce faire, vous devrez envoyer une requête HTTP GET à l'URL de votre point de terminaison de métadonnées (p.ex. :https://login.microsoftonline.com/<Tenant ID>/.well-known/openid-configuration
), puis copier et coller la valeur. Voir les exemples ci-dessous sur la façon de demander le point de terminaison de métadonnées.Exemple de requête Linux / macOS :
✏️ Note : Enlevez
| python -m json.tool
si vous n'avez pas Python; ceci est pour l'impression automatique (« pretty printing »).Exemple de requête Windows PowerShell :
Tableau des options web.config
Option | Description |
| Le nom du fournisseur d'identité supporté par WorkflowGen. À présent, seulement Microsoft Entra ID, Microsoft Identity Platform v2.0, Auth0, AD FS et Okta sont supportés. Valeur : |
| Chaque fournisseur d'identité génère un code qui identifie uniquement votre application. Dans ce cas, cette valeur est le code qui identifie uniquement l'application Web WorkflowGen dans ME-ID, Auth0, AD FS ou Okta. |
| Comme pour l'ID client, cette valeur est aussi générée par le fournisseur d'identité, mais est plutôt comme un mot de passe d'utilisateur. Il est important de le garder secret parce qu'un logiciel malveillant ayant accès pourrait agir au nom de l'application. Cette valeur doit être générée explicitement dans ME-ID. |
| Le point de terminaison fourni par le fournisseur d'identité qui supporte le standard OpenID Connect Discovery. Il permet à WorkflowGen de récupérer des informations publiques sur votre domaine ME-ID, sans lequel vous devrez effectuer beaucoup plus de configurations dans le fichier |
| Le nom de la revendication contenu dans le jeton d'accès obtenu du fournisseur d'identité qui identifie uniquement un client non-interactif. Il est utilisé seulement si vous avez une application machine-à-machine qui doit accéder à l'API GraphQL. Pour le configurer, voir la section Configuration de Microsoft Entra ID pour les applications monopage. ✏️ Note : Il est recommandé de garder la valeur par défaut. |
| Le nom de la revendication contenue dans le jeton d'accès qui identifie l'utilisateur dans WorkflowGen. Il est utilisé par WorkflowGen pour générer un jeton de session ainsi que par l'API GraphQL en récupérant un jeton d'accès. ✏️ Note : Il est recommandé de garder la valeur par défaut. |
| Cette valeur est utilisée par l'API GraphQL lors de la réception d'un jeton d'accès. ✏️ Note : Il est recommandé de garder la valeur par défaut. |
| Cette valeur est utilisée lors de la vérification d'un jeton dans WorkflowGen. Il est essentiellement pour gérer des différences mineures entre les horloges des serveurs. ✏️ Note : Il est recommandé de garder la valeur par défaut. |
| Lorsqu'elle est activée (
✏️ Note : Cette option est uniquement disponible lorsque WorkflowGen est configuré avec l'authentification OIDC. |
WorkflowGen devrait maintenant être lié à votre ME-ID. La dernière chose qui reste à faire est de configurer quelques options supplémentaires afin de terminer le « câblage interne » de WorkflowGen afin qu'il puisse déléguer son authentification.
Étape 2 : Ajoutez des valeurs de sécurité pour la génération de session
WorkflowGen utilise un jeton de session interne pour gérer la session utilisateur et identifier l'utilisateur actuel pour toutes les requêtes HTTP adressées à l'application Web une fois que l'utilisateur s'est connecté à ME-ID. Pour générer un jeton de session, vous devez ajouter quelques paramètres supplémentaires au fichier web.config
.
Ouvrez le fichier
web.config
de WorkflowGen et ajoutez et / ou mettez à jour la propriété suivante sous<appSettings>
:Remplacez
<SECRET>
par une valeur personnalisée qui ne peut pas être devinée, telle qu'un UUID ou un mot de passe complexe.
Le secret ne sera accessible qu'à l'intérieur de votre instance de WorkflowGen, donc lors de la génération d'un jeton de session, WorkflowGen le signera avec ce secret afin de vérifier la validité de tous les jetons de session qui lui sont transmis.
Étape 3 : Activez le module de 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
Dans Gestionnaire IIS, cliquez sur le site Web WorkflowGen dans l'arborescence.
Cliquez sur le bouton Authentification.
Activez Authentification anonyme et désactivez toutes les autres authentifications.
Répétez ces étapes pour toutes les sous-applications.
Ajouter des propriétés aux fichiers web.config
des sous-applications
web.config
des sous-applicationsCertaines sous-applications doivent faire vérifier leur authentification par le module d'authentification spécial Advantys.Security.JWTAuthenticationModule
WorkflowGen, mais certaines autres sous-applications (telles que /wfgen/auth
, /wfgen/hooks
et /wfgen/scim
) ne devraient pas le faire car elles sont publics ou ne font pas partie du système d'authentification global.
Ajoutez la propriété suivante au fichier
web.config
de WorkflowGen :Si vous avez développé des formulaires Web personnalisés avec leurs propres dossiers
\bin
, vous devez copier les assemblies .NET et les bibliothèques de dépendances suivants de\wfgen\bin
dans le dossier\bin
de chaque formulaire Web personnalisé (\wfgen\wfapps\webforms\bin
) :Advantys.My.dll
Advantys.Security.dll
Newtonsoft.Json.dll
jose-jwt.dll
Si vous avez sauté les étapes de la section d'inscription de l'application API WorkflowGen GraphQL plus tôt, il est nécessaire d'appliquer la configuration dans la section Configuration de l'authentification sans l'API GraphQL.
Vous devriez maintenant avoir une instance de WorkflowGen en fonctionnement avec l'authentification déléguée à Microsoft Entra ID via le protocole OpenID Connect. Assurez-vous d'avoir approvisionné vos utilisateurs à WorkflowGen afin qu'ils puissent accéder à WorkflowGen.
Appel des APIs tierces avec le jeton d'accès
Cette méthode n'est supportée qu'avec le fournisseur Microsoft Identity Platform v2.0 (p.ex. :
ms-identity-v2
).Vos APIs tierces doivent supporter un jeton d'accès (JWT) pour l'authentification et être en mesure de valider l'utilisateur en vérifiant le contenu du jeton d'accès.
Cette configuration présente quelques inconvénients. Par exemple, l'application mobile WorkflowGen Plus v2 ne sera pas compatible avec cette configuration.
Par défaut, le seul destinataire du jeton d'accès est l'application WorkflowGen GraphQL API
. Cela signifie que le jeton d'accès ne peut être utilisé que pour envoyer des requêtes à l'API GraphQL uniquement. Afin d'utiliser le même jeton d'accès pour appeler vos propres APIs à partir de WorkflowGen (par exemple, des formulaires Web), vous devrez effectuer les étapes suivantes dans votre portail Azure, puis modifier le fichier web.config
de WorkflowGen.
Dans votre portail Azure :
Étape 1 : Ajoutez une nouvelle inscription d'application qui représente toutes vos APIs
Dans le portail Azure, cliquez sur Inscriptions d'applications dans la section Services Azure.
Cliquez sur Nouvelle inscription et renseignez le formulaire des propriétés :
Nom :
Mes API
Types de comptes pris en charge :
Comptes dans cet annuaire d'organisation uniquement (Locataire unique)
✏️ Note : Selon le contexte, vous devez choisir la bonne option pour votre cas d'utilisation pour la valeur Types de comptes pris en charge.URI de redirection : Laissez ce champ vide
Cliquez sur S'inscrire en bas de la page.
Étape 2 : Exposez vos APIs dans l'inscription
Cliquez sur Exposer une API.
À droite de URI ID d'application, cliquez sur Définir et entrez l'URI
api://mes-api
.Cliquez sur Enregistrer.
Cliquez sur Ajouter une étendue et entrez les informations suivantes :
Nom de l'étendue :
wfgen-graphql-full-access
Qui peut accepter ? :
Administrateurs et utilisateurs
Nom d'affichage du consentement administrateur :
Accès complet à l'API WorkflowGen GraphQL
Description du consentement administrateur :
Permet à l'application d'accéder à l'API WorkflowGen GraphQL.
Nom d'affichage du consentement de l'utilisateur :
Accès complet à l'API WorkflowGen GraphQL
Description du consentement de l'utilisateur :
Allows the application to get access to WorkflowGen GraphQL API.
Cliquez sur Ajouter une étendue.
Ajoutez toute autre étendue qui semble nécessaire pour vos autres APIs.
Étape 3 : Ajoutez un rôle d'application
Cliquez sur Manifeste.
Recherchez la propriété JSON
appRoles
et ajoutez l'objet JSON suivant au tableau JSON :✏️ Note : Remplacez
<NEW ID>
par la valeur générée par la commande PowerShell[guid]::NewGuid().ToString()
ou utilisez n'importe quel générateur de GUID.Cliquez sur Enregistrer.
Étape 4 : Accordez à WorkflowGen l'accès à l'application Mes API
Mes API
Dans la page d'inscription de l'application
WorkflowGen Web app
, cliquez sur API autorisées.Dans la section Autorisations configurées, cliquez sur Ajouter une autorisation.
Cliquez sur Mes API, puis choisissez l'application
Mes API
dans la liste.Cliquez sur Autorisations déléguées et cochez
wfgen-graphql-full-access
dans la colonne Autorisation.Cliquez sur Ajouter des autorisations.
Dans la page API autorisées, cliquez sur Accorder un consentement d'administrateur pour <votre nom de locataire>, puis cliquez sur Yes.
Étape 5 (facultatif) : Accordez à vos applications automatisées dans Azure (flux d'informations d'identification client) l'accès à l'application Mes API
Mes API
Pour chacune de vos applications automatisées dans Azure (par exemple, un script côté serveur, un service en arrière-plan ou une application) qui nécessite un accès à l'application Mes API
, procédez comme suit :
Accédez à la page d'inscription de l'application, puis cliquez sur API autorisées.
Dans la section Autorisations configurées, cliquez sur Ajouter une autorisation.
Cliquez sur Mes API, puis sélectionnez l'application
Mes API
dans la liste.Cliquez sur Autorisations de l'application et cochez
wfgen-graphql-full-access-role
dans la colonne Autorisation.Cliquez sur Ajouter des autorisations.
Dans la page API autorisées, cliquez sur Accorder un consentement d'administrateur pour <votre nom de locataire>, puis cliquez sur Oui.
Dans le fichier web.config
de WorkflowGen :
web.config
de WorkflowGen :Ouvrez le fichier web.config
de WorkflowGen, ajoutez et / ou mettez à jour les paramètres d'application suivants, puis enregistrez le fichier :
Vous devez également définir des portées supplémentaires dans la clé ApplicationSecurityAuthAdditionalScopes
qui font référence aux autres APIs que vous avez définies à l'étape 2 des étapes du portail Azure ci-dessus. Les portées doivent être séparées par une virgule.
Assistant de jeton d'accès des formulaires Web .NET
La classe WorkflowPage
de la bibliothèque WorkflowGen.My
fournit une méthode publique CurrentUserAccessToken
pour récupérer facilement le jeton d'accès partagé de l'utilisateur actuel qui peut être utilisé pour interroger l'API GraphQL et vos APIs tierces. Voir l'extrait de code ci-dessous.
Last updated