Memahami akses yang didelegasikan

Saat pengguna masuk ke aplikasi dan menggunakannya untuk mengakses beberapa sumber daya lain, seperti Microsoft Graph, aplikasi harus terlebih dahulu meminta izin untuk mengakses sumber daya ini atas nama pengguna. Skenario umum ini disebut akses yang didelegasikan.

Mengapa saya harus menggunakan akses yang didelegasikan?

Orang sering menggunakan aplikasi yang berbeda untuk mengakses data mereka dari layanan cloud. Misalnya, seseorang mungkin ingin menggunakan aplikasi pembaca PDF favorit untuk melihat file yang disimpan di OneDrive mereka. Contoh lain dapat berupa aplikasi lini bisnis perusahaan yang mungkin mengambil informasi bersama tentang rekan kerja mereka sehingga mereka dapat dengan mudah memilih peninjau untuk permintaan. Dalam kasus seperti itu, aplikasi klien, pembaca PDF, atau alat persetujuan permintaan perusahaan perlu diotorisasi untuk mengakses data ini atas nama pengguna yang masuk ke aplikasi.

Gunakan akses yang didelegasikan setiap kali Anda ingin mengizinkan pengguna yang masuk bekerja dengan sumber daya atau sumber daya mereka sendiri yang dapat mereka akses. Baik itu admin menyiapkan kebijakan untuk seluruh organisasi mereka atau pengguna yang menghapus email di kotak masuk mereka, semua skenario yang melibatkan tindakan pengguna harus menggunakan akses yang didelegasikan.

Diagram shows illustration of delegated access scenario.

Sebaliknya, akses yang didelegasikan biasanya merupakan pilihan yang buruk untuk skenario yang harus berjalan tanpa pengguna yang masuk, seperti otomatisasi. Ini mungkin juga merupakan pilihan yang buruk untuk skenario yang melibatkan akses sumber daya banyak pengguna, seperti pencegahan kehilangan data atau cadangan. Pertimbangkan untuk menggunakan akses khusus aplikasi untuk jenis operasi ini.

Meminta cakupan sebagai aplikasi klien

Aplikasi Anda harus meminta pengguna untuk memberikan cakupan tertentu, atau serangkaian cakupan, untuk aplikasi sumber daya yang ingin Anda akses. Cakupan juga dapat disebut sebagai izin yang didelegasikan. Cakupan ini menjelaskan sumber daya dan operasi mana yang ingin dilakukan aplikasi Anda atas nama pengguna. Misalnya, jika Anda ingin aplikasi menampilkan daftar pesan email dan pesan obrolan yang baru diterima, Anda mungkin meminta pengguna untuk menyetujui Microsoft Graph Mail.Read dan Chat.Read cakupan.

Setelah aplikasi Anda meminta cakupan, pengguna atau admin harus memberikan akses yang diminta. Pengguna konsumen dengan Akun Microsoft, seperti akun Outlook.com atau Xbox Live, selalu dapat memberikan cakupan untuk mereka sendiri. Pengguna organisasi dengan akun Microsoft Entra mungkin atau mungkin tidak dapat memberikan cakupan, tergantung pada pengaturan organisasi mereka. Jika pengguna organisasi tidak dapat menyetujui cakupan secara langsung, mereka harus meminta administrator organisasi mereka untuk menyetujuinya.

Selalu ikuti prinsip hak istimewa paling sedikit: Anda tidak boleh meminta cakupan yang tidak diperlukan aplikasi Anda. Prinsip ini membantu membatasi risiko keamanan jika aplikasi Anda disusupi dan memudahkan administrator untuk memberikan akses aplikasi Anda. Misalnya, jika aplikasi Anda hanya perlu mencantumkan obrolan milik pengguna tetapi tidak perlu menampilkan pesan obrolan itu sendiri, Anda harus meminta cakupan Microsoft Graph Chat.ReadBasic yang lebih terbatas alih-alih Chat.Read. Untuk informasi selengkapnya tentang cakupan openID, lihat Cakupan OpenID.

Merancang dan menerbitkan cakupan untuk layanan sumber daya

Jika Anda membangun API dan ingin mengizinkan akses yang didelegasikan atas nama pengguna, Anda harus membuat cakupan yang dapat diminta aplikasi lain. Cakupan ini harus menjelaskan tindakan atau sumber daya yang tersedia untuk klien. Anda harus mempertimbangkan skenario pengembang saat merancang cakupan Anda.

Bagaimana cara kerja akses yang didelegasikan?

Hal terpenting yang perlu diingat tentang akses yang didelegasikan adalah bahwa aplikasi klien Anda dan pengguna yang masuk perlu diotorisasi dengan benar. Memberikan cakupan tidak cukup. Jika aplikasi klien tidak memiliki cakupan yang tepat, atau pengguna tidak memiliki hak yang memadai untuk membaca atau memodifikasi sumber daya, panggilan akan gagal.

  • Otorisasi aplikasi klien - Aplikasi klien diotorisasi dengan memberikan cakupan. Saat aplikasi klien diberikan cakupan oleh pengguna atau admin untuk mengakses beberapa sumber daya, pemberian tersebut akan direkam di ID Microsoft Entra. Semua token akses yang didelegasikan yang diminta oleh klien untuk mengakses sumber daya atas nama pengguna yang relevan kemudian akan berisi nilai klaim cakupan tersebut scp dalam klaim. Aplikasi sumber daya memeriksa klaim ini untuk menentukan apakah aplikasi klien telah diberikan cakupan yang benar untuk panggilan.
  • Otorisasi pengguna - Pengguna diotorisasi oleh sumber daya yang Anda panggil. Aplikasi sumber daya dapat menggunakan satu atau beberapa sistem untuk otorisasi pengguna, seperti kontrol akses berbasis peran, hubungan kepemilikan/keanggotaan, daftar kontrol akses, atau pemeriksaan lainnya. Misalnya, MICROSOFT Entra ID memeriksa bahwa pengguna telah ditetapkan ke manajemen aplikasi atau peran admin umum sebelum memungkinkan mereka menghapus aplikasi organisasi, tetapi juga memungkinkan semua pengguna untuk menghapus aplikasi yang mereka miliki. Demikian pula, layanan SharePoint Online memeriksa bahwa pengguna memiliki hak pemilik atau pembaca yang sesuai atas file sebelum mengizinkan pengguna tersebut membukanya.

Contoh akses yang didelegasikan – OneDrive melalui Microsoft Graph

Pertimbangkan contoh berikut:

Alice ingin menggunakan aplikasi klien untuk membuka file yang dilindungi oleh API sumber daya, Microsoft Graph. Untuk otorisasi pengguna, layanan OneDrive akan memeriksa apakah file disimpan di drive Alice. Jika disimpan di drive pengguna lain, Maka OneDrive akan menolak permintaan Alice sebagai tidak sah, karena Alice tidak memiliki hak untuk membaca drive pengguna lain.

Untuk otorisasi aplikasi klien, OneDrive akan memeriksa apakah klien yang melakukan panggilan telah diberikan Files.Read cakupan atas nama pengguna yang masuk. Dalam hal ini, pengguna yang masuk adalah Alice. Jika Files.Read belum diberikan ke aplikasi untuk Alice, maka OneDrive juga akan gagal dalam permintaan.

GET /drives/{id}/files/{id} Aplikasi klien memberikan Files.Read cakupan untuk Alice Aplikasi klien tidak diberikan Files.Read cakupan untuk Alice
Dokumen berada di OneDrive Alice. 200 – Akses diberikan. 403 - Tidak sah. Alice (atau adminnya) belum mengizinkan klien ini untuk membaca filenya.
Dokumen berada di OneDrive pengguna lain*. 403 - Tidak sah. Alice tidak memiliki hak untuk membaca file ini. Meskipun klien telah diberikan Files.Read , itu harus ditolak ketika bertindak atas nama Alice. 403 – Tidak sah. Alice tidak memiliki hak untuk membaca file ini, dan klien juga tidak diizinkan untuk membaca file yang dapat diaksesnya.

Contoh yang diberikan disederhanakan untuk mengilustrasikan otorisasi yang didelegasikan. Layanan OneDrive produksi mendukung banyak skenario akses lainnya, seperti file bersama.

Lihat juga