Mengotorisasi akses ke REST API dengan OAuth 2.0
Azure DevOps
Pelajari cara mengautentikasi pengguna aplikasi web Anda untuk akses REST API, sehingga aplikasi Anda tidak terus meminta nama pengguna dan kata sandi.
Catatan
- Panduan berikut ditujukan untuk pengguna Azure DevOps Services karena OAuth 2.0 tidak didukung di Azure DevOps Server. Pustaka Klien adalah serangkaian paket yang dibuat khusus untuk memperluas fungsionalitas Azure DevOps Server. Untuk pengguna lokal, sebaiknya gunakan Pustaka Klien, Windows Auth, atau token akses pribadi (PATs) untuk mengautentikasi atas nama pengguna.
- Untuk informasi selengkapnya, lihat sampel C# OAuth GitHub.
Tentang OAuth 2.0
Azure DevOps Services menggunakan protokol OAuth 2.0 untuk mengotorisasi aplikasi Anda untuk pengguna dan menghasilkan token akses. Gunakan token ini saat Anda memanggil REST API dari aplikasi. Saat Anda memanggil Azure DevOps API untuk pengguna, gunakan token akses pengguna tersebut. Token akses kedaluwarsa, jadi refresh token akses jika kedaluwarsa.
Model OAuth yang tersedia
Penting
Saat membuat aplikasi OAuth 2.0 baru, gunakan Microsoft Entra ID OAuth. Azure DevOps OAuth 2.0 dijadwalkan untuk penghentian pada tahun 2026. Mulai Februari 2025, kami akan berhenti menerima aplikasi Azure DevOps OAuth baru. Pelajari lebih lanjut di posting blog kami.
Microsoft Entra ID OAuth
Membangun di platform baru bisa sangat luar biasa. Dalam panduan ini untuk membangun aplikasi Microsoft Entra untuk Azure DevOps, kami mengumpulkan tautan bermanfaat yang mungkin berguna untuk memulai proses pengembangan aplikasi OAuth di Microsoft Entra. Untuk orang yang bermigrasi dari Azure DevOps OAuth ke Microsoft Entra OAuth, kami memberikan tips bermanfaat untuk dipertimbangkan selama upaya migrasi Anda.
Azure DevOps OAuth
Untuk aplikasi yang sudah ada, lihat panduan aplikasi Azure DevOps OAuth. Anda juga dapat mengelola aplikasi Azure DevOps mana yang berwenang untuk mengakses sumber daya Anda.
Cakupan
Pengembang diharapkan untuk menentukan cakupan apa yang mereka butuhkan dari pengguna mereka. Cakupan yang sama tersedia pada kedua model OAuth. Cakupan berikut hanya tersedia melalui alur yang didelegasikan (atas nama pengguna).
Untuk mengetahui cakupan apa yang Anda butuhkan untuk aplikasi Anda, lihat di bawah scopes
header di halaman Referensi API untuk setiap API yang Anda gunakan.
Beberapa cakupan mungkin termasuk cakupan lain, misalnya, vso.code_manage
termasuk vso.code_write
. Misalnya, banyak cakupan yang diwarisi dari vso.profile
. Pertimbangkan berapa jumlah cakupan minimal yang Anda butuhkan saat meminta persetujuan cakupan dari pengguna.
Catatan
Cakupan hanya mengaktifkan akses ke REST API dan memilih titik akhir Git. Akses SOAP API tidak didukung.
Kategori | Cakupan | Nama | Deskripsi | Mewarisi Dari |
---|---|---|---|---|
Keamanan Tingkat Lanjut | vso.advsec |
AdvancedSecurity (baca) | Memberikan kemampuan untuk membaca pemberitahuan, instans hasil, instans hasil analisis. | |
vso.advsec_write |
AdvancedSecurity (baca dan tulis) | Memberikan kemampuan untuk mengunggah analisis dalam sarif | vso.advsec |
|
vso.advsec_manage |
AdvancedSecurity (baca, tulis, dan kelola) | Memberikan kemampuan untuk mengunggah analisis dalam sarif | vso.advsec_write |
|
Kumpulan Agen | vso.agentpools |
Kumpulan Agen (baca) | Memberikan kemampuan untuk melihat tugas, kumpulan, antrean, agen, dan pekerjaan yang saat ini berjalan atau baru-baru ini selesai untuk agen. | |
vso.agentpools_manage |
Kumpulan Agen (baca, kelola) | Memberikan kemampuan untuk mengelola kumpulan, antrean, dan agen. | vso.agentpools |
|
vso.environment_manage |
Lingkungan (baca, kelola) | Memberikan kemampuan untuk mengelola kumpulan, antrean, agen, dan lingkungan. | vso.agentpools_manage |
|
Analitik | vso.analytics |
Analitik (baca) | Memberikan kemampuan untuk mengkueri data analitik. | |
Audit | vso.auditlog |
Log Audit (baca) | Memberikan kemampuan untuk membaca log audit kepada pengguna. | |
vso.auditstreams_manage |
Aliran Audit (baca) | Memberikan kemampuan untuk mengelola aliran audit kepada pengguna. | vso.auditlog |
|
Build | vso.build |
Build (baca) | Memberikan kemampuan untuk mengakses artefak build, termasuk hasil build, definisi, dan permintaan, dan kemampuan untuk menerima pemberitahuan tentang peristiwa build melalui kait layanan. | vso.hooks_write |
vso.build_execute |
Bangun (baca dan jalankan) | Memberikan kemampuan untuk mengakses artefak build, termasuk hasil build, definisi, dan permintaan, dan kemampuan untuk mengantre build, memperbarui properti build, dan kemampuan untuk menerima pemberitahuan tentang peristiwa build melalui kait layanan. | vso.build |
|
Kode | vso.code |
Kode (baca) | Memberikan kemampuan untuk membaca kode sumber dan metadata tentang penerapan, set perubahan, cabang, dan artefak kontrol versi lainnya. Juga memberikan kemampuan untuk mencari kode dan mendapatkan pemberitahuan tentang peristiwa kontrol versi melalui kait layanan. | vso.hooks_write |
vso.code_write |
Kode (baca dan tulis) | Memberikan kemampuan untuk membaca, memperbarui, dan menghapus kode sumber, mengakses metadata tentang penerapan, set perubahan, cabang, dan artefak kontrol versi lainnya. Juga memberikan kemampuan untuk membuat dan mengelola permintaan pull dan ulasan kode dan untuk menerima pemberitahuan tentang peristiwa kontrol versi melalui kait layanan. | vso.code |
|
vso.code_manage |
Kode (baca, tulis, dan kelola) | Memberikan kemampuan untuk membaca, memperbarui, dan menghapus kode sumber, mengakses metadata tentang penerapan, set perubahan, cabang, dan artefak kontrol versi lainnya. Juga memberikan kemampuan untuk membuat dan mengelola repositori kode, membuat dan mengelola permintaan pull dan ulasan kode, dan untuk menerima pemberitahuan tentang peristiwa kontrol versi melalui kait layanan. | vso.code_write |
|
vso.code_full |
Kode (penuh) | Memberikan akses penuh ke kode sumber, metadata tentang penerapan, set perubahan, cabang, dan artefak kontrol versi lainnya. Juga memberikan kemampuan untuk membuat dan mengelola repositori kode, membuat dan mengelola permintaan pull dan ulasan kode, dan untuk menerima pemberitahuan tentang peristiwa kontrol versi melalui kait layanan. Juga termasuk dukungan terbatas untuk API OM Klien. | vso.code_manage |
|
vso.code_status |
Kode (status) | Memberikan kemampuan untuk membaca dan menulis status penerapan dan permintaan pull. | ||
Server Tersambung | vso.connected_server |
Server Tersambung | Memberikan kemampuan untuk mengakses titik akhir yang diperlukan dari server yang terhubung lokal. | |
Pemberian izin | vso.entitlements |
Pemberian Izin (Baca) | Menyediakan akses baca saja ke titik akhir pemberian hak lisensi untuk mendapatkan hak akun. | |
vso.memberentitlementmanagement |
Pengelolaan Pemberian Izin Anggota (baca) | Memberikan kemampuan untuk membaca pengguna, lisensi mereka serta proyek dan ekstensi yang dapat mereka akses. | ||
vso.memberentitlementmanagement_write |
Pengelolaan Pemberian Izin Anggota (tulis) | Memberikan kemampuan untuk mengelola pengguna, lisensi mereka serta proyek dan ekstensi yang dapat mereka akses. | vso.memberentitlementmanagement |
|
Ekstensi | vso.extension |
Ekstensi (baca) | Memberikan kemampuan untuk membaca ekstensi yang diinstal. | vso.profile |
vso.extension_manage |
Ekstensi (baca dan kelola) | Memberikan kemampuan untuk menginstal, menghapus instalan, dan melakukan tindakan administratif lainnya pada ekstensi yang diinstal. | vso.extension |
|
vso.extension.data |
Data ekstensi (baca) | Memberikan kemampuan untuk membaca data (pengaturan dan dokumen) yang disimpan oleh ekstensi yang diinstal. | vso.profile |
|
vso.extension.data_write |
Data ekstensi (baca dan tulis) | Memberikan kemampuan untuk membaca dan menulis data (pengaturan dan dokumen) yang disimpan oleh ekstensi yang diinstal. | vso.extension.data |
|
Koneksi Github | vso.githubconnections |
Koneksi GitHub (baca) | Memberikan kemampuan untuk membaca koneksi GitHub dan data repositori GitHub. | |
vso.githubconnections_manage |
Koneksi GitHub (baca dan kelola) | Memberikan kemampuan untuk membaca dan mengelola koneksi GitHub dan data repositori GitHub | vso.githubconnections |
|
Grafik & identitas | vso.graph |
Grafik (baca) | Memberikan kemampuan untuk membaca informasi keanggotaan pengguna, grup, cakupan, dan grup. | |
vso.graph_manage |
Grafik (kelola) | Memberikan kemampuan untuk membaca informasi keanggotaan pengguna, grup, cakupan, dan grup, dan untuk menambahkan pengguna, grup, dan mengelola keanggotaan grup. | vso.graph |
|
vso.identity |
Identitas (baca) | Memberikan kemampuan untuk membaca identitas dan grup. | ||
vso.identity_manage |
Identitas (kelola) | Memberikan kemampuan untuk membaca, menulis, dan mengelola identitas dan grup. | vso.identity |
|
Grup Mesin | vso.machinegroup_manage |
Grup penyebaran (baca, kelola) | Menyediakan kemampuan untuk mengelola grup penyebaran dan kumpulan agen. | vso.agentpools_manage |
Marketplace | vso.gallery |
Marketplace | Memberikan akses baca ke item publik dan privat dan penerbit. | vso.profile |
vso.gallery_acquire |
Marketplace (akuisisi) | Memberikan akses baca dan kemampuan untuk memperoleh item. | vso.gallery |
|
vso.gallery_publish |
Marketplace (terbitkan) | Memberikan akses baca dan kemampuan untuk mengunggah, memperbarui, dan berbagi item. | vso.gallery |
|
vso.gallery_manage |
Marketplace (kelola) | Memberikan akses baca dan kemampuan untuk menerbitkan dan mengelola item dan penerbit. | vso.gallery_publish |
|
Pemberitahuan | vso.notification |
Pemberitahuan (baca) | Menyediakan akses baca ke langganan dan metadata peristiwa, termasuk nilai bidang yang dapat difilter. | vso.profile |
vso.notification_write |
Pemberitahuan (tulis) | Menyediakan akses baca dan tulis ke langganan dan akses baca ke metadata peristiwa, termasuk nilai bidang yang dapat difilter. | vso.notification |
|
vso.notification_manage |
Pemberitahuan (kelola) | Menyediakan akses baca, tulis, dan manajemen ke langganan dan akses baca ke metadata peristiwa, termasuk nilai bidang yang dapat difilter. | vso.notification_write |
|
vso.notification_diagnostics |
Pemberitahuan (diagnostik) | Menyediakan akses ke log diagnostik terkait pemberitahuan dan menyediakan kemampuan untuk mengaktifkan diagnostik untuk langganan individual. | vso.notification |
|
Kemasan | vso.packaging |
Pengemasan (baca) | Memberikan kemampuan untuk membaca umpan dan paket. | vso.profile |
vso.packaging_write |
Kemasan (baca dan tulis) | Memberikan kemampuan untuk membuat dan membaca umpan dan paket. | vso.packaging |
|
vso.packaging_manage |
Pengemasan (baca, tulis, dan kelola) | Memberikan kemampuan untuk membuat, membaca, memperbarui, dan menghapus umpan dan paket. | vso.packaging_write |
|
Sumber Daya Alur | vso.pipelineresources_use |
Sumber Daya Alur (gunakan) | Memberikan kemampuan untuk menyetujui permintaan alur untuk menggunakan sumber daya yang dilindungi: kumpulan agen, lingkungan, antrean, repositori, file aman, koneksi layanan, dan grup variabel. | |
vso.pipelineresources_manage |
Sumber Daya Alur (gunakan dan kelola) | Memberikan kemampuan untuk mengelola sumber daya yang dilindungi atau permintaan alur untuk menggunakan sumber daya yang dilindungi: kumpulan agen, lingkungan, antrean, repositori, file aman, koneksi layanan, dan grup variabel. | vso.pipelineresources_manage |
|
Proyek dan Tim | vso.project |
Proyek dan tim (baca) | Memberikan kemampuan untuk membaca proyek dan tim. | |
vso.project_write |
Proyek dan tim (baca dan tulis) | Memberikan kemampuan untuk membaca dan memperbarui proyek dan tim. | vso.project |
|
vso.project_manage |
Proyek dan tim (baca, tulis, dan kelola) | Memberikan kemampuan untuk membuat, membaca, memperbarui, dan menghapus proyek dan tim. | vso.project_write |
|
Rilis | vso.release |
Rilis (baca) | Memberikan kemampuan untuk membaca artefak rilis, termasuk rilis, definisi rilis, dan lingkungan rilis. | vso.profile |
vso.release_execute |
Rilis (baca, tulis, dan jalankan) | Memberikan kemampuan untuk membaca dan memperbarui artefak rilis, termasuk rilis, definisi rilis dan lingkungan rilis, dan kemampuan untuk mengantre rilis baru. | vso.release |
|
vso.release_manage |
Rilis (baca, tulis, jalankan, dan kelola) | Memberikan kemampuan untuk membaca, memperbarui, dan menghapus artefak rilis, termasuk rilis, definisi rilis, dan lingkungan rilis, dan kemampuan untuk mengantre dan menyetujui rilis baru. | vso.release_manage |
|
File Aman | vso.securefiles_read |
File Aman (baca) | Memberikan kemampuan untuk membaca file aman. | |
vso.securefiles_write |
File Aman (baca, buat) | Memberikan kemampuan untuk membaca dan membuat file aman. | vso.securefiles_read |
|
vso.securefiles_manage |
File Aman (baca, buat, dan kelola) | Memberikan kemampuan untuk membaca, membuat, dan mengelola file yang aman. | vso.securefiles_write |
|
Keamanan | vso.security_manage |
Keamanan (kelola) | Memberikan kemampuan untuk membaca, menulis, dan mengelola izin keamanan. | |
Sambungan Layanan | vso.serviceendpoint |
Titik Akhir Layanan (baca) | Memberikan kemampuan untuk membaca titik akhir layanan. | vso.profile |
vso.serviceendpoint_query |
Titik Akhir Layanan (baca dan kueri) | Memberikan kemampuan untuk membaca dan mengkueri titik akhir layanan. | vso.serviceendpoint |
|
vso.serviceendpoint_manage |
Titik Akhir Layanan (baca, kueri, dan kelola) | Memberikan kemampuan untuk membaca, mengkueri, dan mengelola titik akhir layanan. | vso.serviceendpoint_query |
|
Service Hooks | vso.hooks |
Kait layanan (baca) | Memberikan kemampuan untuk membaca langganan dan metadata hook layanan, termasuk peristiwa, konsumen, dan tindakan yang didukung. (Tidak lagi publik.) | vso.profile |
vso.hooks_write |
Kait layanan (baca dan tulis) | Memberikan kemampuan untuk membuat dan memperbarui langganan hook layanan dan membaca metadata, termasuk peristiwa, konsumen, dan tindakan yang didukung. (Tidak lagi publik.) | vso.hooks |
|
vso.hooks_interact |
Kait layanan (berinteraksi) | Memberikan kemampuan untuk berinteraksi dan melakukan tindakan pada peristiwa yang diterima melalui kait layanan. (Tidak lagi publik.) | vso.profile |
|
Pengaturan | vso.settings |
Pengaturan (baca) | Memberikan kemampuan untuk membaca pengaturan. | |
vso.settings_write |
Pengaturan (baca dan tulis) | Memberikan kemampuan untuk membuat dan membaca pengaturan. | ||
Simbol | vso.symbols |
Simbol (baca) | Memberikan kemampuan untuk membaca simbol. | vso.profile |
vso.symbols_write |
Simbol (baca dan tulis) | Memberikan kemampuan untuk membaca dan menulis simbol. | vso.symbols |
|
vso.symbols_manage |
Simbol (baca, tulis, dan kelola) | Memberikan kemampuan untuk membaca, menulis, dan mengelola simbol. | vso.symbols_write |
|
Grup Tugas | vso.taskgroups_read |
Grup Tugas (baca) | Memberikan kemampuan untuk membaca grup tugas. | |
vso.taskgroups_write |
Grup Tugas (baca, buat) | Memberikan kemampuan untuk membaca dan membuat grup tugas. | vso.taskgroups_read |
|
vso.taskgroups_manage |
Grup Tugas (membaca, membuat, dan mengelola) | Memberikan kemampuan untuk membaca, membuat, dan mengelola grup tugas. | vso.taskgroups_write |
|
Dasbor Tim | vso.dashboards |
Dasbor tim (baca) | Memberikan kemampuan untuk membaca informasi dasbor tim. | |
vso.dashboards_manage |
Dasbor tim (kelola) | Memberikan kemampuan untuk mengelola informasi dasbor tim. | vso.dashboards |
|
Manajemen Pengujian | vso.test |
Manajemen pengujian (baca) | Memberikan kemampuan untuk membaca rencana pengujian, kasus, hasil, dan artefak terkait manajemen pengujian lainnya. | vso.profile |
vso.test_write |
Manajemen pengujian (baca dan tulis) | Memberikan kemampuan untuk membaca, membuat, dan memperbarui rencana pengujian, kasus, hasil, dan artefak terkait manajemen pengujian lainnya. | vso.test |
|
Benang | vso.threads_full |
Utas PR | Memberikan kemampuan untuk membaca dan menulis untuk menarik utas komentar permintaan. | |
Token | vso.tokens |
Token Otorisasi yang Didelegasikan | Memberikan kemampuan untuk mengelola token otorisasi yang didelegasikan kepada pengguna. | |
vso.tokenadministration |
Administrasi Token | Memberikan kemampuan untuk mengelola (melihat dan mencabut) token yang ada kepada administrator organisasi. | ||
Profil Pengguna | vso.profile |
Profil pengguna (baca) | Memberikan kemampuan untuk membaca profil, akun, koleksi, proyek, tim, dan artefak organisasi tingkat atas Lainnya. | |
vso.profile_write |
Profil pengguna (tulis) | Memberikan kemampuan untuk menulis ke profil Anda. | vso.profile |
|
Grup Variabel | vso.variablegroups_read |
Grup Variabel (baca) | Memberikan kemampuan untuk membaca grup variabel. | |
vso.variablegroups_write |
Grup Variabel (baca, buat) | Memberikan kemampuan untuk membaca dan membuat grup variabel. | vso.variablegroups_read |
|
vso.variablegroups_manage |
Grup Variabel (baca, buat, dan kelola) | Memberikan kemampuan untuk membaca, membuat, dan mengelola grup variabel. | vso.variablegroups_write |
|
Wiki | vso.wiki |
Wiki (baca) | Memberikan kemampuan untuk membaca wiki, halaman wiki, dan lampiran wiki. Juga memberikan kemampuan untuk mencari halaman wiki. | |
vso.wiki_write |
Wiki (baca dan tulis) | Memberikan kemampuan untuk membaca, membuat, dan memperbarui wiki, halaman wiki, dan lampiran wiki. | vso.wiki |
|
Item Kerja | vso.work |
Item kerja (baca) | Memberikan kemampuan untuk membaca item kerja, kueri, papan, jalur area dan iterasi, dan metadata terkait pelacakan item kerja lainnya. Juga memberikan kemampuan untuk menjalankan kueri, mencari item kerja, dan menerima pemberitahuan tentang peristiwa item kerja melalui kait layanan. | vso.hooks_write |
vso.work_write |
Item kerja (baca dan tulis) | Memberikan kemampuan untuk membaca, membuat, dan memperbarui item dan kueri kerja, memperbarui metadata papan, area baca dan jalur perulangan item kerja lainnya yang melacak metadata terkait, menjalankan kueri, dan untuk menerima pemberitahuan tentang peristiwa item kerja melalui kait layanan. | vso.work |
|
vso.work_full |
Item kerja (penuh) | Memberikan akses penuh ke item kerja, kueri, backlog, paket, dan metadata pelacakan item kerja. Juga menyediakan kemampuan untuk menerima pemberitahuan tentang peristiwa item kerja melalui kait layanan. | vso.work_write |
|
Peniruan Identitas Pengguna | user_impersonation |
Peniruan Identitas Pengguna | Memiliki akses penuh ke REST API Visual Studio Team Services. Minta dan/atau setujui cakupan ini dengan hati-hati karena sangat kuat! |
FAQ
Pertanyaan Umum
T: Dapatkah saya menggunakan OAuth dengan aplikasi ponsel saya?
J: Tidak. Azure DevOps Services hanya mendukung alur server web, sehingga tidak ada cara untuk menerapkan OAuth, karena Anda tidak dapat menyimpan rahasia aplikasi dengan aman.
T: Dapatkah saya menggunakan OAuth dengan titik akhir SOAP dan REST API?
J: Tidak. OAuth hanya didukung di REST API.