# Cognito

Si vous disposez d'une base d'identifiants utilisateur existante utilisant Amazon Cognito, vous pouvez réutiliser cette base d'utilisateurs et permettre à vos utilisateurs actuels de se connecter en single sign-on à ngSurvey en utilisant leurs identifiants Cognito.&#x20;

## Configuration Cognito

Les étapes suivantes vous montreront comment configurer une nouvelle application Cognito fonctionnant avec ngSurvey.&#x20;

Dans votre user pool existant, allez à l'onglet App Integration

![](https://186103257-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8fLhS0bmfBRyq0HdUm%2Fuploads%2FmYljTi8DKqlW6FT04Kqm%2Fimage.png?alt=media\&token=ada5f93f-e5d7-4ff1-b743-91f24364ec53)

Si vous n'avez pas encore configuré de domaine, configurez soit un Cognito Domain soit un domaine personnalisé.

.![](https://186103257-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8fLhS0bmfBRyq0HdUm%2Fuploads%2FAXCOnsoO4AMHPnjpiQUC%2Fimage.png?alt=media\&token=6bb5edd5-de3b-4315-8370-b76166f5d8a3)

Créez un nouveau client d'application ; l'application cliente doit être un Public client et définir son Client secret comme suit :

![](https://186103257-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8fLhS0bmfBRyq0HdUm%2Fuploads%2FmP7iUdkNcvsQy9MA9LR0%2Fimage.png?alt=media\&token=b21b617b-a060-4f5f-911a-b7533287f634)

Vous devrez également définir une URL de callback qui redirigera vers la page de connexion de votre site ngSurvey.

![](https://186103257-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8fLhS0bmfBRyq0HdUm%2Fuploads%2FV1gsLzDGvLR5kscLwz9a%2Fimage.png?alt=media\&token=9c451b0c-d22d-4ea2-8e37-4df40004540f)

Assurez-vous que les scopes OpenID Email et Profile sont définis

![](https://186103257-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8fLhS0bmfBRyq0HdUm%2Fuploads%2F7NJjpgpwlyIoHZFV5Iu4%2Fimage.png?alt=media\&token=d9002e3a-126d-42e5-9d08-a9ae657dff77)

Une fois cela fait, créez le client de l'application

## Configuration de NGSurvey

Pour configurer Cognito dans ngSurvey, vous aurez besoin du Client ID de l'application et de l'Issuer. Le Client Id se trouve dans la liste App Client.

![](https://186103257-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8fLhS0bmfBRyq0HdUm%2Fuploads%2Fix0shjFRN2L3PJ8fGI15%2Fimage.png?alt=media\&token=61b395be-cec7-4f00-bcd7-f84a8c7ed655)&#x20;

L'URL de l'Issuer est composée du User PoolID et de la Zone (par ex. : eu-central-1) dans laquelle le pool s'exécute, par exemple :

`https://cognito-idp.[ZONE].amazonaws.com/[PoolID]`

L'ID du user pool peut être trouvé depuis l'écran d'aperçu de votre pool.

![](https://186103257-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8fLhS0bmfBRyq0HdUm%2Fuploads%2FQJPpjJbN7FFALCarvXUL%2Fimage.png?alt=media\&token=f11fa349-f4c1-4e1a-943d-bfdfdd26e1c1)

Une fois que vous avez rassemblé ces deux propriétés, vous pouvez les définir dans l'onglet OpenID de la page system / settings de ngSurvey

![](https://186103257-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8fLhS0bmfBRyq0HdUm%2Fuploads%2FkibiLLvaVTVh3ZECrjnb%2Fimage.png?alt=media\&token=14e94ce1-65f7-4f85-a354-55484ee5131f)

C'est tout ! ngSurvey est maintenant configuré pour assurer le single sign-on de vos utilisateurs Cognito existants ainsi que des utilisateurs intégrés à ngSurvey.

{% hint style="danger" %}
Si vous activez le single sign-on, assurez-vous d'abord de vous connecter avec un compte Cognito et d'attribuer à ce compte les privilèges d'administrateur ou [rôles](https://docs.ngsurvey.com/fr/multi-user-management/roles) dans ngSurvey depuis le [utilisateur](https://docs.ngsurvey.com/fr/multi-user-management/users) contrôle d'accès. &#x20;
{% endhint %}

{% hint style="info" %}
En utilisant la propriété auto-link sur [rôles](https://docs.ngsurvey.com/fr/multi-user-management/roles) et [groupes](https://docs.ngsurvey.com/fr/multi-user-management/groups) vous pouvez mapper automatiquement un rôle ou un groupe à chaque nouvel utilisateur Cognito qui se connecte à ngSurvey.
{% endhint %}
