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.
| 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.
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.
| 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
-
Inicie sesión en el Centro de administración de Microsoft Entra
. -
En el menú de navegación de la izquierda, expande Entra ID y selecciona Registros de aplicaciones.
-
Selecciona Nuevo registro.
-
En Nombre, introduzca un nombre descriptivo, como
bedrock-sharepoint-connector. -
Para los tipos de cuentas compatibles, selecciona Solo cuentas de este directorio organizativo (arrendatario único).
-
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.
-
Elija Registro.
-
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.
-
En el registro de la aplicación, selecciona Permisos de API y, a continuación, Añadir un permiso.
-
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.
-
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.
-
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
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
-
En el registro de la aplicación, selecciona Certificados y secretos y, a continuación, selecciona la pestaña Certificados.
-
Selecciona Cargar certificado y selecciona el
certificate.cerarchivo que generaste en el paso 3 (solo el certificado público; nunca subas el.p12paquete o la clave privada a Entra). -
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.
-
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 laSites.FullControl.Allaplicación Microsoft Graph, otorgue el consentimiento del administrador y cree un secreto de cliente. Registre su ID de cliente y su valor secreto. -
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. -
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: BearerACCESS_TOKEN"El
idcampo de la respuesta es el ID del sitio. -
Conceda a la aplicación del conector acceso al sitio. Úselo
readpara rastrear solo el contenido ofullcontrolpara 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: BearerACCESS_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "roles": ["fullcontrol"], "grantedToIdentities": [{ "application": { "id": "CONNECTOR_CLIENT_ID", "displayName": "bedrock-sharepoint-connector" } }] }' -
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 \ --bucketyour-certificate-bucket\ --keycerts/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.p12paquete 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 \ --namebedrock-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.