

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Configurare l'autenticazione OAuth 2.0 per OneDrive
<a name="kb-managed-onedrive-oauth2-setup"></a>

**L'autenticazione OAuth 2.0 (`OAUTH2`) si autentica con un ID client e un segreto dell'applicazione insieme a un token di aggiornamento delegato.** Il connettore utilizza il token di aggiornamento per ottenere token di accesso che eseguono la scansione del contenuto nel contesto delegato dell'utente che ha effettuato l'accesso. L'origine dati copre i OneDrive contenuti a cui l'utente può accedere: la propria unità, oltre a qualsiasi unità condivisa con lui o a cui ha accesso amministrativo. SharePoint Le unità a cui l'utente che ha effettuato l'accesso non può accedere vengono ignorate automaticamente.

**Importante**  
Lo consigliamo [Configurare l'autenticazione Microsoft Entra App ID per OneDrive](kb-managed-onedrive-entra-setup.md) per la maggior parte delle fonti di dati. L'autenticazione OAuth 2.0 presenta le seguenti limitazioni:  
Esegue la scansione solo OneDrive dei contenuti a cui può accedere l'utente che ha effettuato l'accesso (la propria unità, più tutte le unità condivise con lui o per le quali dispone dell'accesso di amministratore). SharePoint Le unità a cui l'utente non può accedere vengono ignorate automaticamente. Per eseguire la scansione uniforme di tutti gli utenti del OneDrive tenant, utilizza l'autenticazione Microsoft Entra App ID.
Richiede un token di aggiornamento, che si ottiene tramite un unico accesso utente (Fase 4).
I token di aggiornamento hanno una durata limitata. Microsoft-side Quando il token di aggiornamento scade o viene revocato, le sincronizzazioni falliscono finché non ne ottieni uno nuovo e aggiorni il segreto.
Non supporta il controllo degli accessi a livello di documento (ACL). Per filtrare i risultati delle query in base alle autorizzazioni utente, utilizza l'autenticazione Microsoft Entra App ID.

## Prerequisiti
<a name="kb-managed-onedrive-oauth2-prereqs"></a>
+ Accesso da amministratore con ID Microsoft Entra per registrare un'applicazione, concedere il consenso dell'amministratore e creare un segreto client.
+ Un account utente Microsoft 365 che ha accesso al OneDrive contenuto che desideri sottoporre a scansione. Accedi come utente una volta per ottenere il token di aggiornamento.
+ L’ID del tenant Microsoft 365.

## Passaggio 1: registrare l'applicazione in Microsoft Entra ID
<a name="kb-managed-onedrive-oauth2-step1"></a>

1. Accedi al [centro di amministrazione di Microsoft Entra](https://entra.microsoft.com/).

1. Nella barra di navigazione a sinistra, espandi **Entra ID** e scegli **Registrazioni app**.

1. Scegli **Nuova registrazione**.

1. Per **Nome**, inserisci un nome descrittivo, ad esempio`bedrock-onedrive-oauth2`.

1. Per i **tipi di account supportati**, seleziona **Account solo in questa directory organizzativa (tenant singolo)**.

1. In **Redirect URI**, seleziona **Web** come piattaforma e inserisci. `http://localhost:53672/callback` Utilizzate questo URI di reindirizzamento quando ottenete un token di aggiornamento nel passaggio 4. Puoi usare qualsiasi porta localhost gratuita; se cambi la porta qui, usa la stessa porta nel passaggio 4.

1. Scegli **Registrati**.

1. Nella pagina **Panoramica** dell'applicazione, registrate l'ID **dell'applicazione (client) e l'ID** della **directory (tenant)**.

## Passaggio 2: aggiungere le autorizzazioni API e concedere il consenso dell'amministratore
<a name="kb-managed-onedrive-oauth2-step2"></a>

L'autenticazione OAuth 2.0 utilizza un accesso delegato, quindi l'applicazione necessita di autorizzazioni **delegate, non di autorizzazioni** dell'applicazione.

1. **Nella registrazione dell'app, scegli Autorizzazioni **API, quindi Aggiungi un'autorizzazione**.**

1. Scegli **Microsoft Graph**, quindi **Autorizzazioni delegate**.

1. **Seleziona le seguenti autorizzazioni delegate, quindi scegli Aggiungi autorizzazioni:**
   + `Files.Read.All`— leggi i file a cui l'utente può accedere.
   + `Sites.Read.All`— leggi i OneDrive siti a cui l'utente può accedere.
   + `User.Read.All`— identificare l'utente.
   + `offline_access`— obbligatorio in modo che l'accesso restituisca un token di aggiornamento.

1. Nella pagina delle **autorizzazioni API**, scegli **Concedi il consenso dell'amministratore per [la tua organizzazione]** e conferma.

## Passaggio 3: Crea un segreto per il cliente
<a name="kb-managed-onedrive-oauth2-step3"></a>

1. Nella registrazione dell'app, scegli **Certificati e segreti**, quindi **Segreti client**, quindi **Nuovo segreto client**.

1. Inserisci una descrizione, scegli una scadenza e scegli **Aggiungi**.

1. Registra immediatamente il **valore** segreto: viene mostrato solo una volta. Registra il **valore**, non l'**ID segreto**.

## Passaggio 4: ottenere un token di aggiornamento
<a name="kb-managed-onedrive-oauth2-step4"></a>

Il connettore necessita di un token di aggiornamento, che si ottiene tramite un unico accesso utente. La procedura seguente utilizza il flusso del codice di autorizzazione OAuth 2.0 con un reindirizzamento localhost, che funziona per gli utenti con autenticazione a più fattori (MFA). Per gli account di servizio non MFA, alla fine viene fornita un'alternativa più semplice.

**Flusso del codice di autorizzazione (consigliato)**

1. **Crea l'URL di accesso.** Sostituisci i segnaposto con il tuo ID tenant e l'ID dell'applicazione (client) del passaggio 1. Se hai utilizzato una porta localhost diversa nel passaggio 1, aggiornala in modo che corrisponda. `redirect_uri`

   ```
   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. **Accedi.** Apri l'URL in un browser e accedi come utente Microsoft 365 di cui desideri utilizzare l'accesso tramite il connettore. Completa qualsiasi sfida MFA.

   Il browser reindirizza quindi all'URL localhost, che non viene caricato (questo è previsto perché nulla è in ascolto su quella porta). La barra degli indirizzi del browser ora contiene l'URI di reindirizzamento seguito da un `code` parametro, ad esempio:. `http://localhost:53672/callback?code=0.AXoA...&session_state=...`

1. **Copia il codice di autorizzazione.** Dalla barra degli indirizzi, copia il valore del `code` parametro (tutto compreso tra `code=` e il successivo`&`). Il codice è valido per alcuni minuti; completa immediatamente il passaggio 4.

1. **Scambia il codice con un token di aggiornamento.** Sostituisci i segnaposto con il tuo ID tenant, l'ID dell'applicazione (client), il client secret della Fase 3 e il codice di autorizzazione che hai appena copiato.

   ```
   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 risposta include un. `refresh_token` Registralo per il passaggio 5.

**Credenziali della password del proprietario della risorsa (alternativa per gli account di servizio non MFA)**

Se il tuo account non richiede la MFA e non è soggetto alle politiche di accesso condizionale che impongono l'accesso interattivo, puoi saltare il flusso del browser e scambiare direttamente le credenziali dell'utente con un token di aggiornamento. Sostituisci i segnaposto con i tuoi valori, inclusi l'UPN e la password dell'utente.

```
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 risposta include un. `refresh_token` Registralo per il passaggio 5. Questo flusso non funziona per gli account con MFA applicata; utilizza invece il flusso di codice di autorizzazione sopra riportato.

## Passaggio 5: Creare il segreto di Secrets Manager
<a name="kb-managed-onedrive-oauth2-step5"></a>

Archivia le credenziali in un luogo Gestione dei segreti AWS segreto con le seguenti coppie chiave-valore:
+ `clientId`— l'ID dell'applicazione (client) del passaggio 1.
+ `clientSecret`— il valore segreto del client riportato nella Fase 3.
+ `refreshToken`— il token di aggiornamento dello Step 4.

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

Crea il segreto con: AWS Command Line Interface

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

Registra l'ARN segreto della risposta. Lo usi come fonte `secretArn` di dati.

**Nota**  
Il `OAUTH2` connettore legge il token di aggiornamento una volta dal tuo segreto e lo riutilizza per ogni sincronizzazione: non salva il valore ruotato restituito da Microsoft. Pianifica di creare un nuovo token di aggiornamento (Fase 4) e aggiorna il `refreshToken` campo del tuo segreto prima che scada quello esistente. Se non aggiorni il segreto in tempo, le sincronizzazioni falliranno con un errore di aggiornamento del token finché non lo fai.

## Fasi successive
<a name="kb-managed-onedrive-oauth2-next"></a>

Dopo aver memorizzato il segreto, crea l'origine dati con set to. `authType` `OAUTH2` Non viene fornito un certificato per questo metodo. Per informazioni, consulta [Connect una fonte di OneDrive dati](kb-managed-ds-onedrive-connect.md).