View a markdown version of this page

Mengatur App-Only otentikasi Microsoft Entra ID untuk SharePoint - Amazon Bedrock

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Mengatur App-Only otentikasi Microsoft Entra ID untuk SharePoint

Microsoft Entra ID App-Only authentication (ENTRA_ID_APP_ONLY) adalah metode otentikasi yang direkomendasikan untuk sumber data. SharePoint Ini menggunakan alur kredensial-klien OAuth 2.0 (khusus aplikasi): aplikasi Microsoft Entra mengautentikasi dengan sertifikat, jadi tidak ada login pengguna yang terlibat pada waktu crawl atau pada waktu kueri. Ini adalah satu-satunya metode otentikasi yang mendukung kontrol akses tingkat dokumen (ACL). Untuk perbandingan dengan OAUTH2_APP metode alternatif, lihatMetode autentikasi.

Pengaturan ini mencakup dua sistem — Microsoft Entra ID dan AWS akun Anda — dan sertifikat adalah kredensi yang mengikat mereka bersama-sama. Konektor menyimpan sertifikat (termasuk kunci pribadi) sebagai file PKCS #12 (.p12) di Amazon S3 dan menggunakannya untuk menandatangani pernyataan otentikasi ke Microsoft; sertifikat publik yang cocok diunggah ke pendaftaran aplikasi Entra sehingga Microsoft dapat memvalidasi pernyataan tersebut.

Diperlukan akses administratif

Pengaturan ini memerlukan administrator Microsoft Entra ID (Administrator Global atau Administrator Peran Istimewa) untuk mendaftarkan aplikasi, mengonfigurasi izin, dan memberikan persetujuan admin. Jika Anda menggunakan cakupan Sites.Selected izin, Anda juga memerlukan SharePoint administrator untuk memberikan akses per situs. Tabel langkah dan peran Pengaturan di bawah ini mengidentifikasi akses yang diperlukan untuk setiap langkah.

Langkah dan peran pengaturan

Prosedur ini melibatkan administrator Microsoft Entra ID dan AWS administrator. Bergantung pada bagaimana tanggung jawab dibagi dalam organisasi Anda, satu orang atau beberapa orang mungkin menyelesaikan langkah-langkah ini. Gunakan tabel berikut untuk mengidentifikasi akses yang dibutuhkan setiap langkah.

Langkah-langkah pengaturan dan akses yang dibutuhkan masing-masing
Langkah Apa yang Anda lakukan Diperlukan akses
1. Daftarkan aplikasi Buat pendaftaran aplikasi Entra dan catat ID klien dan penyewa. Administrator Microsoft Entra ID (Administrator Global atau Administrator Peran Istimewa)
2. Tambahkan izin dan berikan persetujuan Tetapkan izin aplikasi untuk konfigurasi Anda dan berikan persetujuan admin. Administrator Microsoft Entra ID
3. Hasilkan sertifikat Buat sertifikat yang ditandatangani sendiri dan bundel PKCS #12 (.p12) dengan OpenSSL. Siapa pun yang memiliki terminal lokal (OpenSSL diperlukan)
4. Unggah sertifikat publik ke Entra Tambahkan sertifikat publik ke kunci pendaftaran aplikasi. Administrator Microsoft Entra ID
5. Berikan akses per situs (hanya) Sites.Selected Berikan akses aplikasi ke setiap SharePoint situs melalui Microsoft Graph API. Administrator Microsoft Entra ID
6. Unggah sertifikat ke Amazon S3 Simpan .p12 bundel dalam ember Amazon S3. AWS administrator (Amazon S3)
7. Buat rahasianya Simpan kredensialnya secara rahasia. AWS Secrets Manager AWS administrator (Secrets Manager)
8. Berikan akses peran layanan ke sertifikat Tambahkan izin baca Amazon S3 ke peran layanan basis pengetahuan Anda. AWS administrator (IAM)

Pilih konfigurasi Anda

Sebelum memulai, buatlah dua keputusan. Mereka menentukan izin yang Anda tetapkan di Langkah 2 dan bagaimana Anda memberikan akses situs.

  • Document-level Access Control (ACL) — Tentukan apakah sumber data memfilter hasil kueri berdasarkan SharePoint izin masing-masing pengguna. Perayapan ACL memerlukan Microsoft Graph dan SharePoint izin tambahan. Anda tidak dapat mengubah pengaturan ini setelah Anda membuat sumber data. Lihat perinciannya di Document-level kontrol akses.

  • Ruang lingkup izin — Putuskan apakah aplikasi dapat membaca semua SharePoint situs di penyewa Anda (semua situs, opsi paling sederhana) atau hanya situs yang secara eksplisit Anda berikan (Sites.Selected, opsi hak istimewa paling sedikit). Dengan Sites.Selected Anda menyelesaikan hibah tambahan per situs di Langkah 5, dan situs apa pun yang Anda tambahkan nanti memerlukan hibah mereka sendiri.

Kombinasi dari dua pilihan ini memilih salah satu set izin di bagian berikut.

Referensi izin

Tetapkan izin aplikasi yang sesuai dengan konfigurasi Anda. Semua izin adalah izin aplikasi (tidak didelegasikan), dan setiap izin memerlukan persetujuan admin. Konektor mengautentikasi ke dua sumber daya Microsoft: Microsoft Graph (untuk menghitung situs dan, untuk ACL, untuk menyelesaikan pengguna dan grup) dan SharePointREST API (untuk membaca konten situs dan, untuk ACL, izin tingkat item).

penting

Saat Anda menambahkan izin ini di portal Entra, pilih tab Izin aplikasi, bukan izin Delegasi. App-only otentikasi menggunakan izin aplikasi.

Pilih tab untuk konfigurasi Anda untuk melihat Microsoft Graph dan SharePoint izin yang tepat untuk ditetapkan.

All sites, no ACLs
Semua situs, hanya konten
API Izin Tujuan
Grafik Microsoft Sites.Read.All Hitung dan baca semua situs. SharePoint
SharePoint Sites.Read.All Baca konten situs melalui SharePoint REST API.
All sites, with ACLs
Semua situs, dengan ACL
API Izin Tujuan
Grafik Microsoft Sites.Read.All Hitung dan baca semua situs. SharePoint
Grafik Microsoft User.Read.All Selesaikan pengguna untuk ACL tingkat dokumen.
Grafik Microsoft GroupMember.Read.All Selesaikan keanggotaan grup untuk ACL tingkat dokumen.
SharePoint Sites.FullControl.All Baca izin tingkat item untuk perayapan ACL dan verifikasi akses pada waktu kueri. Sites.Read.AllTidak cukup untuk pemeriksaan ini.
Sites.Selected, no ACLs
Sites.Selected, konten saja
API Izin Tujuan
Grafik Microsoft Sites.Selected Akses hanya situs yang Anda berikan secara eksplisit (Microsoft Graph).
SharePoint Sites.Selected Akses hanya situs yang Anda berikan secara eksplisit (SharePoint REST). Berikan read peran per situs di Langkah 5.
Sites.Selected, with ACLs
Sites.Selected, dengan ACL
API Izin Tujuan
Grafik Microsoft Sites.Selected Akses hanya situs yang Anda berikan secara eksplisit (Microsoft Graph).
Grafik Microsoft User.Read.All Selesaikan pengguna untuk ACL tingkat dokumen.
Grafik Microsoft GroupMember.Read.All Selesaikan keanggotaan grup untuk ACL tingkat dokumen.
SharePoint Sites.Selected Akses hanya situs yang Anda berikan secara eksplisit. Berikan fullcontrol peran per situs di Langkah 5 (diperlukan untuk membaca izin tingkat item untuk ACL).
catatan

Sites.FullControl.Allmemberikan akses luas ke setiap situs di penyewa. Jika organisasi Anda memerlukan hak istimewa paling sedikit, gunakan Sites.Selected dan berikan akses per situs di Langkah 5.

Nilai yang Anda kumpulkan selama penyiapan

Anda membuat atau mengumpulkan nilai-nilai berikut saat Anda mengerjakan langkah-langkahnya. Anda menggunakannya saat Anda membuat sumber data. Lihat perinciannya di Connect sumber SharePoint data.

Referensi nilai
Nilai Dibuat di Digunakan untuk
ID Aplikasi (klien) Langkah 1 Rahasianya (clientId).
ID Direktori (penyewa) Langkah 1 Sumber datanyatenantId.
Sertifikat - PKCS #12 bundle (.p12) dan kata sandinya Langkah 3 Bundel (sertifikat plus kunci pribadi) diunggah ke Amazon S3 (Langkah 6); kata sandi disimpan dalam rahasia certificatePassword ().
Sertifikat - sertifikat publik (.cer) Langkah 3 Setengah publik dari sertifikat yang sama, diunggah ke pendaftaran aplikasi Entra (Langkah 4).
Nama dan kunci bucket Amazon S3 Langkah 6 Sumber datanyacertificateS3Path.
Rahasia ARN Langkah 7 Sumber datanyasecretArn.

Langkah 1: Daftarkan aplikasi di Microsoft Entra ID

  1. Masuk ke pusat admin Microsoft Entra.

  2. Di navigasi kiri, perluas ID Entra dan pilih Pendaftaran aplikasi.

  3. Pilih Pendaftaran baru.

  4. Untuk Nama, masukkan nama deskriptif, sepertibedrock-sharepoint-connector.

  5. Untuk jenis akun yang didukung, pilih Akun di direktori organisasi ini saja (Penyewa tunggal).

  6. Biarkan Redirect URI kosong. URI pengalihan tidak diperlukan karena aplikasi menggunakan alur kredensial-klien, bukan alur masuk interaktif.

  7. PilihPendaftaran.

  8. Pada halaman Ikhtisar aplikasi, catat ID Aplikasi (klien) dan ID Direktori (penyewa). Anda membutuhkan keduanya nanti.

Langkah 2: Tambahkan izin API dan berikan persetujuan admin

Tambahkan izin untuk konfigurasi Anda dariReferensi izin.

  1. Dalam pendaftaran aplikasi Anda, pilih izin API, lalu Tambahkan izin.

  2. Pilih Microsoft Graph, lalu Izin aplikasi. Cari dan pilih setiap izin Microsoft Graph untuk konfigurasi Anda, lalu pilih Tambahkan izin.

  3. Pilih Tambah izin lagi. Pilih SharePoint(di bawah Microsoft API), lalu Izin aplikasi. Pilih setiap SharePoint izin untuk konfigurasi Anda, lalu pilih Tambahkan izin.

  4. Pada halaman izin API, pilih Berikan persetujuan admin untuk [organisasi Anda] dan konfirmasikan. Tanpa persetujuan admin, aplikasi tidak dapat mengakses SharePoint data.

catatan

App-Only Otentikasi Microsoft Entra ID menggunakan sertifikat (dari Langkah 3) sebagai kredensyal, sehingga Anda tidak membuat rahasia klien untuk aplikasi ini.

Langkah 3: Hasilkan sertifikat otentikasi

Buat sertifikat yang ditandatangani sendiri dan paketkan sebagai bundel PKCS #12 ().p12. Bundel berisi sertifikat dan kunci pribadinya, dilindungi oleh kata sandi. Anda mengunggah sertifikat publik ke Entra (Langkah 4) dan .p12 bundel ke Amazon S3 (Langkah 6). Pilih tab untuk sistem operasi Anda untuk melihat perintah.

catatan

Amazon Bedrock membaca kunci pribadi dari .p12 bundel untuk menandatangani pernyataan otentikasi, sehingga bundel harus dilindungi kata sandi dan disimpan dengan aman. Pilih kata sandi acak yang kuat - Anda menyimpannya dalam rahasia seperti certificatePassword pada Langkah 7.

Linux or macOS (OpenSSL)

Buat kunci pribadi dan sertifikat yang ditandatangani sendiri

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

Package sertifikat dan kunci sebagai bundel PKCS #12 () .p12

Masukkan kata sandi ekspor yang kuat saat diminta. Rekam untuk Langkah 7.

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

Anda sekarang memiliki tiga file: kunci pribadi (private_key.pem), sertifikat publik (certificate.cer), dan bundel (certificate.p12). Anda mengunggah sertifikat publik ke Entra di Langkah 4 dan .p12 bundel ke Amazon S3 di Langkah 6.

Windows (PowerShell)

Menghasilkan sertifikat yang ditandatangani sendiri

PowerShell Perintah berikut menghasilkan sertifikat yang ditandatangani sendiri RSA 2048-bit dengan masa berlaku satu tahun dan menyimpannya di toko sertifikat pengguna saat ini. Ganti your-password dengan kata sandi acak yang kuat - Anda menyimpannya dalam rahasia seperti certificatePassword pada Langkah 7.

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

Ekspor sertifikat publik

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

Ekspor bundel PKCS #12 () .p12

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

Anda sekarang memiliki dua file: sertifikat publik (certificate.cer) dan bundel (certificate.p12). Anda mengunggah sertifikat publik ke Entra di Langkah 4 dan .p12 bundel ke Amazon S3 di Langkah 6.

penting

Simpan .p12 bundel di Amazon S3 (bukan .cer file .pem atau). Bundel berisi kunci pribadi yang digunakan Amazon Bedrock untuk mengautentikasi. Document-level Access Control (ACL) membutuhkan .p12 format. Untuk perayapan konten saja tanpa ACL, Anda dapat menyimpan PEM-encoded sertifikat sebagai gantinya; karena .p12 berfungsi untuk setiap konfigurasi, panduan ini digunakan secara keseluruhan. .p12

catatan

Sertifikat ini berlaku selama satu tahun secara default. Sertifikat yang kedaluwarsa menyebabkan semua sinkronisasi gagal, jadi putar sertifikat sebelum kedaluwarsa. Untuk mengubah masa berlaku, sesuaikan -days opsi (OpenSSL) atau -NotAfter argumen (). PowerShell Untuk langkah rotasi, lihatPutar sertifikat.

Langkah 4: Unggah sertifikat publik ke Entra

  1. Dalam pendaftaran aplikasi Anda, pilih Sertifikat & rahasia, lalu tab Sertifikat.

  2. Pilih Unggah sertifikat dan pilih certificate.cer file yang Anda buat di Langkah 3 (hanya sertifikat publik — jangan pernah mengunggah .p12 bundel atau kunci pribadi ke Entra).

  3. Pilih Tambahkan.

Langkah 5 (Sites.Selected hanya): Berikan akses per situs

catatan

Langkah ini hanya berlaku jika Anda memilih ruang lingkup Sites.Selected izin di Langkah 2. Jika Anda menggunakan cakupan semua situs (Sites.Read.AllatauSites.FullControl.All), lewati keLangkah 6: Unggah sertifikat ke Amazon S3.

DenganSites.Selected, Anda memberikan akses aplikasi konektor Anda ke setiap SharePoint situs secara individual melalui Microsoft Graph API. Ini membutuhkan aplikasi sementara terpisah yang berlaku Sites.FullControl.All dan hanya digunakan untuk melakukan hibah. Amazon Bedrock tidak pernah melihat aplikasi sementara ini atau kredensialnya.

  1. Buat aplikasi pemberi hibah sementara. Di pusat admin Entra, daftarkan aplikasi kedua (misalnya,bedrock-sharepoint-granter) sebagai penyewa tunggal tanpa URI pengalihan. Tambahkan izin Sites.FullControl.All aplikasi Microsoft Graph, berikan persetujuan admin, dan buat rahasia klien. Catat ID klien dan nilai rahasianya.

  2. Dapatkan token akses untuk aplikasi pemberi hibah. Ganti placeholder dengan ID klien dan rahasia aplikasi pemberi hibah, dan ID penyewa Anda.

    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"

    Tanggapan tersebut berisi sebuahaccess_token. Gunakan sebagai token pembawa di perintah berikutnya.

  3. Menyelesaikan setiap URL situs ke ID situs. Gunakan nama host situs dan jalur server-relatif.

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

    idBidang dalam respons adalah ID situs.

  4. Berikan akses aplikasi konektor ke situs. Gunakan read untuk crawling khusus konten atau fullcontrol untuk perayapan ACL. Ganti CONNECTOR_CLIENT_ID dengan ID aplikasi (klien) dari Langkah 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. Ulangi perintah resolve-and-grant untuk setiap situs yang Anda sertakan dalam sumber data. Setelah selesai, Anda dapat menghapus aplikasi pemberi hibah sementara; hibah per situs tetap berlaku.

penting

Per-site hibah tidak berlaku surut. Jika Anda menambahkan situs ke sumber data nanti, berikan akses aplikasi konektor ke situs tersebut sebelum sinkronisasi berikutnya, atau kontennya tidak dirayapi.

Langkah 6: Unggah sertifikat ke Amazon S3

Unggah .p12 bundel dari Langkah 3 ke bucket Amazon S3 di AWS Wilayah yang sama dengan basis pengetahuan Anda. Rekam nama dan kunci bucket — Anda menggunakannya sebagai sumber datacertificateS3Path.

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

Kami menyarankan Anda mengaktifkan enkripsi sisi server pada objek sertifikat dan membatasi bucket ke prinsipal yang membutuhkannya. Bundel berisi kunci pribadi.

Langkah 7: Buat rahasia Secrets Manager

Simpan kredensialnya secara rahasia. AWS Secrets Manager Untuk App-Only otentikasi Entra ID, sertakan pasangan kunci-nilai berikut:

  • clientId(wajib) - ID aplikasi (klien) dari Langkah 1.

  • certificatePassword(disarankan) — kata sandi yang Anda tetapkan pada .p12 bundel di Langkah 3. Lihat catatan berikut.

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

Buat rahasia dengan AWS Command Line Interface:

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

Rekam rahasia ARN dari tanggapannya. Anda menggunakannya sebagai sumber datasecretArn.

catatan

Setel certificatePassword ke kata sandi yang Anda gunakan saat membuat .p12 bundel di Langkah 3. Jika Anda menghilangkan bidang ini, Amazon Bedrock membuka bundel menggunakan ID klien aplikasi Anda sebagai kata sandi, sehingga bundel harus dibuat dengan ID klien sebagai kata sandinya. Kami menyarankan agar Anda selalu menetapkan kata sandi eksplisit dan entropi tinggi sebagai gantinya, dan menyimpan kunci pribadi dengan aman.

catatan

Menggunakan sertifikat PEM sebagai gantinya. Panduan ini menggunakan .p12 bundel, yang berfungsi untuk setiap konfigurasi. Jika Anda meng-crawl konten saja (tidak ada kontrol akses tingkat dokumen), Anda dapat menggunakan sertifikat PEM sebagai gantinya. Dalam hal ini, unggah hanya sertifikat publik ke Amazon S3 (bukan .p12 bundel), dan simpan kunci pribadi dalam rahasia sebagai privateKey (PKCS #8 yang disandikan base64 tidak terenkripsi, tanpa baris header) sebagai pengganti: certificatePassword

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

Langkah 8: Berikan akses peran layanan ke sertifikat

Peran layanan basis pengetahuan Anda harus dapat membaca objek sertifikat dari Amazon S3. Tambahkan pernyataan berikut ke kebijakan izin peran, ganti nama dan kunci bucket dengan nilai Anda.

{ "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"] } } } ] }
catatan

Kebijakan ini juga memungkinkan akses baca ke .metadata.json file opsional di samping sertifikat. Amazon Bedrock tidak memerlukan file ini; termasuk izin mencegah kesalahan akses jika ada.

Jika objek sertifikat dienkripsi dengan kunci KMS AWS

Perintah upload Langkah 6: Unggah sertifikat ke Amazon S3 menggunakan S3-managed enkripsi Amazon (AES256), yang tidak memerlukan izin tambahan. Jika Anda mengenkripsi objek sertifikat dengan enkripsi sisi server Amazon S3 menggunakan kunci KMS yang dikelola pelanggan SSE-KMS (), peran layanan juga kms:Decrypt memerlukan izin pada kunci tersebut, dan kebijakan kunci harus mengizinkan peran untuk menggunakannya. Objek yang dienkripsi dengan aws/s3 kunci AWS terkelola tidak memerlukan hibah tambahan ini.

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

Akses baca hanya membutuhkankms:Decrypt. Untuk informasi selengkapnya, lihat Menggunakan enkripsi sisi server dengan kunci AWS KMS (). SSE-KMS

Untuk set lengkap izin peran layanan basis pengetahuan, lihatIzin untuk mengakses sumber data Anda.

Langkah selanjutnya

Anda sekarang memiliki semua yang Anda butuhkan untuk membuat sumber data: ARN rahasia, ID penyewa Anda, dan lokasi Amazon S3 sertifikat. Untuk membuat sumber SharePoint data dengan Konsol Manajemen AWS atau API, lihatConnect sumber SharePoint data.

penting

Untuk ENTRA_ID_APP_ONLY otentikasi, Anda harus menyediakan certificateS3Path ketika Anda membuat sumber data, bahkan ketika ACL dinonaktifkan. Sumber SharePoint data yang dibuat dengan jenis autentikasi ini dan tidak ada sertifikat yang gagal.