# Authentification SAML v2.0

## Aperçu

SAML v2.0 fournit une authentification fédérée de niveau entreprise avec suivi des identifiants de requête pour la sécurité. Il permet à WorkflowGen de déléguer l’authentification à des systèmes de fournisseurs d’identité (IdP), afin que les utilisateurs puissent accéder à l’application avec leurs identifiants corporatifs existants.

## Configuration

{% hint style="info" %}
Voir la section [Paramétrages de configuration OIDC](#parametrages-de-configuration-oidc) ci-dessous pour un tableau répertoriant tous les paramétrages obligatoires et facultatifs, accompagnés de leur description et de leur valeur par défaut.
{% endhint %}

### Microsoft Entra ID

**Fournisseur :** `saml-azure`

#### Paramétrages requis

```html
<add key="ApplicationSecurityAuthProvider" value="saml-azure" />
<add key="ApplicationSecurityAuthSAMLEntryPoint" value="https://login.microsoftonline.com/{tenant-id}/saml2" />
<add key="ApplicationSecurityAuthSAMLIssuer" value="https://{your-workflowgen-domain}/wfgen/auth" />
<add key="ApplicationSecurityAuthSAMLIdpIssuer" value="https://sts.windows.net/{tenant-id}/" />
<add key="ApplicationSecurityAuthSAMLCert" value="-----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----" />
<add key="ApplicationSecurityAuthSAMLPrivateKey" value="-----BEGIN PRIVATE KEY-----...-----END PRIVATE KEY-----" />
<add key="ApplicationSecurityAuthSAMLIdpCert" value="-----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----" />
<add key="ApplicationSecurityAuthSessionTokenSigningSecret" value="your-session-secret" />
```

#### Paramétrages facultatifs

**Déconnexion complète via le portail**

```html
<add key="ApplicationSecurityAuthSAMLLogoutPortalUrl" value="https://myapps.microsoft.com/logout" />
```

**Déconnexion initiée par le fournisseur de services (SP)**

```html
<add key="ApplicationSecurityAuthSAMLLogoutUrl" value="https://login.microsoftonline.com/{tenant-id}/saml2" />
```

{% hint style="info" %}
Si `ApplicationSecurityAuthSAMLLogoutUrl` ne se comporte pas comme prévu avec la configuration de votre locataire ou de votre navigateur, supprimez ce paramètre (laissez-le non défini) et utilisez plutôt la déconnexion de WorkflowGen uniquement ou la déconnexion du portail via : <https://myapps.microsoft.com/logout>.
{% endhint %}

### PingFederate

**Fournisseur** : `saml-pingfederate`

#### Paramétrages requis

```html
<add key="ApplicationSecurityAuthProvider" value="saml-pingfederate" />
<add key="ApplicationSecurityAuthSAMLEntryPoint" value="https://auth.pingone.ca/{environment-id}/saml20/idp/sso" />
<add key="ApplicationSecurityAuthSAMLIssuer" value="https://{your-workflowgen-domain}/wfgen/auth" />
<add key="ApplicationSecurityAuthSAMLIdpIssuer" value="https://auth.pingone.ca/{environment-id}" />
<add key="ApplicationSecurityAuthSAMLCert" value="-----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----" />
<add key="ApplicationSecurityAuthSAMLPrivateKey" value="-----BEGIN PRIVATE KEY-----...-----END PRIVATE KEY-----" />
<add key="ApplicationSecurityAuthSAMLIdpCert" value="-----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----" />
<add key="ApplicationSecurityAuthSessionTokenSigningSecret" value="your-session-secret" />
<!-- PingFederate wants logout requests to be signed - required for PingFederate SLO -->
<add key="ApplicationSecurityAuthSAMLWantLogoutRequestsSigned" value="true" />
<!-- PingFederate wants assertions to be signed - required for PingFederate SLO -->
<add key="ApplicationSecurityAuthSAMLWantAssertionsSigned" value="true" />
```

#### Paramétrages facultatifs

**Déconnexion complète via le portail**

```html
<add key="ApplicationSecurityAuthSAMLLogoutPortalUrl" value="https://auth.pingone.ca/{environment-id}/saml20/idp/slo" />
```

**Déconnexion initiée par le fournisseur de services (SP)**

```html
<add key="ApplicationSecurityAuthSAMLLogoutUrl" value="https://auth.pingone.ca/{environment-id}/saml20/idp/slo" />
```

### Auth0

**Fournisseur :** `saml-auth0`

#### Paramétrages requis

```html
<add key="ApplicationSecurityAuthProvider" value="saml-auth0" />
<add key="ApplicationSecurityAuthSAMLEntryPoint" value="https://{tenant-id}.auth0.com/samlp/{client-id}" />
<add key="ApplicationSecurityAuthSAMLIssuer" value="https://{your-workflowgen-domain}/wfgen/auth" />
<add key="ApplicationSecurityAuthSAMLIdpIssuer" value="urn:{tenant-id}.auth0.com" />
<add key="ApplicationSecurityAuthSAMLCert" value="-----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----" />
<add key="ApplicationSecurityAuthSAMLPrivateKey" value="-----BEGIN PRIVATE KEY-----...-----END PRIVATE KEY-----" />
<add key="ApplicationSecurityAuthSAMLIdpCert" value="-----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----" />
<add key="ApplicationSecurityAuthSessionTokenSigningSecret" value="your-session-secret" />
<!-- Auth0 wants assertions to be signed - required for Auth0 SLO -->
<add key="ApplicationSecurityAuthSAMLWantAssertionsSigned" value="true" />
```

#### Paramétrages facultatifs

**Déconnexion complète via le portail**

```html
<add key="ApplicationSecurityAuthSAMLLogoutPortalUrl" value="https://{tenant-id}.auth0.com/logout" />
```

**Déconnexion initiée par le fournisseur de services (SP)**

```html
<add key="ApplicationSecurityAuthSAMLLogoutUrl" value="https://{tenant-id}.auth0.com/samlp/{client-id}/logout" />
```

### Okta

**Fournisseur :** `okta-saml`

#### Paramétrages requis

```html
<add key="ApplicationSecurityAuthProvider" value="saml-okta" />
<add key="ApplicationSecurityAuthSAMLEntryPoint" value="https://{okta-domain-id}.okta.com/app/{app-name}/{app-id}/sso/saml" />
<add key="ApplicationSecurityAuthSAMLIssuer" value="https://{your-workflowgen-domain}/wfgen/auth" />
<add key="ApplicationSecurityAuthSAMLIdpIssuer" value="https://www.okta.com/{app-id}" />
<add key="ApplicationSecurityAuthSAMLCert" value="-----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----" />
<add key="ApplicationSecurityAuthSAMLPrivateKey" value="-----BEGIN PRIVATE KEY-----...-----END PRIVATE KEY-----" />
<add key="ApplicationSecurityAuthSAMLIdpCert" value="-----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----" />
<add key="ApplicationSecurityAuthSessionTokenSigningSecret" value="your-session-secret" />
```

#### Paramtérages facultatifs

**Déconnexion complète via le portail**

```html
<add key="ApplicationSecurityAuthSAMLLogoutPortalUrl" value="https://{okta-domain-id}.okta.com/login/signout" />
```

**Déconnexion initiée par le fournisseur de services (SP)**

```html
<add key="ApplicationSecurityAuthSAMLLogoutUrl" value="https://{okta-domain-id}.okta.com/app/{app-name}/{app-id}/slo/saml" />
```

{% hint style="info" %}
Si `ApplicationSecurityAuthSAMLLogoutUrl` ne fonctionne pas comme prévu (par exemple, si Okta renvoie `RequestDenied/AuthnFailed`), laissez ce paramètre non défini et utilisez la déconnexion via le portail utilisateur à l’adresse `/wfgen/auth/logout?logoutType=complete`.
{% endhint %}

### AD FS

{% hint style="warning" %}
Le support de SAML v2.0 pour AD FS est encore en mode expérimental. Vous devez tester la configuration afin de vérifier sa compatibilité.
{% endhint %}

**Fournisseur :** `saml-adfs`

#### Paramétrages requis

```html
<add key="ApplicationSecurityAuthProvider" value="saml-adfs" />
<add key="ApplicationSecurityAuthSAMLEntryPoint" value="https://{your-adfs-server}/adfs/ls/" />
<add key="ApplicationSecurityAuthSAMLIssuer" value="https://{your-workflowgen-domain}/wfgen/auth" />
<add key="ApplicationSecurityAuthSAMLIdpIssuer" value="https://{your-adfs-server}/adfs/services/trust" />
<add key="ApplicationSecurityAuthSAMLCert" value="-----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----" />
<add key="ApplicationSecurityAuthSAMLPrivateKey" value="-----BEGIN PRIVATE KEY-----...-----END PRIVATE KEY-----" />
<add key="ApplicationSecurityAuthSAMLIdpCert" value="-----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----" />
<add key="ApplicationSecurityAuthSessionTokenSigningSecret" value="your-session-secret" />
```

#### Paramétrages facultatifs

**Déconnexion complète via le portail**

```html
<add key="ApplicationSecurityAuthSAMLLogoutPortalUrl" value="https://{your-adfs-server}/adfs/ls/?wa=wsignout1.0" />
```

**Déconnexion initiée par le fournisseur de services (SP)**

```html
<add key="ApplicationSecurityAuthSAMLLogoutUrl" value="https://{your-adfs-server}/adfs/ls/?wa=wsignout1.0" />
```

### Fournisseurs génériques

{% hint style="warning" %}
Le support de SAML v2.0 pour les fournisseurs génériques est encore en mode expérimental. Vous devez tester la configuration afin de vérifier sa compatibilité.
{% endhint %}

**Fournisseur :** `saml-generic`

#### Paramétrages requis

```html
<add key="ApplicationSecurityAuthProvider" value="saml-generic" />
<add key="ApplicationSecurityAuthSAMLEntryPoint" value="https://{your-idp-server}/sso/saml" />
<add key="ApplicationSecurityAuthSAMLIssuer" value="https://{your-workflowgen-domain}/wfgen/auth" />
<add key="ApplicationSecurityAuthSAMLIdpIssuer" value="https://{your-idp-server}" />
<add key="ApplicationSecurityAuthSAMLCert" value="-----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----" />
<add key="ApplicationSecurityAuthSAMLPrivateKey" value="-----BEGIN PRIVATE KEY-----...-----END PRIVATE KEY-----" />
<add key="ApplicationSecurityAuthSAMLIdpCert" value="-----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----" />
<add key="ApplicationSecurityAuthSessionTokenSigningSecret" value="your-session-secret" />
```

#### Paramétrages facultatifs

**Déconnexion complète via le portail**

```html
<add key="ApplicationSecurityAuthSAMLLogoutPortalUrl" value="https://{your-idp-server}/logout" />
```

**Déconnexion initiée par le fournisseur de services (SP)**

```html
<add key="ApplicationSecurityAuthSAMLLogoutUrl" value="https://{your-idp-server}/slo/saml" />
```

## Paramétrages de configuration OIDC

<table><thead><tr><th width="521.8291015625" valign="top">Paramétrage</th><th width="239.32470703125" valign="top">Description et valeurs</th></tr></thead><tbody><tr><td valign="top"><strong>Paramétrages essentiels</strong></td><td valign="top"></td></tr><tr><td valign="top"><code>ApplicationSecurityAuthProviders</code><br>(requis)</td><td valign="top">Identifiant du fournisseur d'identité<br><strong>Par défaut :</strong> Non défini</td></tr><tr><td valign="top"><code>ApplicationSecurityAuthClientId</code><br>(requis)</td><td valign="top">ID client OAuth<br><strong>Par défaut :</strong> Non défini</td></tr><tr><td valign="top"><code>ApplicationSecurityAuthClientSecret</code><br>(requis)</td><td valign="top">Secret client OAuth<br><strong>Par défaut :</strong> Non défini</td></tr><tr><td valign="top"><code>ApplicationSecurityAuthMetadataUrl</code><br>(requis)</td><td valign="top">Point de terminaison de métadonnées OIDC<br><strong>Par défaut :</strong> Non défini</td></tr><tr><td valign="top"><code>ApplicationSecurityAuthSessionTokenSigningSecret</code><br>(requis)</td><td valign="top">Secret de signature JWT<br><strong>Par défaut :</strong> Non défini</td></tr><tr><td valign="top"><strong>Revendi­cations d’utilisateur</strong></td><td valign="top"></td></tr><tr><td valign="top"><code>ApplicationSecurityAuthUsernameClaim</code></td><td valign="top">Nom de revendication du nom d’utilisateur<br><strong>Par défaut :</strong> <code>preferred_username</code></td></tr><tr><td valign="top"><code>ApplicationSecurityAuthAppIdClaim</code></td><td valign="top">Nom de revendication de l’identifiant d’application<br><strong>Par défaut :</strong> <code>appid</code></td></tr><tr><td valign="top"><code>ApplicationSecurityAuthAccessTokenUsernameClaim</code></td><td valign="top">Revendi­cation du nom d’utilisateur dans le jeton d’accès<br><strong>Par défaut :</strong> <code>upn</code></td></tr><tr><td valign="top"><strong>Paramétrages des jetons</strong></td><td valign="top"></td></tr><tr><td valign="top"><code>ApplicationSecurityAuthAudience</code></td><td valign="top">Validation de l’audience du jeton<br><strong>Par défaut :</strong> Vide</td></tr><tr><td valign="top"><code>ApplicationSecurityAuthDecodeAccessToken</code></td><td valign="top">Décoder le jeton d’accès<br><strong>Par défaut :</strong> <code>N</code></td></tr><tr><td valign="top"><code>ApplicationSecurityAuthExposeAccessTokenInCookies</code></td><td valign="top">Exposer le jeton dans les témoins (cookies)<br><strong>Par défaut :</strong> <code>N</code></td></tr><tr><td valign="top"><code>ApplicationSecurityAuthClockTolerance</code></td><td valign="top">Tolérance d’horloge JWT (secondes)<br><strong>Par défaut :</strong> <code>60</code></td></tr><tr><td valign="top"><strong>Session et flux</strong></td><td valign="top"></td></tr><tr><td valign="top"><code>ApplicationSecurityAuthSessionTokenSigningSecret</code><br> (requis) </td><td valign="top">Secret de signature du jeton de session JWT<br><strong>Par défaut :</strong> Non défini</td></tr><tr><td valign="top"><code>ApplicationSecurityAuthSessionTokenAudience</code></td><td valign="top">Audience du jeton de session JWT<br><strong>Par défaut :</strong> URL de l’application</td></tr><tr><td valign="top"><code>ApplicationSecurityAuthSessionTimeOut</code></td><td valign="top">Expiration de session (secondes)<br><strong>Par défaut :</strong> Non défini</td></tr><tr><td valign="top"><code>ApplicationSecurityAuthMobileSessionTimeOut</code></td><td valign="top">Expiration de session mobile (secondes)<br><strong>Par défaut :</strong> <code>7200</code>  <br></td></tr><tr><td valign="top"><code>ApplicationSecurityAuthResponseMode</code></td><td valign="top">Mode de réponse OIDC<br><strong>Par défaut :</strong> <code>form_post</code></td></tr><tr><td valign="top"><code>ApplicationSecurityAuthSessionRefreshEnableIFrame</code></td><td valign="top">Activer le rafraîchissement dans l’iframe<br><strong>Par défaut :</strong> <code>Y</code></td></tr><tr><td valign="top"><code>ApplicationSecurityAuthCheckSessionUrl</code></td><td valign="top">URL de l’iframe de vérification de session<br><strong>Par défaut :</strong> Vide</td></tr><tr><td valign="top"><code>ApplicationSecurityAuthLogoutUrl</code></td><td valign="top">URL de déconnexion personnalisée<br><strong>Par défaut :</strong> Vide</td></tr><tr><td valign="top"><code>ApplicationSecurityAuthAcrValues</code></td><td valign="top">Classe de contexte d’authentification<br><strong>Par défaut :</strong> Vide</td></tr></tbody></table>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.workflowgen.com/tech-fr/9.6/authentification-saml-v2.0.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
