Bagikan melalui


Tentang keamanan, autentikasi, dan otorisasi

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

Azure DevOps menggunakan berbagai konsep keamanan untuk memastikan bahwa hanya pengguna yang berwenang yang dapat mengakses fitur, fungsi, dan data. Pengguna mendapatkan akses ke Azure DevOps melalui autentikasi kredensial keamanan mereka dan otorisasi hak akun mereka untuk mengakses fitur atau fungsi tertentu.

Artikel ini dibuat berdasarkan informasi yang disediakan di Mulai menggunakan izin, akses, dan grup keamanan. Administrator dapat memperoleh 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 mendukung autentikasi Kredensial Alternatif. Jika Anda masih menggunakan Kredensial Alternatif, kami sangat mendorong Anda untuk beralih ke metode autentikasi yang lebih aman.

Azure DevOps Services (cloud) dan Azure DevOps Server (lokal) mendukung pengembangan perangkat lunak dari perencanaan hingga penyebaran. Mereka memanfaatkan infrastruktur dan layanan Platform as a Service Microsoft Azure, termasuk database Azure SQL, untuk menyediakan layanan yang andal dan tersedia secara global untuk proyek Anda.

Untuk informasi selengkapnya tentang bagaimana Microsoft memastikan proyek Azure DevOps Services Anda aman, tersedia, aman, dan privat, lihat gambaran umum perlindungan data Azure DevOps Services.

Akun

Meskipun akun pengguna manusia adalah fokus utama, Azure DevOps juga mendukung berbagai jenis akun lainnya untuk operasi yang berbeda. Ini termasuk jenis akun berikut:

  • Pemilik organisasi: Pembuat organisasi Azure DevOps Services atau pemilik yang ditetapkan. Untuk menemukan pemilik organisasi Anda, lihat Mencari pemilik organisasi.
  • Akun layanan: Organisasi 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 ditambahkan ke organisasi Anda untuk melakukan tindakan atas nama aplikasi pihak ketiga. Beberapa perwakilan layanan mengacu pada organisasi 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 artikel terkait keamanan kami, "pengguna" mengacu pada semua identitas yang ditambahkan ke Hub Pengguna, yang dapat mencakup pengguna manusia dan perwakilan layanan.

  • Akun layanan: Organisasi 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 ditambahkan ke organisasi Anda untuk melakukan tindakan atas nama aplikasi pihak ketiga. Beberapa perwakilan layanan mengacu pada organisasi 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 hampir semua fitur dan fungsi.

Autentikasi

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

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

MICROSOFT Entra ID dan MSA mendukung autentikasi cloud. Sebaiknya gunakan ID Microsoft Entra untuk mengelola sekelompok besar pengguna. Untuk basis pengguna kecil yang mengakses organisasi Azure DevOps Anda, akun Microsoft sudah cukup. Untuk informasi selengkapnya, lihat Tentang mengakses Azure DevOps dengan ID Microsoft Entra.

Untuk penyebaran lokal, AD direkomendasikan untuk 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 Azure DevOps. Untuk mengakses akun Anda tanpa berulang kali meminta kredensial pengguna, aplikasi dapat menggunakan metode autentikasi berikut:

  • Token akses pribadi (PATs) untuk menghasilkan token atas nama Anda 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 menghasilkan token atas nama pengguna untuk mengakses REST API. Accounts dan Profiles API hanya mendukung OAuth.

  • Autentikasi SSH untuk menghasilkan kunci enkripsi sendiri saat Anda menggunakan Linux, macOS, atau Windows yang menjalankan Git untuk Windows dan tidak dapat menggunakan pengelola kredensial Git atau PATs untuk autentikasi HTTPS.

  • Perwakilan layanan atau identitas terkelola untuk menghasilkan token Microsoft Entra atas nama aplikasi atau layanan, biasanya mengotomatiskan alur kerja yang perlu mengakses sumber daya Azure DevOps. Sebagian besar tindakan yang secara tradisional 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 dengan secara khusus membatasi setiap metode. 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 menerima kesalahan autentikasi dan tidak dapat mengakses akun Anda.

Untuk informasi lebih lanjut, baca artikel berikut:

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 gagal sebelum pemeriksaan otorisasi dilakukan. Bahkan jika autentikasi berhasil, tindakan tertentu mungkin masih tidak diizinkan jika pengguna atau grup tidak memiliki otorisasi.

Otorisasi tergantung pada izin yang ditetapkan kepada pengguna, baik secara langsung atau melalui keanggotaan dalam kelompok keamanan atau peran keamanan. Tingkat akses dan bendera fitur juga dapat mengelola akses ke fitur tertentu. Untuk informasi selengkapnya tentang metode otorisasi ini, lihat Mulai menggunakan izin, akses, dan grup keamanan.

Namespace dan izin keamanan

Namespace keamanan menentukan tingkat akses pengguna untuk tindakan tertentu pada sumber daya.

  • Setiap keluarga sumber daya, seperti item kerja atau repositori Git, memiliki namespace layanan yang unik.
  • Setiap namespace berisi nol atau lebih daftar kontrol akses (ACL).
    • Setiap ACL mencakup token, bendera warisan, dan entri kontrol akses (ACE).
    • Setiap ACE memiliki pendeskripsi 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 berbagai 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. Untuk informasi selengkapnya, lihat Membatasi pembuatan organisasi.

Kebijakan berikut menentukan akses yang diberikan kepada pengguna dan aplikasi dalam 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 Menyambungkan ke GitHub/FAQ.

Grup Pengguna Cakupan Proyek

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

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 pengaturan Organisasi.
  • Hanya dapat menyambungkan dan melihat proyek-proyek yang telah ditambahkan secara eksplisit.
  • Hanya dapat memilih identitas pengguna dan grup yang 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

Mengaktifkan fitur Batasi visibilitas dan kolaborasi pengguna ke pratinjau proyek tertentu mencegah pengguna cakupan proyek mencari pengguna yang ditambahkan ke organisasi melalui keanggotaan grup Microsoft Entra, bukan melalui undangan pengguna eksplisit. Ini adalah perilaku tak terduga, dan resolusi sedang berlangsung. Untuk mengatasi masalah ini, nonaktifkan fitur Batasi visibilitas dan kolaborasi pengguna ke pratinjau proyek tertentu untuk organisasi.

Repositori Git dan kebijakan cabang

Untuk mengamankan kode, Anda dapat mengatur berbagai 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 tambahan di luar fitur yang dibahas dalam artikel ini digunakan. Untuk informasi lebih lanjut, lihat artikel berikut.

Langkah berikutnya