View a markdown version of this page

Configurar la App-Only autenticación de Microsoft Entra ID para SharePoint - Amazon Bedrock

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 App-Only autenticación de Microsoft Entra ID para SharePoint

La App-Only autenticación Microsoft Entra ID (ENTRA_ID_APP_ONLY) es el método de autenticación recomendado para una fuente SharePoint de datos. Utiliza el flujo de credenciales de cliente de OAuth 2.0 (solo para aplicaciones): una aplicación Microsoft Entra se autentica con un certificado, por lo que el usuario no tiene que iniciar sesión en el momento del rastreo o de la consulta. Este es el único método de autenticación que admite el control de acceso (ACL) a nivel de documento. Para ver una comparación con el OAUTH2_APP método alternativo, consulte. Métodos de autenticación

Esta configuración abarca dos sistemas (Microsoft Entra ID y tu AWS cuenta) y el certificado es la credencial que los une. El conector almacena el certificado (incluida la clave privada) como un archivo PKCS #12 (.p12) en Amazon S3 y lo utiliza para firmar las afirmaciones de autenticación en Microsoft; el certificado público correspondiente se carga en el registro de la aplicación Entra para que Microsoft pueda validar esas afirmaciones.

Se requiere acceso administrativo

Esta configuración requiere un administrador de Microsoft Entra ID (administrador global o administrador de rol privilegiado) para registrar la aplicación, configurar los permisos y conceder el consentimiento del administrador. Si utiliza el ámbito de los Sites.Selected permisos, también necesitará un SharePoint administrador que conceda el acceso por sitio. La siguiente tabla de pasos y funciones de configuración identifica el acceso necesario para cada paso.

Pasos y funciones de configuración

Este procedimiento implica tanto a un administrador de Microsoft Entra ID como a un AWS administrador. Según cómo se dividan las responsabilidades en la organización, una o varias personas pueden completar estos pasos. Utilice la siguiente tabla para identificar el acceso que requiere cada paso.

Los pasos de configuración y el acceso que requiere cada uno
Paso ¿Qué haces ¿Se necesita acceso
1. Registre la solicitud Cree el registro de la aplicación Entra y registre sus ID de cliente e inquilino. Administrador de Microsoft Entra ID (administrador global o administrador de rol privilegiado)
2. Añada permisos y otorgue el consentimiento Asigne los permisos de la aplicación para su configuración y otorgue el consentimiento del administrador. Administrador de Microsoft Entra ID
3. Genera el certificado Cree un certificado autofirmado y un paquete PKCS #12 (.p12) con OpenSSL. Cualquier persona con un terminal local (se requiere OpenSSL)
4. Suba el certificado público a Entra Agrega el certificado público a las claves de registro de la aplicación. Administrador de Microsoft Entra ID
5. Otorgue acceso por sitio (Sites.Selectedúnicamente) Conceda a la aplicación acceso a cada SharePoint sitio a través de la API de Microsoft Graph. Administrador de Microsoft Entra ID
6. Cargue el certificado en Amazon S3 Guarde el .p12 paquete en un depósito de Amazon S3. AWS administrador (Amazon S3)
7. Cree el secreto Guarde las credenciales en AWS Secrets Manager secreto. AWS administrador (Secrets Manager)
8. Conceda al rol de servicio acceso al certificado Añada permisos de lectura de Amazon S3 a su función de servicio de base de conocimientos. AWS administrador (IAM)

Elija su configuración

Antes de empezar, tome dos decisiones. Determinan qué permisos se asignan en el paso 2 y cómo se concede el acceso al sitio.

  • Document-level control de acceso (ACL): decida si la fuente de datos filtra los resultados de las consultas según los SharePoint permisos de cada usuario. El rastreo de ACL requiere SharePoint permisos y Microsoft Graph adicionales. No puede cambiar esta configuración después de crear la fuente de datos. Para obtener más información, consulte Document-level controles de acceso.

  • Alcance del permiso: decida si la aplicación puede leer todos los SharePoint sitios de su arrendatario (todos los sitios, la opción más sencilla) o solo los sitios que usted haya otorgado explícitamente (Sites.Selectedla opción con menos privilegios). Sites.SelectedSi completa una concesión adicional por sitio en el paso 5, cualquier sitio que añada más adelante necesitará su propia concesión.

La combinación de estas dos opciones selecciona uno de los conjuntos de permisos de la siguiente sección.

Referencia de permisos

Asigne los permisos de aplicación que coincidan con su configuración. Todos los permisos son permisos de aplicación (no delegados) y todos requieren el consentimiento del administrador. El conector se autentica en dos recursos de Microsoft: Microsoft Graph (para enumerar sitios y, en el caso de las ACL, para resolver usuarios y grupos) y la API SharePointREST (para leer el contenido del sitio y, en el caso de las ACL, los permisos a nivel de elemento).

importante

Cuando añada estos permisos al portal Entra, elija la pestaña Permisos de la aplicación, no los permisos delegados. App-only la autenticación utiliza los permisos de la aplicación.

Seleccione la pestaña de su configuración para ver los permisos exactos de Microsoft Graph y SharePoint los permisos que debe asignar.

All sites, no ACLs
Todos los sitios, solo el contenido
API Permiso Finalidad
Microsoft Graph Sites.Read.All Enumere y lea todos los SharePoint sitios.
SharePoint Sites.Read.All Lea el contenido del sitio a través de la API SharePoint REST.
All sites, with ACLs
Todos los sitios, con ACL
API Permiso Finalidad
Microsoft Graph Sites.Read.All Enumere y lea todos los SharePoint sitios.
Microsoft Graph User.Read.All Resuelva las ACL a nivel de documento de los usuarios.
Microsoft Graph GroupMember.Read.All Resuelva la pertenencia a grupos para las ACL a nivel de documento.
SharePoint Sites.FullControl.All Lea los permisos a nivel de elemento para el rastreo de las ACL y verifique el acceso en el momento de la consulta. Sites.Read.Allno es suficiente para esta comprobación.
Sites.Selected, no ACLs
Sites.Selected, solo contenido
API Permiso Finalidad
Microsoft Graph Sites.Selected Acceda solo a los sitios que haya concedido explícitamente (Microsoft Graph).
SharePoint Sites.Selected Acceda solo a los sitios que haya concedido de forma explícita (SharePoint REST). Otorgue la read función por sitio en el paso 5.
Sites.Selected, with ACLs
Sites.Selected, con ACL
API Permiso Finalidad
Microsoft Graph Sites.Selected Acceda solo a los sitios que haya concedido explícitamente (Microsoft Graph).
Microsoft Graph User.Read.All Resuelva las ACL a nivel de documento de los usuarios.
Microsoft Graph GroupMember.Read.All Resuelva la pertenencia a grupos para las ACL a nivel de documento.
SharePoint Sites.Selected Acceda solo a los sitios que haya concedido explícitamente. Otorgue el fullcontrol rol por sitio en el paso 5 (obligatorio para leer los permisos a nivel de elemento para las ACL).
nota

Sites.FullControl.Allotorga un amplio acceso a todos los sitios del arrendatario. Si su organización requiere privilegios mínimos, utilice Sites.Selected y conceda el acceso por sitio en el paso 5.

Valores que se recopilan durante la configuración

Los siguientes valores se crean o recopilan a medida que avanza en los pasos. Los usa al crear la fuente de datos. Para obtener más información, consulte Conectar una fuente SharePoint de datos.

Referencia de valores
Valor Creado en Utilizado para
ID de aplicación (cliente) Paso 1 El secreto (clientId).
ID de directorio (inquilino) Paso 1 La fuente de datostenantId.
Certificado: PKCS #12 bundle (.p12) y su contraseña Paso 3 El paquete (certificado más clave privada) se carga en Amazon S3 (paso 6); la contraseña se guarda en el secreto (certificatePassword).
Certificado: certificado público (.cer) Paso 3 La mitad pública del mismo certificado, cargada en el registro de la aplicación Entra (paso 4).
Nombre y clave del bucket de Amazon S3 Paso 6 La fuente de datoscertificateS3Path.
ARN del secreto Paso 7 La fuente de datossecretArn.

Paso 1: Registrar la aplicación en Microsoft Entra ID

  1. Inicie sesión en el Centro de administración de Microsoft Entra.

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

  3. Selecciona Nuevo registro.

  4. En Nombre, introduzca un nombre descriptivo, comobedrock-sharepoint-connector.

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

  6. Deje el URI de redireccionamiento en blanco. No se requiere un URI de redireccionamiento porque la aplicación usa el flujo de credenciales del cliente, no un flujo de inicio de sesión interactivo.

  7. Elija Registro.

  8. 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). Necesitará ambos más adelante.

Paso 2: Agrega los permisos de la API y otorga el consentimiento del administrador

Añada los permisos para su configuración desdeReferencia de permisos.

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

  2. Seleccione Microsoft Graph y, a continuación, Permisos de aplicación. Busque y seleccione cada permiso de Microsoft Graph para su configuración y, a continuación, elija Agregar permisos.

  3. Vuelva a seleccionar Añadir un permiso. Elija SharePoint(en API de Microsoft) y, a continuación, Permisos de aplicación. Seleccione cada SharePoint permiso para su configuración y, a continuación, elija Agregar permisos.

  4. En la página de permisos de la API, selecciona Otorgar el consentimiento de administrador a [tu organización] y confirma. Sin el consentimiento del administrador, la aplicación no puede acceder a SharePoint los datos.

nota

La App-Only autenticación Microsoft Entra ID utiliza el certificado (del paso 3) como credencial, por lo que no se crea un secreto de cliente para esta aplicación.

Paso 3: generar el certificado de autenticación

Genere un certificado autofirmado y empaquételo como un paquete PKCS #12 (.p12). El paquete contiene el certificado y su clave privada, protegidos por una contraseña. Debe cargar el certificado público en Entra (paso 4) y el .p12 paquete en Amazon S3 (paso 6). Seleccione la pestaña de su sistema operativo para ver los comandos.

nota

Amazon Bedrock lee la clave privada del .p12 paquete para firmar las afirmaciones de autenticación, por lo que el paquete debe estar protegido con contraseña y almacenado de forma segura. Elija una contraseña segura y aleatoria; guárdela en secreto como en el paso 7. certificatePassword

Linux or macOS (OpenSSL)

Genera una clave privada y un certificado autofirmado

openssl req -x509 -newkey rsa:2048 -keyout private_key.pem -out certificate.cer \ -days 365 -nodes \ -subj "/CN=bedrock-sharepoint-connector"

Package el certificado y la clave como un paquete PKCS #12 (.p12)

Introduzca una contraseña de exportación segura cuando se le pida. Grábala para el paso 7.

openssl pkcs12 -export -out certificate.p12 \ -inkey private_key.pem -in certificate.cer

Ahora tiene tres archivos: la clave privada (private_key.pem), el certificado público (certificate.cer) y el paquete (certificate.p12). El certificado público se carga en Entra en el paso 4 y el .p12 paquete en Amazon S3 en el paso 6.

Windows (PowerShell)

Genere un certificado autofirmado

Los siguientes PowerShell comandos generan un certificado autofirmado RSA de 2048 bits con un período de validez de un año y lo almacenan en el almacén de certificados del usuario actual. your-passwordSustitúyala por una contraseña segura y aleatoria; guárdela en secreto como en el paso 7. certificatePassword

$cert = New-SelfSignedCertificate ` -Subject "CN=bedrock-sharepoint-connector" ` -CertStoreLocation "Cert:\CurrentUser\My" ` -KeyAlgorithm RSA ` -KeyLength 2048 ` -KeyExportPolicy Exportable ` -NotAfter (Get-Date).AddYears(1)

Exporte el certificado público

Export-Certificate -Cert $cert -FilePath certificate.cer -Type CERT

Exporte el paquete PKCS #12 (.p12)

$password = ConvertTo-SecureString -String "your-password" -Force -AsPlainText Export-PfxCertificate -Cert $cert -FilePath certificate.p12 -Password $password

Ahora tiene dos archivos: el certificado público (certificate.cer) y el paquete (certificate.p12). El certificado público se carga en Entra en el paso 4 y el .p12 paquete en Amazon S3 en el paso 6.

importante

Guarde el .p12 paquete en Amazon S3 (no en el .cer archivo .pem or). El paquete contiene la clave privada que Amazon Bedrock utiliza para autenticarse. Document-level el control de acceso (ACL) requiere este formato. .p12 Para rastrear solo el contenido sin ACL, puede almacenar un PEM-encoded certificado; dado que .p12 funciona para todas las configuraciones, se utiliza en todas las secciones de esta guía. .p12

nota

De forma predeterminada, el certificado es válido durante un año. Un certificado caducado provoca errores en todas las sincronizaciones, así que rote el certificado antes de que caduque. Para cambiar el período de validez, ajuste la -days opción (OpenSSL) o -NotAfter el argumento (). PowerShell Para conocer los pasos de rotación, consulte. Gire el certificado

Paso 4: Cargue el certificado público a Entra

  1. En el registro de la aplicación, selecciona Certificados y secretos y, a continuación, selecciona la pestaña Certificados.

  2. Selecciona Cargar certificado y selecciona el certificate.cer archivo que generaste en el paso 3 (solo el certificado público; nunca subas el .p12 paquete o la clave privada a Entra).

  3. Elija Añadir.

Paso 5 (Sites.Selected solo): Concede acceso por sitio

nota

Este paso solo se aplica si eligió el alcance del Sites.Selected permiso en el paso 2. Si utilizó el ámbito de todos los sitios (Sites.Read.AlloSites.FullControl.All), vaya directamente aPaso 6: Cargue el certificado en Amazon S3.

ConSites.Selected, usted concede a su aplicación de conector acceso a cada SharePoint sitio de forma individual a través de la API de Microsoft Graph. Esto requiere una solicitud temporal independiente que contenga las subvenciones Sites.FullControl.All y se utilice únicamente para concederlas. Amazon Bedrock nunca ve esta solicitud temporal ni sus credenciales.

  1. Cree una solicitud de otorgante temporal. En el centro de administración de Entra, registre una segunda aplicación (por ejemplo,bedrock-sharepoint-granter) como usuario único sin URI de redireccionamiento. Agregue el permiso de la Sites.FullControl.All aplicación Microsoft Graph, otorgue el consentimiento del administrador y cree un secreto de cliente. Registre su ID de cliente y su valor secreto.

  2. Obtenga un token de acceso para la solicitud de concesión. Sustituya los marcadores de posición por el identificador de cliente y el secreto de la aplicación otorgante y por su identificador de inquilino.

    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=client_credentials" \ -d "client_id=GRANTER_CLIENT_ID" \ -d "client_secret=GRANTER_CLIENT_SECRET" \ -d "scope=https://graph.microsoft.com/.default"

    La respuesta contiene un. access_token Úsala como símbolo portador en los siguientes comandos.

  3. Convierte la URL de cada sitio en un ID de sitio. Usa el nombre de host del sitio y la ruta relativa al servidor.

    curl -s \ "https://graph.microsoft.com/v1.0/sites/contoso.sharepoint.com:/sites/engineering" \ -H "Authorization: Bearer ACCESS_TOKEN"

    El id campo de la respuesta es el ID del sitio.

  4. Conceda a la aplicación del conector acceso al sitio. Úselo read para rastrear solo el contenido o fullcontrol para rastrear las ACL. CONNECTOR_CLIENT_IDSustitúyalo por el ID de la aplicación (cliente) del paso 1.

    curl -s -X POST \ "https://graph.microsoft.com/v1.0/sites/SITE_ID/permissions" \ -H "Authorization: Bearer ACCESS_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "roles": ["fullcontrol"], "grantedToIdentities": [{ "application": { "id": "CONNECTOR_CLIENT_ID", "displayName": "bedrock-sharepoint-connector" } }] }'
  5. Repita los comandos resolve-and-grant para cada sitio que incluya en la fuente de datos. Cuando termine, puede eliminar la solicitud de concesión temporal; las concesiones por sitio permanecen en vigor.

importante

Per-site las subvenciones no son retroactivas. Si agrega un sitio a la fuente de datos más adelante, conceda a la aplicación de conexión acceso a ese sitio antes de la próxima sincronización o su contenido no se rastreará.

Paso 6: Cargue el certificado en Amazon S3

Sube el .p12 paquete del paso 3 a un depósito de Amazon S3 en la misma AWS región que tu base de conocimientos. Registra el nombre y la clave del bucket; úsalos como fuente de datoscertificateS3Path.

aws s3api put-object \ --bucket your-certificate-bucket \ --key certs/certificate.p12 \ --body certificate.p12 \ --server-side-encryption AES256
nota

Le recomendamos que habilite el cifrado del lado del servidor en el objeto de certificado y restrinja el depósito a las entidades principales que lo necesiten. El paquete contiene la clave privada.

Paso 7: Crea el secreto de Secrets Manager

Guarde las credenciales en AWS Secrets Manager secreto. Para la App-Only autenticación de Entra ID, incluye los siguientes pares clave-valor:

  • clientId(obligatorio): el ID de la aplicación (cliente) del paso 1.

  • certificatePassword(recomendado): la contraseña que configuraste en el .p12 paquete en el paso 3. Consulte la nota siguiente.

{ "clientId": "your-client-id", "certificatePassword": "your-certificate-password" }

Crea el secreto con AWS Command Line Interface:

aws secretsmanager create-secret \ --name bedrock-sharepoint-creds \ --secret-string file://secret.json

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

nota

certificatePasswordConfigúrelo con la contraseña que utilizó al crear el .p12 paquete en el paso 3. Si omite este campo, Amazon Bedrock abre el paquete con el ID de cliente de su aplicación como contraseña, por lo que el paquete debe haberse creado con el ID de cliente como contraseña. En su lugar, le recomendamos que establezca siempre una contraseña explícita y de alta entropía y que almacene la clave privada de forma segura.

nota

En su lugar, utilice un certificado PEM. En esta guía se utiliza un .p12 paquete que funciona para todas las configuraciones. Si solo rastrea el contenido (sin control de acceso a nivel de documento), puede usar un certificado PEM en su lugar. En ese caso, cargue solo el certificado público en Amazon S3 (no en un .p12 paquete) y almacene la clave privada en el secreto como privateKey (PKCS #8 sin cifrar y codificado en base64, sin líneas de encabezado) en lugar de: certificatePassword

{ "clientId": "your-client-id", "privateKey": "your-base64-pkcs8-private-key" }

Paso 8: Otorgue al rol de servicio acceso al certificado

Su función de servicio de base de conocimientos debe poder leer el objeto de certificado de Amazon S3. Añada la siguiente declaración a la política de permisos del rol y sustituya el nombre y la clave del bucket por sus valores.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "S3ListCertificateBucket", "Effect": "Allow", "Action": ["s3:ListBucket"], "Resource": ["arn:aws:s3:::your-certificate-bucket"], "Condition": { "StringEquals": { "aws:ResourceAccount": ["123456789012"] } } }, { "Sid": "S3GetCertificate", "Effect": "Allow", "Action": ["s3:GetObject"], "Resource": [ "arn:aws:s3:::your-certificate-bucket/certs/certificate.p12", "arn:aws:s3:::your-certificate-bucket/certs/certificate.p12.metadata.json" ], "Condition": { "StringEquals": { "aws:ResourceAccount": ["123456789012"] } } } ] }
nota

La política también permite el acceso de lectura a un .metadata.json archivo opcional junto con el certificado. Amazon Bedrock no requiere este archivo; si se incluye el permiso, se evitan errores de acceso si hay alguno.

Si el objeto de certificado está cifrado con una clave AWS KMS

El comando upload Paso 6: Cargue el certificado en Amazon S3 utiliza el S3-managed cifrado de Amazon (AES256), que no necesita permisos adicionales. Si, por el contrario, cifra el objeto de certificado con el cifrado del lado del servidor de Amazon S3 mediante una clave de KMS administrada por el cliente (SSE-KMS), el rol de servicio también necesita kms:Decrypt permiso sobre esa clave y la política de la clave debe permitir que el rol lo use. Los objetos cifrados con la aws/s3 clave AWS administrada no requieren esta concesión adicional.

{ "Sid": "KmsDecryptCertificate", "Effect": "Allow", "Action": ["kms:Decrypt"], "Resource": ["arn:aws:kms:us-west-2:123456789012:key/your-key-id"] }

Solo se requiere acceso de lecturakms:Decrypt. Para obtener más información, consulte Uso del cifrado del lado del servidor con claves AWS KMS () SSE-KMS.

Para ver el conjunto completo de permisos de rol de servicio de la base de conocimientos, consulte. Permisos de acceso a los orígenes de datos

Siguientes pasos

Ahora tiene todo lo que necesita para crear la fuente de datos: el ARN secreto, su ID de inquilino y la ubicación del certificado en Amazon S3. Para crear la fuente SharePoint de datos con la API Consola de administración de AWS o la API, consulteConectar una fuente SharePoint de datos.

importante

Para la ENTRA_ID_APP_ONLY autenticación, debe proporcionarlos certificateS3Path al crear la fuente de datos, incluso cuando las ACL estén deshabilitadas. Se produce un SharePoint error en una fuente de datos creada con este tipo de autenticación y sin ningún certificado.