Sécurité

Aperçu

Cette section décrit les différentes méthodes d'authentification des utilisateurs de WorkflowGen :

Choisissez l’une d’elles selon vos exigences et appliquez les paramètres requis pour l’implémenter avec votre instance WorkflowGen.

Méthodes d'authentification

Les applications serveur et mobiles WorkflowGen peuvent être configurées pour utiliser les méthodes d'authentification compatibles OIDC ou les méthodes classiques non compatibles OIDC. La matrice ci-dessous indique les méthodes d'authentification supportées par les différentes applications WorkflowGen :

Méthodes d'authentification compatibles OIDC

L'application serveur WorkflowGen et l'application mobile WorkflowGen Plus peuvent être configurées pour utiliser les méthodes d'authentification Azure Active Directory, AD FS 2016, Auth0 et Okta compatibles OpenID Connect (OIDC). Voir leurs sections respectives pour les instructions de configuration.

L'application mobile WorkflowGen héritée ne supporte pas les méthodes d'authentification compatibles OIDC.

Méthodes d'authentification classiques

Voir ci-dessous pour les instructions sur comment configurer les méthodes d'authentification classiques (non compatibles OIDC) Windows intégrée, HTTP IIS de base, HTTP WorkflowGen de base, HTTP personnalisée de base et par formulaires.

Quelle méthode d’authentification classique choisir ?

Si vous ne savez pas quelle méthode d'authentification classique choisir, suivez les procédures ci-dessous en fonction de votre situation :

  1. Si tous les utilisateurs de WorkflowGen sont gérés dans un annuaire Active Directory, et que cet annuaire peut être atteint à partir du serveur Web qui héberge WorkflowGen, vous pouvez donc choisir l'un des modes d'authentification suivants :

    • Authentification Windows intégrée (assurée par IIS)

    • Authentification HTTP IIS de base (assurée par IIS)

  2. Si l’article 1 ci-dessus correspond à votre situation et que vous voulez assurer une authentification transparente en utilisant la session Windows courante des utilisateurs, vous pouvez donc choisir le mode d'authentification suivant :

    • Authentification Windows intégrée (assurée par IIS)

  3. Si l’article 1 ci-dessus ne correspond pas à votre situation, et que tous les utilisateurs de WorkflowGen sont gérés dans une application externe telle qu'une base de données ou authentifiés par une solution SSO, vous pouvez donc choisir l'un des modes d'authentification suivants :

    • Authentification HTTP personnalisée de base (assurée par HttpModule)

    • Authentification par formulaires (assurée par .NET)

  4. Si ni l’article 1 ni l’article 3 ne correspondent à votre situation parce que vous ne disposez d'aucun annuaire ou d'aucune autres solutions d'authentification, le seul choix de mode d'authentification est le suivant :

    • Authentification HTTP WorkflowGen de base (assurée par HttpModule)

    ✏️ Note : Pour tous les modes d'authentification HTTP de base et par formulaires, nous vous recommandons fortement d'utiliser SSL du fait que les mots de passe ne sont pas encryptés.

Authentification Windows intégrée

Paramètres IIS et WorkflowGen

  1. Ouvrez le panneau de configuration de WorkflowGen. Sous Authentification dans l’onglet Général, sélectionnez le mode IIS.

  2. Activez l’accès à l’authentification Windows intégrée sur le site Web de WorkflowGen et désactivez tous les mécanismes d'accès embarqués. Appliquez ce paramétrage à toutes les sous-applications sauf les applications graphql et ws.

Authentification HTTP IIS de base

Paramètres IIS et WorkflowGen

  1. Activez l'accès à l'authentification de base sur le site Web de WorkflowGen et désactivez tous les mécanismes d'accès embarqués. Appliquez ce paramétrage à toutes les sous-applications.

  2. Ouvrez le panneau de configuration de WorkflowGen. Sous Authentification dans l’onglet Général, sélectionnez le mode IIS.

Authentification HTTP WorkflowGen de base

Paramètres IIS et WorkflowGen

  1. Pour utiliser l'authentification WorkflowGen, assurez-vous que l'option de gestion des mots de passe par WorkflowGen est sélectionnée pour tous les répertoires, qui vous permettra de configurer un mot de passe par utilisateur. Assurez-vous que votre utilisateur courant a un mot de passe WorkflowGen associé, sinon le compte sera verrouillé.

  2. Ouvrez le Panneau de configuration de WorkflowGen et changez les paramètres sous Authentification dans l'onglet Général comme suit :

    1. Sélectionnez le mode WorkflowGen.

    2. Entrez le nom d’utilisateur et le mot de passe du compte système associé.

    3. Choisissez le mode de gestion des mots de passe : le mode Version 5 utilise le même mode de gestion des mots de passe que les versions antérieures de WorkflowGen, tandis que le mode One-way Hashing (hachage à sens unique) stocke les mots de passe cryptés dans la base de données de WorkflowGen et One-way Hashing (SHA256 FIPS compliant) (hachage à sense unique compatible FIPS) stocke les mots passe cryptés dans la base de données de WorkflowGen et est compatible FIPS.

    4. Entrez le nombre maximum de tentatives de connexion infructueuses avant que le compte d’utilisateur ne soit verrouillé.

    5. Entrez la longueur minimum (en caractères) du mot de passe.

  3. Activez l'accès anonyme sur le site Web de WorkflowGen et désactivez tous les mécanismes d'accès embarqués. Appliquez ce paramétrage à toutes les sous-applications.

  4. Les fichiers Advantys.My.dll et Advantys.Security.dll doivent être copiés dans tous les répertoires \bin des applications sous WorkflowGen, telles que EFORMASPX, ainsi que dans tous les dossiers WebForm et WebApps. Les services Web doivent continuer à utiliser l'authentification de base ou intégrée.

  5. En option, vous pouvez activer le lien de déconnexion de l'utilisateur dans les menus du portail utilisateur et du module d'administration en définissant un délai d'expiration de la session d'application dans le fichier web.config. La session de l'utilisateur expirera en cas d'inactivité après une période (en minutes) spécifiée par la valeur du paramètre de configuration ApplicationSessionTimeOut.

    Par exemple, pour que la session de l'utilisateur expire après 30 minutes d'inactivité, modifiez le paramètre comme suit : <add key="ApplicationSessionTimeOut" value="30" />.

Si vous utilisez IIS 8 ou supérieur avec un groupe d’applications en mode Classic Managed Pipeline, le suivant sera ajouté au web.config :

<configuration>
    <system.web>
        <httpModules>
            <add name="ApplicationSecurityAuthenticationModule" type="Advantys.Security.Http.AuthenticationModule" />
        </httpModules>
    </system.web>
</configuration>

Si vous utilisez IIS 8 ou supérieur avec un groupe d’applications en mode Integrated Managed Pipeline, le suivant sera ajouté au web.config :

 <configuration>
     <system.webServer>
         <modules>
             <add name="ApplicationSecurityAuthenticationModule" type="Advantys.Security.Http.AuthenticationModule" />
         </modules>
     </system.webServer>
 </configuration>

Authentification HTTP personnalisée de base

Paramètres IIS et WorkflowGen

  1. Au moyen de l’exemple de code donné dans la section Exemple de code pour un module HTTP créez une nouvelle classe pour le HttpModule que vous créez.

  2. Modifiez l'exemple de code pour valider les justificatifs d’identité utilisés pour HTTP de base selon le référentiel de configuration externe.

  3. Élaborez le module et copiez le fichier DLL d’assembly dans les répertoires \wfgen\bin et \wfgen\wfapps\webforms\bin.

  4. Le fichier DLL d’assembly doit être copié dans tous les répertoires \bin de vos formulaires Web. Vos services Web peuvent utiliser l’authentification de base ou intégrée, ou votre module HTTP personnalisé.

  5. Ouvrez le Panneau de configuration de WorkflowGen et changez les paramètres sous Authentification comme suit :

    1. Sélectionnez le mode Applicatif.

    2. Sélectionnez la méthode Custom.

    3. Saisissez le nom complet de l'assembly (espace de noms et nom de classe) du module HTTP (p.ex. MyCompany.Hosting.Samples.CustomAuthModule).

  6. Activez l'accès anonyme sur le site Web de WorkflowGen et désactivez tous les mécanismes d'accès embarqués. Appliquez ce paramétrage à toutes les sous-applications.

Si vous utilisez IIS 8 ou supérieur avec un groupe d’applications en mode Classic Managed Pipeline, le suivant sera ajouté au web.config :

<configuration>
    <system.web>
        <httpModules>
            <add name="ApplicationSecurityAuthenticationModule" type="MyCompany.Hosting.Samples.CustomAuthModule" />
        </httpModules>
    </system.web>
</configuration>

Si vous utilisez IIS 8 ou supérieur avec un groupe d’applications en mode Integrated Managed Pipeline, le suivant sera ajouté au web.config :

 <configuration>
     <system.webServer>
         <modules>
             <add name="ApplicationSecurityAuthenticationModule" type="MyCompany.Hosting.Samples.CustomAuthModule" />
         </modules>
     </system.webServer>
 </configuration>

Authentification par formulaires

Paramètres IIS et WorkflowGen

  1. Modifiez le code de login.aspx pour valider les justificatifs d'identité utilisés pour HTTP de base selon le référentiel de configuration externe. Si vous ne disposez pas d'un référentiel de configuration externe, vous pouvez ajouter des utilisateurs directement dans le web.config de WorkflowGen (veuillez consulter la documentation .NET).

  2. Le fichier login.aspx doit être copié dans tous les répertoires WebForms. Les services Web doivent continuer à utiliser l'authentification de base ou intégrée; ainsi, la page login.aspx ne peut être utilisée pour celles-ci.

  3. Dans le web.config de WorkflowGen, enregistrez le formulaire d'authentification :

    <configuration>
        <system.web>
            <authentication mode="Forms">
                <forms name="401kApp" timeout="30" loginUrl="/wfgen/login.aspx" cookieless="AutoDetect" defaultUrl="/wfgen/default.aspx" protection="None" />
            </authentication>
            <authorization>
                <deny users="?" />
            </authorization>
        </system.web>
    </configuration>

    ✏️ Note : Définissez l'attribut protection="None" ou protection="All" sous le nœud "forms". Si "All" est utilisé, l'attribut et la valeur machineKey doivent également être ajoutés. (Pour plus d'informations sur l'authentification par formulaire, voir http://quickstarts.asp.net/QuickStartv20/aspnet/doc/security/formsauth.aspx.)

  4. Définissez l'authentification à Windows pour chaque application WebService de WorkflowGen dans le fichier web.config et remettez les paramètres de sécurité à Basic ou Integrated dans IIS pour ces dossiers.

  5. Activez l'accès anonyme sur le site Web de WorkflowGen et désactivez tous les mécanismes d'accès embarqués. Appliquez ce paramétrage à toutes les sous-applications.

Conformité FIPS

À partir de la version 7.10.0, WorkflowGen est conforme FIPS et compatible avec le mode Windows conforme FIPS. Si vous souhaitez activer la conformité FIPS dans votre environnement Windows, vous devez configurer au préalable les modes de gestion des mots de passe de la configuration et de gestion des mots de passe utilisateur.

Mode de gestion des mots de passe de la configuration

Dans la section Sécurité de l'onglet Général du panneau de configuration, définissez Mode de gestion des mots de passe de la configuration sur AES (FIPS compliant) et saisissez une clé de chiffrement à 32 caractères. Lorsque vous cliquez sur Enregistrer, les mots de passe des applications sont automatiquement convertis dans le nouveau mode de cryptage symétrique.

Mode de gestion des mots de passe utilisateur

Dans la section Authentification de l'onglet Général du panneau de configuration, définissez Mode de gestion des mots de passe sur le mode One-way Hashing (SHA256 FIPS compliant).

  • Si vous utilisez l'authentification applicative en mode de gestion des mots de passe Version 5, les mots de passe des utilisateurs seront automatiquement convertis en mode One-way Hashing (SHA256 FIPS compliant) la prochaine fois qu'ils se connecteront à WorkflowGen.

  • Si vous utilisez l'authentification applicative en mode de gestion des passe One-way Hashing (SHA256 FIPS compliant) :

    1. Sélectionnez le mode d'authentification IIS.

    2. Sélectionnez le mode de gestion des mots de passe One-way Hashing (SHA256 FIPS compliant), puis cliquez sur Enregistrer.

    3. Saisissez à nouveau tous les mots de passe utilisateur.

    4. Réinitialisez le mode d'authentification sur applicatif.

HTTPS : Utilisation de SSL avec WorkflowGen

Aperçu

Cette section décrit comment configurer WorkflowGen pour utiliser un niveau de connexion de sécurité SSL sur le site Web.

Configuration de IIS

Activez l’authentification SSL sur votre site WorkflowGen.

Paramètres de l’application à modifier

Vous devez modifier les paramètres suivants dans la configuration de WorkflowGen (ouvrez le Panneau de configuration depuis le module d’administration de WorkflowGen).

  • URL de l’application : vous devez modifier le protocole de l’application afin d’utiliser https://

Liens vers WorkflowGen

Changez les liens vers WorkflowGen (favoris, etc...) avec https:// à la place de http://.

Partage des ressources cross-origin (CORS)

Pour permettre à une application cliente (telle que du code JavaScript frontal d'un domaine extérieur) d'accéder et de demander des données, vous devez activer et configurer les paramètres de partage des ressources cross-origin (CORS). Pour ce faire :

  1. Installez le module IIS CORS sur le serveur Web WorkflowGen.

  2. Ajoutez le nœud cors avec la liste des domaines externes et leurs méthodes et en-têtes (où les requêtes HTTP seront autorisées) aux paramètres de configuration Web de WorkflowGen (situés dans \wfgen\web.config). Voir quelques exemples courants ci-dessous.

📌 Exemple 1 : Autoriser toutes les origines

<configuration>
    <system.webServer>
        <cors enabled="true">
            <add origin="*">
                <allowMethods>
                    <add method="GET" />
                    <add method="POST" />
                    <add method="OPTIONS" />
                    <add method="HEAD" />
                </allowMethods>
                <allowHeaders>
                    <add header="Accept" />
                    <add header="Origin" />
                    <add header="Authorization" />
                    <add header="Content-Type" />
                </allowHeaders>
            </add>
        </cors>
    </system.webServer>
</configuration>

📌 Exemple 2 : Autoriser des origines spécifiques

<configuration>
    <system.webServer>
        <cors enabled="true">
            <add origin="https://domain.b.com" allowCredentials="true">
                <allowMethods>
                    <add method="GET" />
                    <add method="POST" />
                    <add method="OPTIONS" />
                    <add method="HEAD" />
                </allowMethods>
                <allowHeaders>
                    <add header="Accept" />
                    <add header="Origin" />
                    <add header="Authorization" />
                    <add header="Content-Type" />
                </allowHeaders>
            </add>
            <add origin="https://domain.c.com" allowCredentials="true">
                <allowMethods>
                    <add method="GET" />
                    <add method="POST" />
                    <add method="OPTIONS" />
                    <add method="HEAD" />
                </allowMethods>
                <allowHeaders>
                    <add header="Accept" />
                    <add header="Origin" />
                    <add header="Authorization" />
                    <add header="Content-Type" />
                </allowHeaders>
            </add>
        </cors>
    </system.webServer>
</configuration>

Pour plus d'informations sur la configuration CORS, voir la page IIS CORS module Configuration Reference (disponible en anglais uniquement).

Dernière mise à jour