Tentang keamanan, autentikasi, dan otorisasi

Layanan Azure DevOps | Azure DevOps Server 2022 - Azure DevOps Server 2019

Azure DevOps menggunakan banyak konsep keamanan untuk memastikan hanya pengguna yang harus memiliki akses ke fitur, fungsi, dan data yang memiliki akses. Akun mendapatkan akses ke Azure DevOps melalui autentikasi kredensial keamanan dan otorisasi hak akun mereka untuk mengakses fitur atau fungsi.

Artikel ini dibuat berdasarkan informasi yang disediakan di Mulai menggunakan izin, akses, dan grup keamanan. Administrator mendapat manfaat dari memahami jenis akun, metode autentikasi, metode otorisasi, dan kebijakan yang digunakan untuk mengamankan Azure DevOps.


Jenis akun

  • Pengguna
  • Pemilik organisasi
  • Akun layanan
  • Perwakilan layanan atau identitas terkelola
  • Agen pekerjaan

Autentikasi

  • Kredensial Pengguna
  • Autentikasi Windows
  • Autentikasi dua faktor (2FA)
  • Autentikasi kunci SSH
  • Token akses pribadi
  • Konfigurasi Oauth
  • Pustaka autentikasi Direktori Aktif

Otorisasi

  • Keanggotaan grup keamanan
  • Kontrol Akses Berbasis Peran
  • Tingkat akses
  • Gunakan bendera fitur
  • Namespace keamanan & izin

Kebijakan

  • URL kebijakan privasi
  • Koneksi aplikasi dan kebijakan keamanan
  • Kebijakan pengguna
  • Repositori Git dan kebijakan cabang


Jenis akun

  • Pengguna
  • Akun layanan
  • Perwakilan layanan atau identitas terkelola
  • Agen pekerjaan

Autentikasi

  • Kredensial Pengguna
  • Autentikasi Windows
  • Autentikasi dua faktor (2FA)
  • Autentikasi kunci SSH
  • Token akses pribadi
  • Konfigurasi Oauth
  • Pustaka autentikasi Direktori Aktif

Otorisasi

  • Keanggotaan grup keamanan
  • Izin berbasis peran
  • Tingkat akses
  • Gunakan bendera fitur
  • Namespace keamanan & izin

Kebijakan

  • Repositori Git dan kebijakan cabang

Penting

Azure DevOps tidak lagi mendukung autentikasi Kredensial Alternatif sejak awal 2 Maret 2020. Jika Anda masih menggunakan Kredensial Alternatif, kami sangat mendorong Anda untuk beralih ke metode autentikasi yang lebih aman (misalnya, token akses pribadi). Pelajari selengkapnya.

Baik layanan cloud kami, Azure DevOps Services, dan server lokal, Azure DevOps Server, mendukung proyek pengembangan perangkat lunak, dari perencanaan melalui penyebaran. Azure DevOps menggunakan infrastruktur Platform as a Service microsoft Azure dan banyak layanan Azure, termasuk database Azure SQL, untuk memberikan layanan yang andal dan tersedia secara global untuk proyek pengembangan Anda.

Untuk informasi selengkapnya tentang langkah-langkah yang diambil Microsoft untuk menjaga proyek Anda di Azure DevOps Services tetap aman, tersedia, aman, dan privat, lihat laporan resmi ini, Gambaran Umum Perlindungan Data Azure DevOps Services.

Akun

Meskipun jenis akun utama yang menarik adalah akun pengguna manusia yang Anda tambahkan ke organisasi atau proyek Anda, Azure DevOps mendukung jenis akun lain untuk melakukan berbagai operasi. Ini termasuk jenis akun berikut.

  • Pemilik organisasi: Pembuat organisasi Azure DevOps Services atau pemilik yang ditetapkan. Untuk mempelajari siapa pemilik organisasi untuk organisasi Anda, lihat Mencari pemilik organisasi.
  • Akun layanan: Akun Azure DevOps internal yang digunakan untuk mendukung layanan tertentu, seperti Agent Pool Service, PipelinesSDK. Untuk deskripsi akun layanan, lihat Grup keamanan, akun layanan, dan izin.
  • Perwakilan layanan atau identitas terkelola: Aplikasi Microsoft Entra atau identitas terkelola yang telah ditambahkan ke organisasi Anda untuk melakukan tindakan atas nama aplikasi pihak ketiga. Beberapa perwakilan layanan merujuk ke akun Azure DevOps internal untuk mendukung operasi internal.
  • Agen pekerjaan: Akun internal yang digunakan untuk menjalankan pekerjaan tertentu pada jadwal reguler.
  • Akun pihak ketiga: Akun yang memerlukan akses untuk mendukung Web hook, koneksi layanan, atau aplikasi pihak ketiga lainnya.

Di seluruh dokumen ini, pengguna dapat merujuk ke semua identitas yang telah ditambahkan ke Hub Pengguna, yang dapat mencakup pengguna manusia dan perwakilan layanan.

  • Akun layanan: Akun Azure DevOps internal yang digunakan untuk mendukung layanan tertentu, seperti Agent Pool Service, PipelinesSDK. Untuk deskripsi akun layanan, lihat Grup keamanan, akun layanan, dan izin.
  • Perwakilan layanan atau identitas terkelola: Aplikasi Microsoft Entra atau identitas terkelola yang telah ditambahkan ke organisasi Anda untuk melakukan tindakan atas nama aplikasi pihak ketiga. Beberapa perwakilan layanan merujuk ke akun Azure DevOps internal untuk mendukung operasi internal.
  • Agen pekerjaan: Akun internal yang digunakan untuk menjalankan pekerjaan tertentu pada jadwal reguler.
  • Akun pihak ketiga: Akun yang memerlukan akses untuk mendukung Web hook, koneksi layanan, atau aplikasi pihak ketiga lainnya.

Cara paling efektif untuk mengelola akun adalah dengan menambahkannya ke grup keamanan.

Catatan

Pemilik organisasi dan anggota grup Administrator Koleksi Proyek diberikan akses penuh ke sebagian besar semua fitur dan fungsi.

Autentikasi

Autentikasi memverifikasi identitas akun berdasarkan kredensial yang disediakan saat mereka masuk ke Azure DevOps. Sistem ini terintegrasi dengan dan mengandalkan fitur keamanan yang disediakan oleh sistem lain ini:

  • Microsoft Entra ID
  • Akun Microsoft (MSA)
  • Direktori Aktif (AD)

MICROSOFT Entra ID dan MSA mendukung autentikasi cloud. Kami merekomendasikan ID Microsoft Entra saat Anda perlu mengelola sekelompok besar pengguna. Jika tidak, jika Anda memiliki basis pengguna kecil yang mengakses organisasi Anda di Azure DevOps, Anda dapat menggunakan akun Microsoft. Untuk informasi selengkapnya, lihat Tentang mengakses Azure DevOps dengan ID Microsoft Entra.

Untuk penyebaran lokal, AD direkomendasikan saat mengelola sekelompok besar pengguna. Untuk informasi selengkapnya, lihat Menyiapkan grup untuk digunakan dalam penyebaran lokal.

Metode autentikasi, mengintegrasikan dengan layanan dan aplikasi lain

Aplikasi dan layanan lain dapat diintegrasikan dengan layanan dan sumber daya di Azure DevOps. Untuk mengakses akun Anda tanpa meminta kredensial pengguna berkali-kali, aplikasi dapat menggunakan metode autentikasi berikut.

  • Token akses pribadi untuk menghasilkan token atas nama Anda sendiri untuk:

    • Mengakses sumber daya atau aktivitas tertentu, seperti build atau item kerja
    • Berbagai klien seperti Xcode dan NuGet yang memerlukan nama pengguna dan kata sandi sebagai kredensial dasar serta tidak mendukung fitur akun Microsoft dan Microsoft Entra seperti autentikasi multifaktor
    • Mengakses Azure DevOps REST API
  • Azure DevOps OAuth untuk membuat token atas nama pengguna agar dapat mengakses REST API. Accounts dan Profiles API hanya mendukung OAuth.

  • Autentikasi SSH untuk membuat kunci enkripsi saat Anda menggunakan Linux, macOS, atau Windows yang menjalankan Git untuk Windows dan tidak dapat menggunakan manajer kredensial atau token akses pribadi Git untuk autentikasi HTTPS.

  • Perwakilan layanan atau identitas terkelola untuk menghasilkan token Microsoft Entra atas nama aplikasi atau layanan, yang biasanya mengotomatiskan beberapa alur kerja yang perlu mengakses sumber daya Azure DevOps. Sebagian besar tindakan yang dulunya dilakukan oleh akun layanan dan PAT dapat dilakukan menggunakan perwakilan layanan atau identitas terkelola.

Secara default, akun atau koleksi Anda memungkinkan akses untuk semua metode autentikasi. Anda dapat membatasi akses, tetapi Anda harus membatasi akses setiap metode secara khusus. Saat Anda menolak akses ke metode autentikasi, tidak ada aplikasi yang dapat menggunakan metode tersebut untuk mengakses akun Anda. Aplikasi apa pun yang sebelumnya memiliki akses akan mengalami kesalahan autentikasi dan tidak dapat mengakses akun Anda.

Untuk informasi selengkapnya tentang cara kami menyimpan kredensial Anda, lihat Penyimpanan kredensial untuk Azure DevOps.

Untuk informasi selengkapnya tentang cara memilih mekanisme autentikasi yang tepat, lihat Panduan untuk autentikasi.

Authorization

Otorisasi memverifikasi bahwa identitas yang mencoba terhubung memiliki izin yang diperlukan untuk mengakses layanan, fitur, fungsi, objek, atau metode. Otorisasi selalu terjadi setelah autentikasi berhasil. Jika koneksi tidak diautentikasi, koneksi akan gagal sebelum pemeriksaan otorisasi dilakukan. Jika autentikasi koneksi berhasil, tindakan tertentu mungkin masih tidak diizinkan karena pengguna atau grup tidak memiliki otorisasi untuk melakukan tindakan tersebut.

Otorisasi bergantung pada izin yang ditetapkan ke akun. Izin diberikan langsung ke akun, atau melalui keanggotaan dalam grup keamanan atau peran keamanan. Tingkat akses dan bendera fitur juga dapat memberikan atau membatasi akses ke fitur. Untuk informasi selengkapnya tentang metode otorisasi ini, lihat Mulai menggunakan izin, akses, dan grup keamanan.

Namespace dan izin keamanan

Namespace keamanan menyimpan data yang menentukan tingkat akses yang harus dilakukan akun Azure DevOps pada sumber daya tertentu. Setiap keluarga sumber daya, seperti item kerja atau repositori Git, diamankan melalui namespace layanan yang unik. Setiap namespace keamanan berisi nol atau lebih daftar kontrol akses (ACL). Setiap ACL berisi token, bendera warisan, dan satu set entri kontrol akses (ACL) nol atau lebih. Setiap ACE berisi deskriptor identitas, bitmask izin yang diizinkan, dan bitmask izin yang ditolak.

Untuk informasi selengkapnya, lihat Namespace keamanan dan referensi izin.

Kebijakan keamanan

Untuk mengamankan organisasi dan kode, Anda dapat mengatur banyak kebijakan. Secara khusus, Anda dapat mengaktifkan atau menonaktifkan kebijakan berikut:

Umum

Koneksi aplikasi dan kebijakan keamanan

Gunakan kebijakan penyewa Microsoft Entra untuk membatasi pembuatan organisasi baru hanya untuk pengguna yang diinginkan. Kebijakan ini dinonaktifkan secara default dan hanya valid saat organisasi tersambung ke ID Microsoft Entra. Periksa batasi pembuatan organisasi untuk detail selengkapnya.

Kebijakan berikut menentukan akses yang ingin Anda berikan kepada pengguna dan aplikasi kepada organisasi Anda:

Kebijakan pengguna

  • Akses tamu eksternal (Hanya valid saat organisasi tersambung ke MICROSOFT Entra ID.): Saat diaktifkan, undangan dapat dikirim ke akun email pengguna yang bukan anggota ID Microsoft Entra penyewa melalui halaman Pengguna . Untuk informasi selengkapnya, lihat Menambahkan pengguna eksternal ke organisasi Anda.
  • Izinkan administrator tim dan proyek untuk mengundang pengguna baru: Hanya valid saat organisasi tersambung ke ID Microsoft Entra. Saat diaktifkan, administrator tim dan proyek dapat menambahkan pengguna melalui halaman Pengguna . Untuk informasi selengkapnya, lihat Membatasi undangan pengguna baru dari Administrator Proyek dan Tim.
  • Meminta akses: Hanya valid saat organisasi tersambung ke MICROSOFT Entra ID. Saat diaktifkan, pengguna dapat meminta akses ke sumber daya. Permintaan menghasilkan pemberitahuan email kepada administrator yang meminta peninjauan dan akses, sesuai kebutuhan. Untuk informasi selengkapnya, lihat Menambahkan pengguna eksternal ke organisasi Anda.
  • Mengundang pengguna GitHub: Hanya valid saat organisasi tidak tersambung ke ID Microsoft Entra. Saat diaktifkan, administrator dapat menambahkan pengguna berdasarkan akun pengguna GitHub mereka dari halaman Pengguna . Untuk informasi selengkapnya, lihat Faq mengautentikasi & mengundang pengguna GitHub.

Grup Pengguna Cakupan Proyek

Secara default, pengguna yang ditambahkan ke organisasi dapat melihat semua informasi dan pengaturan organisasi dan proyek. Ini termasuk menampilkan daftar pengguna, daftar proyek, detail penagihan, data penggunaan, dan lainnya yang diakses melalui organisasi Pengaturan.

Penting

  • Fitur visibilitas terbatas yang dijelaskan di bagian ini hanya berlaku untuk interaksi melalui portal web. Dengan perintah REST API atau azure devops CLI, anggota proyek dapat mengakses data yang dibatasi.
  • Pengguna tamu yang merupakan anggota dalam grup terbatas dengan akses default di ID Microsoft Entra, tidak dapat mencari pengguna dengan pemilih orang. Saat fitur pratinjau dinonaktifkan untuk organisasi, atau saat pengguna tamu bukan anggota grup terbatas, pengguna tamu dapat mencari semua pengguna Microsoft Entra, seperti yang diharapkan.

Untuk membatasi pengguna tertentu, seperti Pemangku Kepentingan, pengguna tamu Microsoft Entra, atau anggota grup keamanan tertentu, Anda dapat mengaktifkan fitur pratinjau Batasi visibilitas dan kolaborasi pengguna ke proyek tertentu untuk organisasi. Setelah diaktifkan, setiap pengguna atau grup yang ditambahkan ke grup Pengguna Cakupan Proyek, dibatasi dengan cara berikut:

  • Hanya dapat mengakses halaman Gambaran Umum dan Proyek organisasi Pengaturan.
  • Hanya dapat menyambungkan dan melihat proyek yang telah ditambahkan secara eksplisit (lihat Menambahkan pengguna ke proyek atau tim.
  • Hanya dapat memilih identitas pengguna dan grup yang telah ditambahkan secara eksplisit ke proyek yang tersambung dengan mereka.

Untuk informasi selengkapnya, lihat Mengelola organisasi Anda, Membatasi visibilitas pengguna untuk proyek dan lainnya serta Mengelola fitur pratinjau.

Peringatan

Saat fitur Batasi visibilitas dan kolaborasi pengguna ke pratinjau proyek tertentu diaktifkan untuk organisasi, pengguna yang tercakup dalam proyek tidak dapat mencari pengguna yang ditambahkan ke organisasi melalui keanggotaan grup Microsoft Entra, bukan melalui undangan pengguna eksplisit. Ini adalah perilaku tak terduga dan resolusi sedang dikerjakan. Untuk mengatasi masalah ini sendiri, nonaktifkan fitur Batasi visibilitas dan kolaborasi pengguna ke pratinjau proyek tertentu untuk organisasi.

Repositori Git dan kebijakan cabang

Untuk mengamankan kode, Anda dapat mengatur banyak repositori Git dan kebijakan cabang. Untuk informasi lebih lanjut, lihat artikel berikut.

Keamanan Azure Repos dan Azure Pipelines

Karena repositori dan alur build dan rilis menimbulkan tantangan keamanan yang unik, fitur lain di luar fitur yang dibahas dalam artikel ini digunakan. Untuk informasi lebih lanjut, lihat artikel berikut.

Langkah berikutnya