# Scripts côté serveur

## Aperçu

Dans certains cas, vous voudrez effectuer une tâche spécifique qui peut être automatisée mais qui doit pouvoir accéder à l'API GraphQL de WorkflowGen; ce cas d'usage est souvent sous forme de script côté serveur. Pour ceci, OAuth2 fournit un type d'autorisation appelé **Client Credentials** qui échange tout simplement un ID client et une clé secrète client pour un jeton d'accès. Il n'y a aucun jeton ID car ceci ne fait pas partie du standard OpenID Connect, et aucun utilisateur n'est impliqué.

Cette section contient les instructions sur comment configurer AD FS avec un script côté serveur qui a accès à l'API GraphQL.

## Prérequis

* Assurez-vous d'avoir une copie de WorkflowGen sous licence installée et en fonctionnement sur un serveur.
* Assurez-vous d'avoir l'accès d'administrateur WorkflowGen.
* Assurez-vous d'avoir l'accès d'administrateur AD FS pour pouvoir configurer AD FS.
* Assurez-vous d'avoir bien configuré l'authentification déléguée à Ad FS sur votre instance de WorkflowGen en suivant les instructions dans la section [Authentification AD FS](https://docs.workflowgen.com/tech-fr/9.3/integration-ad-fs/..#authentification-ad-fs).

## Configuration d'AD FS

### Étape 1 : Inscrivez une nouvelle application serveur

1. Dans la fenêtre **AD FS Management**, naviguez au dossier **Application Groups**, puis double-cliquez sur le groupe WorkflowGen.<br>
2. Dans la fenêtre **WorkflowGen Properties**, cliquez sur **Add application**.<br>
3. Sélectionnez le type **Server application**, puis cliquez sur **Next**.<br>
4. Configurez l'application serveur :<br>
   1. **Name** : `Mon application serveur` <br>
   2. Copiez l'identifiant du client; vous en aurez besoin pour le flux Client Credentials Grant car vous ne pourrez plus le retrouver plus tard.<br>
   3. Ajoutez un URI de redirection. Il importe peu ce que vous saisissez car le flux Client Credentials Grant n'utilise pas cette valeur.<br>
   4. Cliquez sur **Add**, puis cliquez sur **Next**.<br>
5. Dans la fenêtre **Configure Application Credentials**, générez une clé secrète client pour l'application serveur :<br>
   1. Cochez **Generate a shared secret**.<br>
   2. Copiez la valeur; vous en aurez besoin pour le flux Client Credentials Grant.<br>
   3. Cliquez sur **Next**.<br>
6. Vérifiez la configuration puis cliquez sur **Next**.<br>
7. Cliquez sur **Close**.

Vous devriez maintenant voir la nouvelle application serveur listée dans le group d'applications WorkflowGen.

### Étape 2 : Donnez accès à l'API GraphQL

Maintenant que vous avec créé l'application serveur, vous devez lui donner accès à l'API GraphQL. Pour ce faire :

1. Dans la fenêtre **AD FS Management**, naviguez au dossier **Application Groups**, puis cliquez sur le groupe WorkflowGen.<br>
2. Dans la fenêtre **WorkflowGen Properties**, double-cliquez sur **WorkflowGen GraphQL API**.<br>
3. Dans l'onglet **Client Permissions** dans la fenêtre **WorkflowGen GraphQL API**, cliquez sur **Add**.<br>
4. Cliquez sur l'application serveur que vous avec créée dans la section précédente, puis cliquez sur **Add**.<br>
5. Vous devriez maintenant voir votre application serveur dans la liste d'applications clientes; assurez-vous qu'elle est sélectionnée.<br>
6. Assurez-vous que les portées `openid`, `profile` et `email` sont cochées.<br>
7. Cliquez sur **OK**.

Vous avez maintenant inscrit votre application serveur dans AD FS et lui a donné accès à l'API GraphQL de WorkflowGen.

## Configuration de WorkflowGen

Comme pour l'approvisionnement des utilisateurs, WorkflowGen doit savoir quelle application accède à l'API GraphQL. Vous devez donc inscrire l'application, qui est constituée de votre script.

### Inscrivez une nouvelle application

1. Dans la page **Applications** du module d'administration de WorkflowGen, cliquez sur **Nouvelle application**.<br>
2. Renseignez le formulaire :
   * **Name** : `Mon application serveur`&#x20;
   * **Description** : Une description qui indique clairement qui identifie clairement le script
   * **Type** : `Non-interactive Client`&#x20;
   * **Impersonate username** : Un nom d'utilisateur qui a les permissions requises pour accéder à l'API GraphQL
   * **Client ID** : L'ID client que vous avez retrouvée plus tôt
   * **Active** : Cochez cette case<br>
3. Cliquez sur **Save**.

Votre application devrait maintenant paraître dans la liste d'applications.

{% hint style="success" %}
Vous devriez maintenant avoir mis en place les composants nécessaires à faire des requêtes à l'API GraphQL depuis votre script en passant le jeton d'accès reçu d'AD FS via le flux Client Credentials Grant.
{% endhint %}
