

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Configurer l'authentification OAuth 2.0 pour Confluence
<a name="kb-managed-confluence-oauth2-setup"></a>

L'authentification OAuth 2.0 (`OAUTH2`) s'authentifie auprès d'une application Atlassian OAuth 2.0 à trois pattes (3LO). Vous enregistrez une application dans la console de développement Atlassian, vous effectuez un flux d'autorisation unique pour obtenir un jeton d'actualisation et vous y stockez les informations d'identification. AWS Au moment du crawl, Amazon Bedrock utilise le jeton d'actualisation pour créer automatiquement des jetons d'accès de courte durée.

**Important**  
OAuth 2.0 ne prend pas en charge le contrôle d'accès au niveau du document (ACL). Pour filtrer les résultats des requêtes en fonction des autorisations utilisateur, utilisez l'authentification de base. Consultez [Configurer l'authentification de base pour Confluence](kb-managed-confluence-basic-setup.md).

## Étape 1 : enregistrer une application OAuth 2.0 (3LO)
<a name="kb-managed-confluence-oauth2-step1"></a>

1. Connectez-vous à la console de développement [Atlassian.](https://developer.atlassian.com/console/myapps/)

1. Choisissez **Create**, puis intégration **OAuth 2.0**.

1. Entrez un nom pour l'application (par exemple,`bedrock-confluence-connector`) et choisissez **Create**.

1. Sur la page **Autorisations** de l'application, ajoutez l'**API Confluence**. Configurez les étendues granulaires suivantes (ou les étendues classiques équivalentes si votre application les utilise) :
   + `read:content:confluence`
   + `read:content-details:confluence`
   + `read:space:confluence`
   + `read:space-details:confluence`
   + `read:user:confluence`
   + `read:attachment:confluence`
   + `read:page:confluence`— obligatoire pour l'énumération des pages
   + `read:blogpost:confluence`— obligatoire si vous parcourez les articles de blog
   + `read:custom-content:confluence`— obligatoire si votre espace de travail contient du contenu personnalisé

   Ajoutez `offline_access` l'**autorisation API Authorization** **— Identité utilisateur**. `offline_access`est ce qui pousse Atlassian à émettre un jeton d'actualisation.

1. Sur la page **d'autorisation**, définissez l'URL de **rappel sur une URL** que vous contrôlez et sur laquelle vous pouvez capturer le code d'autorisation à l'étape 3 (par exemple,`https://localhost:8080/callback`).

1. Sur la page **Paramètres**, copiez l'**ID client** et le **secret**. Ce sont les `confluenceAppKey` terres`confluenceAppSecret`.

## Étape 2 : Autoriser l'application
<a name="kb-managed-confluence-oauth2-step2"></a>

Ouvrez l'URL suivante dans un navigateur, en remplaçant les espaces réservés par vos valeurs. Connectez-vous avec l'utilisateur Atlassian dont le connecteur doit utiliser l'accès ; l'utilisateur doit avoir accès au contenu Confluence que vous souhaitez explorer.

```
https://auth.atlassian.com/authorize?
audience=api.atlassian.com&
client_id={{your-client-id}}&
scope=read:content:confluence%20read:content-details:confluence%20read:space:confluence%20read:space-details:confluence%20read:user:confluence%20read:attachment:confluence%20read:page:confluence%20read:blogpost:confluence%20read:custom-content:confluence%20offline_access&
redirect_uri={{https://localhost:8080/callback}}&
response_type=code&
prompt=consent
```

Approuvez l'invite de consentement. Atlassian redirige vers votre URL de rappel avec un paramètre de requête. `code` Copiez ce code d'autorisation.

## Étape 3 : échangez le code contre des jetons
<a name="kb-managed-confluence-oauth2-step3"></a>

Échangez le code d'autorisation contre un jeton d'accès et un jeton d'actualisation. Depuis un terminal, exécutez :

```
curl -X POST https://auth.atlassian.com/oauth/token \
  -H "Content-Type: application/json" \
  -d '{
    "grant_type": "authorization_code",
    "client_id": "{{your-client-id}}",
    "client_secret": "{{your-client-secret}}",
    "code": "{{authorization-code-from-step-2}}",
    "redirect_uri": "{{https://localhost:8080/callback}}"
  }'
```

La réponse contient `access_token` et`refresh_token`. Enregistrez les deux valeurs. Le jeton d'actualisation n'expire pas tant qu'il est utilisé régulièrement.

## Étape 4 : Création du secret du Gestionnaire de Secrets
<a name="kb-managed-confluence-oauth2-step4"></a>

Stockez les informations d'identification dans un AWS Secrets Manager secret avec les paires clé-valeur suivantes :

```
{
    "confluenceAppKey": "{{your-client-id}}",
    "confluenceAppSecret": "{{your-client-secret}}",
    "confluenceAccessToken": "{{your-access-token}}",
    "confluenceRefreshToken": "{{your-refresh-token}}",
    "hostUrl": "{{https://your-instance.atlassian.net}}"
}
```

Créez le secret avec AWS Command Line Interface :

```
aws secretsmanager create-secret \
  --name {{bedrock-confluence-oauth2-creds}} \
  --secret-string file://secret.json
```

Enregistrez l'ARN secret de la réponse. Vous l'utilisez comme source de données`secretArn`.

## Étape 5 : accorder au rôle de service l'autorisation de mettre à jour le secret
<a name="kb-managed-confluence-oauth2-step5"></a>

Les jetons d'accès Atlassian expirent au bout de 60 minutes. Amazon Bedrock utilise le jeton d'actualisation pour créer un nouveau jeton d'accès et réécrit la nouvelle valeur dans le même secret. Ajoutez le secret `secretsmanager:PutSecretValue` à la politique d'autorisation de votre rôle de service de base de connaissances :

```
{
    "Effect": "Allow",
    "Action": "secretsmanager:PutSecretValue",
    "Resource": "{{arn:aws:secretsmanager:region:account-id:secret:bedrock-confluence-oauth2-creds-*}}"
}
```

Sans cette autorisation, le connecteur ne peut pas conserver le jeton d'accès pivoté et les synchronisations ultérieures échouent.

## Étapes suivantes
<a name="kb-managed-confluence-oauth2-next"></a>

Après avoir enregistré le secret, créez la source de données avec la `authType` valeur définie sur`OAUTH2`. Consultez [Connect une source de données Confluence](kb-managed-ds-confluence-connect.md).