

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Configurar la autenticación OAuth 2.0 para OneDrive
<a name="kb-managed-onedrive-oauth2-setup"></a>

**La autenticación OAuth 2.0 (`OAUTH2`) se autentica con un identificador de cliente de la aplicación y un secreto, junto con un token de actualización delegada.** El conector usa el token de actualización para obtener los tokens de acceso que rastrean el contenido en el contexto delegado del usuario que ha iniciado sesión. La fuente de datos incluye el OneDrive contenido al que el usuario puede acceder: su propia unidad, además de cualquier unidad que haya compartido con él o a la que tenga acceso de administrador. SharePoint Las unidades a las que el usuario que ha iniciado sesión no puede acceder se omiten de forma silenciosa.

**importante**  
Lo recomendamos [Configurar la autenticación de Microsoft Entra App ID para OneDrive](kb-managed-onedrive-entra-setup.md) para la mayoría de las fuentes de datos. La autenticación OAuth 2.0 tiene las siguientes limitaciones:  
Solo rastrea el OneDrive contenido al que puede acceder el usuario que ha iniciado sesión (su propia unidad de disco, además de cualquier unidad que haya compartido con él o a la que tenga acceso de administrador). SharePoint Las unidades a las que el usuario no puede acceder se omiten de forma silenciosa. Para rastrear todos los usuarios de OneDrive tu inquilino de manera uniforme, usa la autenticación Microsoft Entra App ID.
Requiere un token de actualización, que se obtiene mediante un único inicio de sesión de usuario (paso 4).
Los tokens de actualización tienen una Microsoft-side vida útil limitada. Cuando el token de actualización caduca o se revoca, las sincronizaciones fallan hasta que obtengas uno nuevo y actualices el secreto.
No admite el control de acceso a nivel de documento (ACL). Para filtrar los resultados de las consultas por permisos de usuario, utilice la autenticación Microsoft Entra App ID.

## Requisitos previos
<a name="kb-managed-onedrive-oauth2-prereqs"></a>
+ Acceso de administrador de Microsoft Entra ID para registrar una aplicación, conceder el consentimiento del administrador y crear un secreto de cliente.
+ Una cuenta de usuario de Microsoft 365 que tiene acceso al OneDrive contenido que quieres rastrear. Inicia sesión como este usuario una vez para obtener el token de actualización.
+ Su ID de inquilino de Microsoft 365.

## Paso 1: Registrar la aplicación en Microsoft Entra ID
<a name="kb-managed-onedrive-oauth2-step1"></a>

1. Inicie sesión en el [Centro de administración de Microsoft Entra](https://entra.microsoft.com/).

1. En el menú de navegación de la izquierda, expande **Entra ID** y selecciona **Registros de aplicaciones.**

1. Selecciona **Nuevo registro**.

1. En **Nombre**, introduzca un nombre descriptivo, como`bedrock-onedrive-oauth2`.

1. Para los **tipos de cuentas compatibles**, selecciona **Solo cuentas de este directorio organizativo (arrendatario único)**.

1. En **URI de redireccionamiento**, selecciona **Web** como plataforma e ingresa`http://localhost:53672/callback`. Este URI de redireccionamiento se utiliza cuando se obtiene un token de actualización en el paso 4. Puedes usar cualquier puerto localhost libre; si cambias el puerto aquí, usa el mismo puerto en el paso 4.

1. Elija **Registro**.

1. En la página de **descripción general** de la aplicación, registre el ID de la **aplicación (cliente) y el ID** del **directorio (inquilino)**.

## Paso 2: Añade los permisos de la API y otorga el consentimiento del administrador
<a name="kb-managed-onedrive-oauth2-step2"></a>

La autenticación de OAuth 2.0 utiliza un inicio de sesión delegado, por lo que la aplicación necesita permisos **delegados**, no permisos de aplicación.

1. **En el registro de tu aplicación, selecciona **Permisos de API y, a continuación, Añadir** un permiso.**

1. Selecciona **Microsoft Graph** y, a continuación, **Permisos delegados**.

1. Seleccione los siguientes permisos delegados y, a continuación, elija **Agregar** permisos:
   + `Files.Read.All`— lee los archivos a los que puede acceder el usuario.
   + `Sites.Read.All`— leer los OneDrive sitios a los que puede acceder el usuario.
   + `User.Read.All`— identificar al usuario.
   + `offline_access`— obligatorio para que el inicio de sesión devuelva un token de actualización.

1. En la página de **permisos de la API**, selecciona **Otorgar el consentimiento de administrador a [tu organización]** y confirma.

## Paso 3: Crea un secreto de cliente
<a name="kb-managed-onedrive-oauth2-step3"></a>

1. En el registro de la aplicación, selecciona **Certificados y secretos**, luego Secretos de **cliente** y, por último, **Nuevo secreto de cliente**.

1. Introduce una descripción, selecciona una fecha de caducidad y selecciona **Añadir**.

1. Registre el **valor** secreto inmediatamente; solo se muestra una vez. Registre el **valor**, no el **identificador secreto**.

## Paso 4: Obtenga un token de actualización
<a name="kb-managed-onedrive-oauth2-step4"></a>

El conector necesita un token de actualización, que se obtiene mediante un único inicio de sesión de usuario. El siguiente procedimiento utiliza el flujo de códigos de autorización de OAuth 2.0 con una redirección de localhost, que funciona para los usuarios con autenticación multifactor (MFA). Para las cuentas de servicio que no son de MFA, al final se proporciona una alternativa más sencilla.

**Flujo de códigos de autorización (recomendado)**

1. **Cree la URL de inicio de sesión.** Sustituya los marcadores de posición por su ID de inquilino y el ID de la aplicación (cliente) del paso 1. Si usó un puerto localhost diferente en el paso 1, actualícelo `redirect_uri` para que coincida.

   ```
   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. **Inicia sesión.** Abre la URL en un navegador e inicia sesión como el usuario de Microsoft 365 cuyo acceso deseas que utilice el conector. Completa cualquier desafío de MFA.

   A continuación, el navegador redirige a la URL del servidor local, que no se carga (esto es de esperar porque no hay ninguna escucha en ese puerto). La barra de direcciones del navegador ahora contiene el URI de redireccionamiento seguido de un `code` parámetro, por ejemplo:. `http://localhost:53672/callback?code=0.AXoA...&session_state=...`

1. **Copia el código de autorización.** En la barra de direcciones, copia el valor del `code` parámetro (todo lo que esté entre `code=` y el siguiente`&`). El código es válido durante unos minutos; complete el paso 4 inmediatamente.

1. **Cambia el código por un token de actualización.** Sustituya los marcadores de posición por su ID de inquilino, ID de aplicación (cliente), el secreto de cliente del paso 3 y el código de autorización que acaba de copiar.

   ```
   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 respuesta incluye un`refresh_token`. Grábelo para el paso 5.

**Credenciales de contraseña del propietario del recurso (alternativa para cuentas de servicio que no son de MFA)**

Si tu cuenta no requiere MFA y no está sujeta a las políticas de acceso condicional que exigen el inicio de sesión interactivo, puedes saltarte el flujo del navegador e intercambiar directamente las credenciales del usuario por un token de actualización. Sustituya los marcadores de posición por sus valores, incluidos el UPN y la contraseña del usuario.

```
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 respuesta incluye un. `refresh_token` Grábelo para el paso 5. Este flujo no funciona para las cuentas a las que se aplica el MFA; en su lugar, utilice el flujo de códigos de autorización anterior.

## Paso 5: Crea el secreto de Secrets Manager
<a name="kb-managed-onedrive-oauth2-step5"></a>

Guarde las credenciales en un AWS Secrets Manager secreto con los siguientes pares clave-valor:
+ `clientId`— el ID de la aplicación (cliente) del paso 1.
+ `clientSecret`— el valor secreto del cliente del paso 3.
+ `refreshToken`— el token de actualización del paso 4.

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

Crea el secreto con AWS Command Line Interface:

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

Registre el ARN secreto de la respuesta. Se usa como fuente `secretArn` de datos.

**nota**  
El `OAUTH2` conector lee el token de actualización una vez de tu secreto y lo reutiliza en cada sincronización; no guarda el valor rotado que devuelve Microsoft. Planifica acuñar un nuevo token de actualización (paso 4) y actualizar el `refreshToken` campo de tu secreto antes de que caduque el actual. Si no actualizas el secreto a tiempo, las sincronizaciones fallarán y se producirá un error al actualizar el token hasta que lo hagas.

## Siguientes pasos
<a name="kb-managed-onedrive-oauth2-next"></a>

Después de almacenar el secreto, cree la fuente de datos con el valor establecido en. `authType` `OAUTH2` No se proporciona un certificado para este método. Consulte [Conectar una fuente OneDrive de datos](kb-managed-ds-onedrive-connect.md).