# Configuration d’AWS Cognito

{% hint style="warning" %}
Ce guide vous accompagne dans la configuration d’un écran de connexion protégé pour votre documentation. Avant de suivre ce guide, assurez-vous d’abord d’avoir suivi le processus de [l’activation de l’accès authentifié](https://gitbook-v2-q67etdj25-gitbook.vercel.app/url/gitbook.com/docs/documentation/fr/publishing-documentation/authenticated-access/enabling-authenticated-access).
{% endhint %}

Pour configurer votre site GitBook avec un accès authentifié à l’aide d’AWS Cognito, le processus se déroule comme suit :

{% stepper %}
{% step %}
**Créer une nouvelle application AWS Cognito**

Créez une application AWS Cognito depuis votre tableau de bord AWS.
{% endstep %}

{% step %}
**Installer et configurer l’intégration AWS Cognito**

Installez l’intégration AWS Cognito et ajoutez la configuration requise.
{% endstep %}

{% step %}
**Configurer AWS Cognito pour le contenu adaptatif (facultatif)**

Configurez AWS Cognito pour fonctionner avec le contenu adaptatif dans GitBook.
{% endstep %}
{% endstepper %}

### Créer une nouvelle application AWS Cognito

Accédez au User Pool souhaité dans Cognito, puis cliquez sur Intégration de l’application. Notez le domaine Cognito, nous en aurons besoin pour configurer l’intégration.

Faites défiler jusqu’en bas et cliquez sur « Créer un client d’application ». Pour le type d’application, sélectionnez « Client confidentiel ». Faites défiler jusqu’aux paramètres de l’interface utilisateur hébergée. Dans les URL de rappel autorisées, saisissez l’URL de rappel que vous avez obtenue de GitBook lors de l’installation de l’intégration sur un espace.

Faites défiler plus bas jusqu’à « Types d’autorisation OAuth 2.0 » — assurez-vous que « Authorization code grant » est sélectionné.

Pour « Portées OpenID connect », assurez-vous qu’OpenID est sélectionné.

Faites défiler vers le bas et cliquez sur « Créer un client d’application ».

Cliquez sur le client d’application créé et notez l’ID client et le secret client.

### Installer et configurer l’intégration AWS Cognito

Accédez aux intégrations dans l’application GitBook, sélectionnez l’accès authentifié comme catégorie, puis installez l’intégration AWS Cognito.

<figure><img src="https://3903131528-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNkEGS7hzeqa35sMXQZ4X%2Fuploads%2FCZy21M4LIPwMVSxI3ec1%2FScreen%20Shot%202024-12-13%20at%203.37.39%20PM.png?alt=media&#x26;token=4e31d496-04eb-4d00-ac45-011b543edfe4" alt="A GitBook screenshot showing the AWS Cognito integration install screen"><figcaption></figcaption></figure>

Une fois l’intégration installée sur votre site, allez dans la configuration et notez l’URL de rappel juste au-dessus du bouton Enregistrer. Nous en aurons besoin pour configurer Cognito.

Ouvrez l’écran de configuration de l’intégration Cognito pour l’espace sur lequel vous avez installé l’intégration.

Cela devrait ressembler à l’image suivante :

<figure><img src="https://3903131528-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNkEGS7hzeqa35sMXQZ4X%2Fuploads%2Fgy177CzFZiy6U4IntLUE%2FScreen%20Shot%202024-12-13%20at%203.41.57%20PM.png?alt=media&#x26;token=3823d5cb-56e0-4e02-abd6-6d6d66cacf71" alt="A GitBook screenshot showing the AWS Cognito configuration screen"><figcaption></figcaption></figure>

Pour l’ID client, le domaine Cognito et le secret client, collez les valeurs que vous avez obtenues de Cognito.

Cliquez sur Enregistrer.

Maintenant, dans GitBook, fermez la fenêtre modale des intégrations et cliquez sur le bouton Manage site. Accédez à **Audience**, sélectionnez **Accès authentifié**, puis choisissez Cognito comme backend. Ensuite, cliquez **Mettre à jour l’audience**. Allez sur l’écran du site et cliquez sur **Publier**.\
\
Le site est maintenant publié derrière un accès authentifié contrôlé par votre application Auth0. Pour l’essayer, cliquez sur Visiter. Il vous sera demandé de vous connecter avec Cognito, ce qui confirme que votre site est publié derrière un accès authentifié à l’aide d’Auth0.

### Configurer AWS Cognito pour le contenu adaptatif (facultatif)

Pour exploiter le contenu adaptatif avec l’accès authentifié dans GitBook, vous devrez configurer votre pool d’utilisateurs Amazon Cognito afin d’inclure des revendications personnalisées dans le jeton ID.

Cela se fait généralement en créant un [déclencheur Lambda Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-lambda-pre-token-generation.html)—plus précisément un *Lambda Pre Token Generation* —qui renvoie une charge utile JSON remplaçant ou ajoutant des revendications personnalisées. Ces revendications peuvent inclure des rôles d’utilisateur, des niveaux d’abonnement ou toute autre métadonnée pertinente pour votre contenu.

Voici un exemple de ce à quoi cela pourrait ressembler :

```javascript
export const handler = async (event, context) => {
  // Récupérer l’attribut utilisateur à partir de la requête d’événement
  const userAttributes = event.request.userAttributes;

  // Ajouter des revendications supplémentaires à la réponse de l’événement
  event.response = {
    "claimsAndScopeOverrideDetails": {
      "idTokenGeneration": {},
      "accessTokenGeneration": {
        "claimsToAddOrOverride": {
          "products": ['api', 'sites', 'askAI'],
          "isBetaUser": true,
          "isAlphaUser": true,
        }
      }
    }
  };
  // Retour à Amazon Cognito
  context.done(null, event);
};
```

<figure><img src="https://3903131528-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNkEGS7hzeqa35sMXQZ4X%2Fuploads%2FwwKLiRUOJ27tjJCPc1Vd%2FScreenshot%202025-06-30%20at%2017.31.23.png?alt=media&#x26;token=f015ad33-1e96-47d4-82a5-e3b259f55a0e" alt=""><figcaption></figcaption></figure>

Une fois ajoutées, ces paires clé-valeur sont incluses dans le jeton d’authentification et transmises à GitBook, ce qui permet à votre site d’adapter dynamiquement son contenu en fonction du profil de l’utilisateur authentifié.
