

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

# Siapkan otentikasi OAuth 2.0 untuk OneDrive
<a name="kb-managed-onedrive-oauth2-setup"></a>

**OAuth 2.0 authentication (`OAUTH2`) mengautentikasi dengan ID klien aplikasi dan rahasia bersama dengan token refresh yang didelegasikan.** Konektor menggunakan token penyegaran untuk mendapatkan token akses yang merayapi konten dalam konteks delegasi pengguna yang masuk. Sumber data mencakup OneDrive konten yang dapat diakses pengguna — drive mereka sendiri, ditambah drive apa pun yang dibagikan dengan mereka atau di mana mereka memiliki akses SharePoint admin. Drive yang tidak dapat diakses pengguna yang masuk dilewati secara diam-diam.

**penting**  
Kami merekomendasikan [Mengatur otentikasi Microsoft Entra App ID untuk OneDrive](kb-managed-onedrive-entra-setup.md) untuk sebagian besar sumber data. Otentikasi OAuth 2.0 memiliki batasan sebagai berikut:  
Ini hanya merayapi OneDrive konten yang dapat diakses pengguna yang masuk (drive mereka sendiri, ditambah drive apa pun yang dibagikan dengan mereka atau di mana mereka memiliki SharePoint akses admin). Drive yang tidak dapat diakses pengguna dilewati secara diam-diam. Untuk meng-crawl setiap pengguna OneDrive di penyewa Anda secara seragam, gunakan otentikasi Microsoft Entra App ID.
Ini membutuhkan token penyegaran, yang Anda peroleh melalui login pengguna satu kali (Langkah 4).
Refresh token memiliki Microsoft-side masa pakai yang terbatas. Ketika token penyegaran kedaluwarsa atau dicabut, sinkronisasi gagal sampai Anda mendapatkan yang baru dan memperbarui rahasianya.
Ini tidak mendukung kontrol akses tingkat dokumen (ACL). Untuk memfilter hasil kueri berdasarkan izin pengguna, gunakan otentikasi Microsoft Entra App ID.

## Prasyarat
<a name="kb-managed-onedrive-oauth2-prereqs"></a>
+ Akses administrator Microsoft Entra ID untuk mendaftarkan aplikasi, memberikan persetujuan admin, dan membuat rahasia klien.
+ Akun pengguna Microsoft 365 yang memiliki akses ke OneDrive konten yang ingin dirayapi. Anda masuk sebagai pengguna ini sekali untuk mendapatkan token penyegaran.
+ ID penyewa Microsoft 365 Anda.

## Langkah 1: Daftarkan aplikasi di Microsoft Entra ID
<a name="kb-managed-onedrive-oauth2-step1"></a>

1. Masuk ke [pusat admin Microsoft Entra](https://entra.microsoft.com/).

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

1. Pilih **Pendaftaran baru**.

1. Untuk **Nama**, masukkan nama deskriptif, seperti`bedrock-onedrive-oauth2`.

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

1. Di bawah **Redirect URI**, pilih **Web** sebagai platform dan masukkan`http://localhost:53672/callback`. Anda menggunakan URI pengalihan ini ketika Anda mendapatkan token penyegaran di Langkah 4. Anda dapat menggunakan port localhost gratis apa pun; jika Anda mengubah port di sini, gunakan port yang sama di Langkah 4.

1. Pilih**Pendaftaran**.

1. Pada halaman **Ikhtisar** aplikasi, catat ID **Aplikasi (klien) dan ID** **Direktori (penyewa)**.

## Langkah 2: Tambahkan izin API dan berikan persetujuan admin
<a name="kb-managed-onedrive-oauth2-step2"></a>

Otentikasi OAuth 2.0 menggunakan login yang didelegasikan, sehingga aplikasi memerlukan izin yang **didelegasikan** — bukan izin aplikasi.

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

1. Pilih **Microsoft Graph**, lalu **Izin yang didelegasikan**.

1. Pilih izin yang didelegasikan berikut, lalu pilih **Tambahkan** izin:
   + `Files.Read.All`— baca file yang dapat diakses pengguna.
   + `Sites.Read.All`— baca OneDrive situs yang dapat diakses pengguna.
   + `User.Read.All`— mengidentifikasi pengguna.
   + `offline_access`— diperlukan agar login mengembalikan token penyegaran.

1. Pada halaman **izin API**, pilih **Berikan persetujuan admin untuk [organisasi Anda]** dan konfirmasikan.

## Langkah 3: Buat rahasia klien
<a name="kb-managed-onedrive-oauth2-step3"></a>

1. Dalam pendaftaran aplikasi Anda, pilih **Sertifikat & rahasia**, lalu **Rahasia klien**, lalu **Rahasia klien baru**.

1. **Masukkan deskripsi, pilih kedaluwarsa, dan pilih Tambah.**

1. Catat **Nilai** rahasia segera — hanya ditampilkan sekali. Catat **Nilai**, bukan **ID Rahasia**.

## Langkah 4: Dapatkan token penyegaran
<a name="kb-managed-onedrive-oauth2-step4"></a>

Konektor memerlukan token penyegaran, yang Anda peroleh melalui login pengguna satu kali. Prosedur di bawah ini menggunakan alur kode otorisasi OAuth 2.0 dengan pengalihan localhost, yang berfungsi untuk pengguna dengan otentikasi multi-faktor (MFA). Untuk akun layanan non-MFA, alternatif yang lebih sederhana disediakan di akhir.

**Alur kode otorisasi (disarankan)**

1. **Bangun URL masuk.** Ganti placeholder dengan ID penyewa Anda dan ID aplikasi (klien) dari Langkah 1. Jika Anda menggunakan port localhost yang berbeda di Langkah 1, perbarui `redirect_uri` agar cocok.

   ```
   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. **Masuk.** Buka URL di browser dan masuk sebagai pengguna Microsoft 365 yang aksesnya Anda ingin konektornya digunakan. Selesaikan tantangan MFA apa pun.

   Browser kemudian mengalihkan ke URL localhost, yang tidak memuat (ini diharapkan karena tidak ada yang mendengarkan di port itu). Bilah alamat browser sekarang berisi URI pengalihan diikuti oleh `code` parameter, misalnya:`http://localhost:53672/callback?code=0.AXoA...&session_state=...`.

1. **Salin kode otorisasi.** Dari bilah alamat, salin nilai `code` parameter (semuanya antara `code=` dan berikutnya`&`). Kode ini berlaku selama beberapa menit; selesaikan Langkah 4 segera.

1. **Tukarkan kode dengan token penyegaran.** Ganti placeholder dengan ID penyewa Anda, ID aplikasi (klien), rahasia klien dari Langkah 3, dan kode otorisasi yang baru saja Anda salin.

   ```
   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"
   ```

   Responsnya meliputi a`refresh_token`. Rekam untuk Langkah 5.

**Kredensyal kata sandi pemilik sumber daya (alternatif untuk akun layanan non-MFA)**

Jika akun Anda tidak memerlukan MFA dan tidak tunduk pada kebijakan Akses Bersyarat yang menerapkan login interaktif, Anda dapat melewati alur browser dan menukar kredensyal pengguna dengan token penyegaran secara langsung. Ganti placeholder dengan nilai Anda, termasuk UPN dan kata sandi pengguna.

```
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"
```

Responsnya meliputi a`refresh_token`. Rekam untuk Langkah 5. Alur ini tidak berfungsi untuk akun dengan MFA diberlakukan; gunakan aliran kode otorisasi di atas sebagai gantinya.

## Langkah 5: Buat rahasia Secrets Manager
<a name="kb-managed-onedrive-oauth2-step5"></a>

Simpan kredensialnya secara AWS Secrets Manager rahasia dengan pasangan kunci-nilai berikut:
+ `clientId`— ID aplikasi (klien) dari Langkah 1.
+ `clientSecret`— nilai rahasia klien dari Langkah 3.
+ `refreshToken`— token penyegaran dari Langkah 4.

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

Buat rahasia dengan AWS Command Line Interface:

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

Rekam rahasia ARN dari tanggapannya. Anda menggunakannya sebagai sumber data`secretArn`.

**catatan**  
`OAUTH2`Konektor membaca token penyegaran sekali dari rahasia Anda dan menggunakannya kembali untuk setiap sinkronisasi — itu tidak menyimpan nilai yang diputar yang dikembalikan Microsoft. Rencanakan untuk mencetak token penyegaran baru (Langkah 4) dan perbarui `refreshToken` bidang di rahasia Anda sebelum yang sudah ada kedaluwarsa. Jika Anda tidak memperbarui rahasia tepat waktu, sinkronisasi gagal dengan kesalahan token-refresh sampai Anda melakukannya.

## Langkah selanjutnya
<a name="kb-managed-onedrive-oauth2-next"></a>

Setelah Anda menyimpan rahasia, buat sumber data dengan `authType` set to`OAUTH2`. Anda tidak memberikan sertifikat untuk metode ini. Lihat [Connect sumber OneDrive data](kb-managed-ds-onedrive-connect.md).