Sécurité

Aperçu

Ce chapitre décrit les différentes méthodes d'authentification des utilisateurs de WorkflowGen :

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

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

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

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

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

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

Quelle méthode d’authentification 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. Saisissez 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. Saisissez le nombre maximum de tentatives de connexion infructueuses avant que le compte d’utilisateur ne soit verrouillé.

    5. Saisissez 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. 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>
  6. 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.

  7. 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>
  8. 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.

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