

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 OneDrive
<a name="kb-managed-onedrive-oauth2-setup"></a>

**L'authentification OAuth 2.0 (`OAUTH2`) s'authentifie à l'aide d'un ID client d'application et d'un code secret associés à un jeton d'actualisation délégué.** Le connecteur utilise le jeton d'actualisation pour obtenir des jetons d'accès qui analysent le contenu dans le contexte délégué de l'utilisateur connecté. La source de données couvre le OneDrive contenu auquel l'utilisateur peut accéder : son propre disque, ainsi que tout lecteur partagé avec lui ou pour lequel il dispose SharePoint d'un accès administrateur. Les lecteurs auxquels l'utilisateur connecté ne peut pas accéder sont ignorés en mode silencieux.

**Important**  
Nous le recommandons [Configurer l'authentification Microsoft Entra App ID pour OneDrive](kb-managed-onedrive-entra-setup.md) pour la plupart des sources de données. L'authentification OAuth 2.0 présente les limites suivantes :  
Il explore uniquement le OneDrive contenu auquel l'utilisateur connecté peut accéder (son propre lecteur, ainsi que les lecteurs partagés avec lui ou pour lesquels il dispose SharePoint d'un accès administrateur). Les lecteurs auxquels l'utilisateur ne peut pas accéder sont ignorés en mode silencieux. Pour analyser de manière uniforme tous les utilisateurs OneDrive de votre locataire, utilisez l'authentification Microsoft Entra App ID.
Il nécessite un jeton d'actualisation, que vous obtenez par le biais d'une connexion utilisateur unique (étape 4).
Les jetons d'actualisation ont une durée de Microsoft-side vie limitée. Lorsque le jeton d'actualisation expire ou est révoqué, les synchronisations échouent jusqu'à ce que vous en obteniez un nouveau et que vous mettiez à jour le secret.
Il 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 des utilisateurs, utilisez l'authentification Microsoft Entra App ID.

## Conditions préalables
<a name="kb-managed-onedrive-oauth2-prereqs"></a>
+ Accès administrateur Microsoft Entra ID pour enregistrer une application, accorder le consentement de l'administrateur et créer un secret client.
+ Un compte utilisateur Microsoft 365 qui a accès au OneDrive contenu que vous souhaitez analyser. Vous vous connectez en tant qu'utilisateur une seule fois pour obtenir le jeton d'actualisation.
+ Votre ID de locataire Microsoft 365.

## Étape 1 : enregistrer l'application dans Microsoft Entra ID
<a name="kb-managed-onedrive-oauth2-step1"></a>

1. Connectez-vous au [centre d’administration Microsoft Entra](https://entra.microsoft.com/).

1. Dans le menu de navigation de gauche, **développez Entra ID** et choisissez **App registration**.

1. Choisissez **Nouvel enregistrement**.

1. Dans **Nom**, entrez un nom descriptif, tel que`bedrock-onedrive-oauth2`.

1. Pour les **types de comptes pris en charge**, sélectionnez **Comptes dans ce répertoire organisationnel uniquement (locataire unique)**.

1. Sous **URL de redirection**, sélectionnez **Web** comme plate-forme et entrez`http://localhost:53672/callback`. Vous utilisez cette URI de redirection lorsque vous obtenez un jeton d'actualisation à l'étape 4. Vous pouvez utiliser n'importe quel port localhost gratuit ; si vous modifiez le port ici, utilisez le même port à l'étape 4.

1. Choisissez **S’inscrire**.

1. Sur la page **Présentation** de l'application, enregistrez l'ID de **l'application (client) et l'ID** du **répertoire (locataire)**.

## Étape 2 : ajouter des autorisations d'API et accorder le consentement de l'administrateur
<a name="kb-managed-onedrive-oauth2-step2"></a>

L'authentification OAuth 2.0 utilise une connexion déléguée. L'application a donc besoin d'autorisations **déléguées**, et non d'autorisations d'application.

1. Lors de l'enregistrement de votre application, choisissez **Autorisations API**, puis **Ajouter une autorisation**.

1. Choisissez **Microsoft Graph**, puis **Autorisations déléguées**.

1. Sélectionnez les autorisations déléguées suivantes, puis choisissez **Ajouter des autorisations** :
   + `Files.Read.All`— lit les fichiers auxquels l'utilisateur peut accéder.
   + `Sites.Read.All`— lisez les OneDrive sites auxquels l'utilisateur peut accéder.
   + `User.Read.All`— identifier l'utilisateur.
   + `offline_access`— obligatoire pour que la connexion renvoie un jeton d'actualisation.

1. Sur la page **des autorisations d'API**, choisissez **Accorder le consentement de l'administrateur pour [votre organisation]** et confirmez.

## Étape 3 : Création d'un secret client
<a name="kb-managed-onedrive-oauth2-step3"></a>

1. Lors de l'enregistrement de votre application, choisissez **Certificats et secrets**, puis **Secrets client**, puis **Nouveau secret client**.

1. Entrez une description, choisissez une date d'expiration, puis cliquez sur **Ajouter**.

1. Enregistrez immédiatement la **valeur** secrète : elle n'est affichée qu'une seule fois. Enregistrez la **valeur**, pas l'**identifiant secret**.

## Étape 4 : obtenir un jeton d'actualisation
<a name="kb-managed-onedrive-oauth2-step4"></a>

Le connecteur a besoin d'un jeton d'actualisation, que vous pouvez obtenir par le biais d'une connexion utilisateur unique. La procédure ci-dessous utilise le flux de code d'autorisation OAuth 2.0 avec une redirection localhost, qui fonctionne pour les utilisateurs utilisant l'authentification multifactorielle (MFA). Pour les comptes de service non MFA, une alternative plus simple est proposée à la fin.

**Flux de code d'autorisation (recommandé)**

1. **Créez l'URL de connexion.** Remplacez les espaces réservés par votre identifiant de locataire et l'identifiant de l'application (client) à l'étape 1. Si vous avez utilisé un port localhost différent à l'étape 1, mettez-le à jour `redirect_uri` pour qu'il corresponde.

   ```
   https://login.microsoftonline.com/{{TENANT_ID}}/oauth2/v2.0/authorize?client_id={{CLIENT_ID}}&response_type=code&redirect_uri=http%3A%2F%2Flocalhost%3A53672%2Fcallback&response_mode=query&scope=https%3A%2F%2Fgraph.microsoft.com%2F.default%20offline_access
   ```

1. **Ouvrez une session.** Ouvrez l'URL dans un navigateur et connectez-vous en tant qu'utilisateur Microsoft 365 dont vous souhaitez que le connecteur utilise l'accès. Terminez n'importe quel défi MFA.

   Le navigateur redirige ensuite vers l'URL localhost, qui ne se charge pas (c'est normal car rien n'écoute sur ce port). La barre d'adresse du navigateur contient désormais l'URI de redirection suivie d'un `code` paramètre, par exemple :`http://localhost:53672/callback?code=0.AXoA...&session_state=...`.

1. **Copiez le code d'autorisation.** Dans la barre d'adresse, copiez la valeur du `code` paramètre (tout ce qui se trouve entre `code=` et le suivant`&`). Le code est valide pendant quelques minutes ; effectuez immédiatement l'étape 4.

1. **Échangez le code contre un jeton d'actualisation.** Remplacez les espaces réservés par votre identifiant de locataire, votre identifiant d'application (client), le secret client indiqué à l'étape 3 et le code d'autorisation que vous venez de copier.

   ```
   curl -s -X POST \
     "https://login.microsoftonline.com/{{TENANT_ID}}/oauth2/v2.0/token" \
     -H "Content-Type: application/x-www-form-urlencoded" \
     -d "grant_type=authorization_code" \
     -d "client_id={{CLIENT_ID}}" \
     -d "client_secret={{CLIENT_SECRET}}" \
     -d "code={{AUTHORIZATION_CODE}}" \
     -d "redirect_uri=http://localhost:53672/callback" \
     -d "scope=https://graph.microsoft.com/.default offline_access"
   ```

   La réponse inclut un`refresh_token`. Enregistrez-le pour l'étape 5.

**Informations d'identification du mot de passe du propriétaire de la ressource (alternative aux comptes de service non MFA)**

Si votre compte ne nécessite pas le MFA et n'est pas soumis aux politiques d'accès conditionnel qui imposent la connexion interactive, vous pouvez ignorer le flux du navigateur et échanger directement les informations d'identification de l'utilisateur contre un jeton d'actualisation. Remplacez les espaces réservés par vos valeurs, y compris l'UPN et le mot de passe de l'utilisateur.

```
curl -s -X POST \
  "https://login.microsoftonline.com/{{TENANT_ID}}/oauth2/v2.0/token" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grant_type=password" \
  -d "client_id={{CLIENT_ID}}" \
  -d "client_secret={{CLIENT_SECRET}}" \
  -d "username={{USER_UPN}}" \
  -d "password={{USER_PASSWORD}}" \
  -d "scope=https://graph.microsoft.com/.default offline_access"
```

La réponse inclut un`refresh_token`. Enregistrez-le pour l'étape 5. Ce flux ne fonctionne pas pour les comptes sur lesquels la MFA est appliquée ; utilisez plutôt le flux de code d'autorisation ci-dessus.

## Étape 5 : Création du secret du Gestionnaire de Secrets
<a name="kb-managed-onedrive-oauth2-step5"></a>

Stockez les informations d'identification dans un AWS Secrets Manager secret avec les paires clé-valeur suivantes :
+ `clientId`— l'identifiant de l'application (client) indiqué à l'étape 1.
+ `clientSecret`— la valeur secrète du client obtenue à l'étape 3.
+ `refreshToken`— le jeton d'actualisation obtenu à l'étape 4.

```
{
    "clientId": "{{your-client-id}}",
    "clientSecret": "{{your-client-secret}}",
    "refreshToken": "{{your-refresh-token}}"
}
```

Créez le secret avec AWS Command Line Interface :

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

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

**Note**  
Le `OAUTH2` connecteur lit le jeton d'actualisation une fois à partir de votre code secret et le réutilise à chaque synchronisation. Il n'enregistre pas la valeur modifiée renvoyée par Microsoft. Prévoyez de créer un nouveau jeton d'actualisation (étape 4) et de mettre à jour le `refreshToken` champ de votre code secret avant l'expiration du code existant. Si vous ne mettez pas à jour le secret à temps, les synchronisations échouent avec une erreur d'actualisation du jeton tant que vous ne le faites pas.

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

Après avoir enregistré le secret, créez la source de données avec la `authType` valeur définie sur`OAUTH2`. Vous ne fournissez pas de certificat pour cette méthode. Consultez [Connecter une source OneDrive de données](kb-managed-ds-onedrive-connect.md).