Bagikan melalui


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.

Proses untuk mendapatkan otorisasi.

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.