View a markdown version of this page

Configurare l' App-Only autenticazione Microsoft Entra ID per SharePoint - Amazon Bedrock

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' App-Only autenticazione Microsoft Entra ID per SharePoint

Microsoft Entra ID App-Only authentication (ENTRA_ID_APP_ONLY) è il metodo di autenticazione consigliato per un'origine SharePoint dati. Utilizza il flusso di credenziali client OAuth 2.0 (solo applicazioni): un'applicazione Microsoft Entra si autentica con un certificato, quindi non è necessario alcun accesso utente durante la scansione o durante la query. Questo è l'unico metodo di autenticazione che supporta il controllo degli accessi a livello di documento (ACL). Per un confronto con il OAUTH2_APP metodo alternativo, vedere. Metodi di autenticazione

Questa configurazione si estende su due sistemi, l'ID Microsoft Entra e il tuo AWS account, e il certificato è la credenziale che li unisce. Il connettore memorizza il certificato (chiave privata inclusa) come file PKCS #12 (.p12) in Amazon S3 e lo utilizza per firmare asserzioni di autenticazione a Microsoft; il certificato pubblico corrispondente viene caricato nella registrazione dell'applicazione Entra in modo che Microsoft possa convalidare tali asserzioni.

Accesso amministrativo richiesto

Questa configurazione richiede un amministratore Microsoft Entra ID (amministratore globale o amministratore del ruolo privilegiato) per registrare l'applicazione, configurare le autorizzazioni e concedere il consenso dell'amministratore. Se si utilizza l'ambito delle Sites.Selected autorizzazioni, è inoltre necessario che un SharePoint amministratore conceda l'accesso per sito. La tabella dei passaggi e dei ruoli di configurazione riportata di seguito identifica l'accesso richiesto per ogni passaggio.

Fasi e ruoli di configurazione

Questa procedura coinvolge sia un amministratore dell'ID Microsoft Entra che un AWS amministratore. A seconda della ripartizione delle responsabilità all'interno dell'organizzazione, è possibile che una o più persone completino questi passaggi. Utilizza la tabella seguente per identificare l'accesso richiesto da ogni fase.

Fasi di configurazione e accesso richiesto da ciascuna di esse
Fase Cosa fai Accesso necessario
1. Registra l'applicazione Crea la registrazione dell'app Entra e registra i relativi ID cliente e tenant. Amministratore ID Microsoft Entra (amministratore globale o amministratore dei ruoli privilegiati)
2. Aggiungi autorizzazioni e concedi il consenso Assegna le autorizzazioni dell'applicazione per la configurazione e concedi il consenso dell'amministratore. Amministratore Microsoft Entra ID
3. Genera il certificato Crea un certificato autofirmato e un pacchetto PKCS #12 (.p12) con OpenSSL. Chiunque disponga di un terminale locale (è richiesto OpenSSL)
4. Carica il certificato pubblico su Entra Aggiungi il certificato pubblico alle chiavi di registrazione dell'app. Amministratore Microsoft Entra ID
5. Concedi l'accesso per sito (solo) Sites.Selected Concedi all'app l'accesso a ciascun SharePoint sito tramite l'API Microsoft Graph. Amministratore Microsoft Entra ID
6. Carica il certificato su Amazon S3 Archivia il .p12 pacchetto in un bucket Amazon S3. AWS amministratore (Amazon S3)
7. Creazione del segreto Memorizza le credenziali in un AWS Secrets Manager luogo segreto. AWS amministratore (Secrets Manager)
8. Concedi al ruolo di servizio l'accesso al certificato Aggiungi le autorizzazioni di lettura di Amazon S3 al tuo ruolo di servizio della knowledge base. AWS amministratore (IAM)

Scegli la tua configurazione

Prima di iniziare, prendi due decisioni. Determinano quali autorizzazioni assegnare nella Fase 2 e come concedere l'accesso al sito.

  • Document-level controllo degli accessi (ACL): decidi se l'origine dati filtra i risultati delle query in base alle autorizzazioni di ciascun utente. SharePoint La scansione ACL richiede Microsoft Graph e autorizzazioni aggiuntive. SharePoint Non è possibile modificare questa impostazione dopo aver creato l'origine dati. Per informazioni dettagliate, vedi Document-level controlli di accesso.

  • Ambito di autorizzazione: decidi se l'applicazione può leggere tutti i SharePoint siti del tenant (tutti i siti, l'opzione più semplice) o solo i siti che concedi esplicitamente (l'opzione con il Sites.Selectedprivilegio minimo). Dopo Sites.Selected aver completato una concessione aggiuntiva per sito nella Fase 5, tutti i siti aggiunti in un secondo momento necessiteranno di una concessione specifica.

La combinazione di queste due scelte seleziona uno dei set di autorizzazioni nella sezione seguente.

Riferimento per le autorizzazioni

Assegna le autorizzazioni all'applicazione che corrispondono alla tua configurazione. Tutte le autorizzazioni sono autorizzazioni dell'applicazione (non delegate) e ognuna richiede il consenso dell'amministratore. Il connettore esegue l'autenticazione su due risorse Microsoft: Microsoft Graph (per enumerare i siti e, per gli ACL, per risolvere utenti e gruppi) e l'API SharePointREST (per leggere il contenuto del sito e, per gli ACL, le autorizzazioni a livello di elemento).

Importante

Quando aggiungi queste autorizzazioni nel portale Entra, scegli la scheda Autorizzazioni dell'applicazione, non Autorizzazioni delegate. App-only l'autenticazione utilizza le autorizzazioni dell'applicazione.

Seleziona la scheda relativa alla configurazione per visualizzare l'esatto Microsoft Graph e SharePoint le autorizzazioni da assegnare.

All sites, no ACLs
Tutti i siti, solo contenuti
"Hello, World!" Autorizzazione Scopo
Microsoft Graph Sites.Read.All Enumera e leggi tutti i siti. SharePoint
SharePoint Sites.Read.All Leggi il contenuto del sito tramite l'API REST. SharePoint
All sites, with ACLs
Tutti i siti, con ACL
"Hello, World!" Autorizzazione Scopo
Microsoft Graph Sites.Read.All Enumera e leggi tutti i siti. SharePoint
Microsoft Graph User.Read.All Risolvi gli utenti per gli ACL a livello di documento.
Microsoft Graph GroupMember.Read.All Risolvi l'appartenenza ai gruppi per gli ACL a livello di documento.
SharePoint Sites.FullControl.All Leggi le autorizzazioni a livello di elemento per la scansione degli ACL e verifica l'accesso al momento della query. Sites.Read.Allnon è sufficiente per questo controllo.
Sites.Selected, no ACLs
Sites.Selected, solo contenuto
"Hello, World!" Autorizzazione Scopo
Microsoft Graph Sites.Selected Accedi solo ai siti che concedi esplicitamente (Microsoft Graph).
SharePoint Sites.Selected Accedi solo ai siti che concedi esplicitamente (SharePoint REST). Concedi il read ruolo per sito nel passaggio 5.
Sites.Selected, with ACLs
Sites.Selected, con ACL
"Hello, World!" Autorizzazione Scopo
Microsoft Graph Sites.Selected Accedi solo ai siti che concedi esplicitamente (Microsoft Graph).
Microsoft Graph User.Read.All Risolvi gli utenti per gli ACL a livello di documento.
Microsoft Graph GroupMember.Read.All Risolvi l'appartenenza ai gruppi per gli ACL a livello di documento.
SharePoint Sites.Selected Accedi solo ai siti che concedi esplicitamente. Concedi il fullcontrol ruolo per sito nel passaggio 5 (necessario per leggere le autorizzazioni a livello di elemento per gli ACL).
Nota

Sites.FullControl.Allgarantisce un ampio accesso a tutti i siti del tenant. Se la tua organizzazione richiede il minimo privilegio, utilizza Sites.Selected e concedi l'accesso per sito nella Fase 5.

Valori raccolti durante la configurazione

I seguenti valori vengono creati o raccolti man mano che si eseguono i passaggi. Li usi quando crei l'origine dati. Per informazioni dettagliate, vedi Connect una fonte di SharePoint dati.

Valori di riferimento
Valore Creato in Usato per
ID dell’applicazione (client) Fase 1 Il segreto (clientId).
ID della directory (tenant) Fase 1 La fonte tenantId dei dati.
Certificato: PKCS #12 bundle (.p12) e relativa password Fase 3 Il pacchetto (certificato più chiave privata) viene caricato su Amazon S3 (Fase 6); la password viene memorizzata nel file segreto certificatePassword ().
Certificato: certificato pubblico () .cer Fase 3 La metà pubblica dello stesso certificato, caricata nella registrazione dell'app Entra (Fase 4).
Nome e chiave del bucket Amazon S3 Fase 6 La fonte dei dati. certificateS3Path
ARN del segreto Fase 7 La fonte dei datisecretArn.

Passaggio 1: registrare l'applicazione in Microsoft Entra ID

  1. Accedi al centro di amministrazione di Microsoft Entra.

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

  3. Scegli Nuova registrazione.

  4. Per Nome, inserisci un nome descrittivo, ad esempiobedrock-sharepoint-connector.

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

  6. Lascia vuoto l'URI di reindirizzamento. Non è necessario un URI di reindirizzamento perché l'applicazione utilizza il flusso di credenziali del cliente, non un flusso di accesso interattivo.

  7. Scegli Registrati.

  8. Nella pagina Panoramica dell'applicazione, registrate l'ID dell'applicazione (client) e l'ID della directory (tenant). Ti serviranno entrambi in seguito.

Passaggio 2: aggiungi le autorizzazioni API e concedi il consenso dell'amministratore

Aggiungi le autorizzazioni per la tua configurazione da. Riferimento per le autorizzazioni

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

  2. Scegli Microsoft Graph, quindi Autorizzazioni dell'applicazione. Cerca e seleziona ogni autorizzazione di Microsoft Graph per la tua configurazione, quindi scegli Aggiungi autorizzazioni.

  3. Scegli nuovamente Aggiungi un'autorizzazione. Scegli SharePoint(in Microsoft API), quindi Autorizzazioni dell'applicazione. Seleziona ogni SharePoint autorizzazione per la tua configurazione, quindi scegli Aggiungi autorizzazioni.

  4. Nella pagina delle autorizzazioni API, scegli Concedi il consenso dell'amministratore per [la tua organizzazione] e conferma. Senza il consenso dell'amministratore, l'applicazione non può accedere ai SharePoint dati.

Nota

L' App-Only autenticazione con ID Microsoft Entra utilizza il certificato (dal passaggio 3) come credenziale, quindi non viene creato un client secret per questa applicazione.

Fase 3: Generare il certificato di autenticazione

Genera un certificato autofirmato e impacchettalo come pacchetto PKCS #12 (.p12). Il pacchetto contiene sia il certificato che la relativa chiave privata, protetta da una password. Carichi il certificato pubblico su Entra (Fase 4) e il .p12 pacchetto su Amazon S3 (Fase 6). Seleziona la scheda del tuo sistema operativo per visualizzare i comandi.

Nota

Amazon Bedrock legge la chiave privata dal .p12 pacchetto per firmare le asserzioni di autenticazione, quindi il pacchetto deve essere protetto da password e archiviato in modo sicuro. Scegli una password sicura e casuale: la memorizzi in modo segreto come nel passaggio 7. certificatePassword

Linux or macOS (OpenSSL)

Genera una chiave privata e un certificato autofirmato

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

Package del certificato e della chiave come pacchetto PKCS #12 (.p12)

Immettete una password di esportazione sicura quando richiesto. Registrala per il passaggio 7.

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

Ora hai tre file: la chiave privata (private_key.pem), il certificato pubblico (certificate.cer) e il bundle (certificate.p12). Carichi il certificato pubblico su Entra nella fase 4 e il .p12 pacchetto su Amazon S3 nella fase 6.

Windows (PowerShell)

Genera un certificato autofirmato

I seguenti PowerShell comandi generano un certificato autofirmato RSA a 2048 bit con un periodo di validità di un anno e lo archiviano nell'archivio certificati dell'utente corrente. Sostituiscila your-password con una password sicura e casuale: la memorizzi nell'area segreta come nel passaggio 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)

Esporta il certificato pubblico

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

Esporta il pacchetto PKCS #12 (.p12)

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

Ora avete due file: il certificato pubblico (certificate.cer) e il bundle (). certificate.p12 Carichi il certificato pubblico su Entra nella fase 4 e il .p12 pacchetto su Amazon S3 nella fase 6.

Importante

Archivia il .p12 pacchetto in Amazon S3 (non .pem nel file .cer or). Il pacchetto contiene la chiave privata che Amazon Bedrock utilizza per l'autenticazione. Document-level il controllo degli accessi (ACL) richiede il formato. .p12 Per la scansione dei soli contenuti senza ACL, puoi invece archiviare un PEM-encoded certificato; poiché .p12 funziona per ogni configurazione, questa guida lo utilizza ovunque. .p12

Nota

Per impostazione predefinita, il certificato è valido per un anno. Un certificato scaduto causa il fallimento di tutte le sincronizzazioni, quindi ruota il certificato prima che scada. Per modificare il periodo di validità, modifica l'-daysopzione (OpenSSL) o -NotAfter l'argomento (). PowerShell Per le fasi di rotazione, vedere. Ruota il certificato

Fase 4: Caricare il certificato pubblico su Entra

  1. Nella registrazione dell'app, scegli Certificati e segreti, quindi la scheda Certificati.

  2. Scegli Carica certificato e seleziona il certificate.cer file che hai generato nella Fase 3 (solo il certificato pubblico: non caricare mai il .p12 pacchetto o la chiave privata su Entra).

  3. Scegliere Aggiungi.

Fase 5 (Sites.Selected solo): concedere l'accesso per sito

Nota

Questo passaggio si applica solo se hai scelto l'ambito di Sites.Selected autorizzazione nel passaggio 2. Se hai utilizzato l'ambito relativo a tutti i siti (Sites.Read.AlloSites.FullControl.All), vai a. Fase 6: caricare il certificato su Amazon S3

ConSites.Selected, concedi all'applicazione del connettore l'accesso a ciascun SharePoint sito individualmente tramite l'API Microsoft Graph. Ciò richiede un'applicazione temporanea separata che contenga Sites.FullControl.All e venga utilizzata solo per eseguire le concessioni. Amazon Bedrock non vede mai questa applicazione temporanea o le relative credenziali.

  1. Crea una domanda di concessione temporanea. Nel centro di amministrazione Entra, registra una seconda applicazione (ad esempiobedrock-sharepoint-granter) come tenant singolo senza URI di reindirizzamento. Aggiungi l'autorizzazione dell'Sites.FullControl.Allapplicazione Microsoft Graph, concedi il consenso dell'amministratore e crea un segreto client. Registra l'ID client e il valore segreto.

  2. Ottieni un token di accesso per la domanda di concessione. Sostituisci i segnaposto con l'ID cliente e il segreto dell'applicazione concedente e il tuo ID tenant.

    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 risposta contiene un. access_token Usalo come token portante nei comandi successivi.

  3. Risolvi ogni URL del sito con un ID del sito. Utilizza il nome host del sito e il percorso relativo al server.

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

    Il id campo nella risposta è l'ID del sito.

  4. Concedi all'applicazione del connettore l'accesso al sito. readUtilizzatelo per la scansione del solo contenuto o fullcontrol per la scansione ACL. Sostituisci CONNECTOR_CLIENT_ID con l'ID dell'applicazione (client) del passaggio 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. Ripeti i comandi resolve-and-grant per ogni sito che includi nell'origine dati. Al termine, puoi eliminare la domanda di concessione temporanea; le sovvenzioni per sito rimangono valide.

Importante

Per-site le sovvenzioni non sono retroattive. Se aggiungi un sito all'origine dati in un secondo momento, concedi all'applicazione Connector l'accesso a quel sito prima della sincronizzazione successiva, altrimenti il suo contenuto non verrà sottoposto a scansione.

Fase 6: caricare il certificato su Amazon S3

Carica il .p12 pacchetto dalla Fase 3 in un bucket Amazon S3 nella AWS stessa regione della tua knowledge base. Registra il nome e la chiave del bucket: li usi come fonte di dati. certificateS3Path

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

Ti consigliamo di abilitare la crittografia lato server sull'oggetto del certificato e di limitare il bucket ai principali che ne hanno bisogno. Il pacchetto contiene la chiave privata.

Passaggio 7: Creare il segreto di Secrets Manager

Memorizza le credenziali in un luogo AWS Secrets Manager segreto. Per l' App-Only autenticazione Entra ID, includi le seguenti coppie chiave-valore:

  • clientId(obbligatorio) — l'ID dell'applicazione (client) della Fase 1.

  • certificatePassword(consigliato): la password impostata nel .p12 pacchetto nel passaggio 3. Vedi la nota che segue.

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

Crea il segreto con AWS Command Line Interface:

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

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

Nota

Imposta certificatePassword la password che hai usato quando hai creato il .p12 pacchetto nel passaggio 3. Se ometti questo campo, Amazon Bedrock apre il pacchetto utilizzando l'ID client dell'applicazione come password, quindi il pacchetto deve essere stato creato con l'ID client come password. Ti consigliamo invece di impostare sempre una password esplicita ad alta entropia e di archiviare la chiave privata in modo sicuro.

Nota

Utilizzare invece un certificato PEM. Questa guida utilizza un .p12 pacchetto, che funziona per ogni configurazione. Se esegui solo la scansione dei contenuti (senza controllo degli accessi a livello di documento), puoi invece utilizzare un certificato PEM. In tal caso, carica solo il certificato pubblico su Amazon S3 (non un .p12 pacchetto) e archivia la chiave privata nel file segreto privateKey (PKCS #8 non crittografato con codifica Base64, senza righe di intestazione) al posto di: certificatePassword

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

Fase 8: concedere al ruolo di servizio l'accesso al certificato

Il ruolo del servizio della Knowledge Base deve essere in grado di leggere l'oggetto del certificato da Amazon S3. Aggiungi la seguente dichiarazione alla politica di autorizzazione del ruolo, sostituendo il nome e la chiave del bucket con i tuoi valori.

{ "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 policy consente inoltre l'accesso in lettura a un .metadata.json file opzionale insieme al certificato. Amazon Bedrock non richiede questo file; l'inclusione dell'autorizzazione previene eventuali errori di accesso.

Se l'oggetto del certificato è crittografato con una chiave AWS KMS

Il comando upload in Fase 6: caricare il certificato su Amazon S3 utilizza la S3-managed crittografia Amazon (AES256), che non richiede autorizzazioni aggiuntive. Se invece si crittografa l'oggetto certificato con la crittografia lato server di Amazon S3 utilizzando una chiave KMS gestita dal cliente SSE-KMS (), anche il ruolo di servizio kms:Decrypt necessita dell'autorizzazione su quella chiave e la politica della chiave deve consentire al ruolo di utilizzarla. Gli oggetti crittografati con la aws/s3 chiave AWS gestita non richiedono questa concessione aggiuntiva.

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

È richiesto solo l'accesso in letturakms:Decrypt. Per ulteriori informazioni, consulta Utilizzo della crittografia lato server con le chiavi AWS KMS (). SSE-KMS

Per il set completo di autorizzazioni per i ruoli del servizio della Knowledge Base, vedere. Autorizzazioni per accedere alle origini dati

Fasi successive

Ora hai tutto ciò di cui hai bisogno per creare l'origine dati: l'ARN segreto, il tuo ID tenant e la posizione Amazon S3 del certificato. Per creare l'origine SharePoint dati con Console di gestione AWS o l'API, consulta. Connect una fonte di SharePoint dati

Importante

Per ENTRA_ID_APP_ONLY l'autenticazione, devi specificare certificateS3Path quando crei l'origine dati, anche quando gli ACL sono disabilitati. Un'origine SharePoint dati creata con questo tipo di autenticazione e senza certificato ha esito negativo.