Menggunakan token akses pribadi
Layanan Azure DevOps | Azure DevOps Server 2022 - Azure DevOps Server 2019
Token Akses Pribadi (PAT) berfungsi sebagai kata sandi alternatif untuk mengautentikasi ke Azure DevOps. PAT ini mengidentifikasi Anda dan menentukan aksesibilitas dan cakupan akses Anda. Oleh karena itu, perlakukan PATS dengan tingkat kewaspadaan yang sama dengan kata sandi.
Saat Anda menggunakan alat Microsoft, akun Microsoft (MSA) atau ID Microsoft Entra Anda adalah metode yang dikenali dan didukung. Jika Anda menggunakan alat non-Microsoft yang tidak mendukung akun Microsoft atau Microsoft Entra, atau jika Anda lebih suka tidak berbagi kredensial utama Anda dengan alat-alat ini, PATs adalah alternatif yang cocok.
Artikel ini memandu Anda membuat, menggunakan, memodifikasi, dan mencabut PATs untuk Azure DevOps.
Anda dapat mengelola PAT menggunakan metode berikut:
- Antarmuka pengguna (UI): Melalui pengaturan pengguna, sebagaimana dirinci dalam artikel ini
- API MANAJEMEN Siklus Hidup PAT
Untuk membuat PAT untuk alat non-Microsoft, Anda dapat menggunakan pengelola kredensial Git atau membuatnya secara manual. Sebaiknya tinjau panduan autentikasi kami untuk memilih mekanisme autentikasi yang sesuai. PATs menyediakan alternatif mudah untuk proyek yang lebih kecil yang tidak memerlukan solusi yang luas. Tanpa manajer kredensial, pengguna memasukkan kredensial mereka setiap kali.
Prasyarat
- Izin:
- Memiliki izin untuk mengakses dan mengubah pengaturan pengguna Anda di mana PAT dikelola.
- Periksa izin: Untuk memeriksa izin Anda, lakukan salah satu proses berikut di Azure DevOps:
- Buka profil Anda dan pilih Pengaturan>pengguna Token akses pribadi. Jika Anda dapat melihat dan mengelola PAT Anda di sini, Anda memiliki izin yang diperlukan.
- Buka proyek Anda dan pilih Izin pengaturan>Proyek. Temukan akun pengguna Anda dalam daftar dan periksa izin yang ditetapkan untuk Anda. Cari izin yang terkait dengan pengelolaan token atau pengaturan pengguna.
- Periksa izin: Untuk memeriksa izin Anda, lakukan salah satu proses berikut di Azure DevOps:
- Jika organisasi Anda memiliki kebijakan, Administrator Azure DevOps mungkin perlu memberi Anda izin tertentu atau menambahkan Anda ke daftar yang diizinkan untuk membuat dan mengelola PATs.
- Bergantung pada tugas yang ingin Anda lakukan dengan PAT, Anda mungkin memerlukan izin tambahan. Misalnya:
- Build: Baca & jalankan
- Kode: Membaca, menulis, & mengelola
- Lingkungan: Baca & kelola
- Proyek dan tim: Membaca, menulis, & mengelola
- Grup variabel: Baca & buat
- Memiliki izin untuk mengakses dan mengubah pengaturan pengguna Anda di mana PAT dikelola.
- Tingkat akses: Memiliki setidaknya akses Dasar.
- Praktik terbaik keamanan: Biasakan diri Anda dengan praktik terbaik keamanan untuk mengelola PAT, seperti menggunakannya hanya jika perlu dan memutarnya secara teratur.
Membuat PAT
Masuk ke organisasi Anda (
https://dev.azure.com/{Your_Organization}
).Dari halaman beranda Anda, buka pengaturan pengguna dan pilih Token akses pribadi.
Pilih + Token Baru.
Beri nama token Anda, pilih organisasi tempat Anda ingin menggunakan token, lalu atur token Anda kedaluwarsa secara otomatis setelah jumlah hari yang ditetapkan.
Pilih cakupan token ini untuk mengotorisasi tugas spesifik Anda.
Misalnya, untuk membuat token untuk agen build dan rilis untuk mengautentikasi ke Azure DevOps, atur cakupan token ke Kumpulan Agen (Baca &kelola). Untuk membaca peristiwa log audit dan mengelola atau menghapus aliran, pilih Baca Log Audit, lalu pilih Buat.
Catatan
Anda mungkin dibatasi untuk membuat PATs cakupan penuh. Jika demikian, Administrator Azure DevOps Anda di MICROSOFT Entra ID telah mengaktifkan kebijakan yang membatasi Anda ke serangkaian cakupan tertentu yang ditentukan khusus. Untuk informasi selengkapnya, lihat Mengelola PAT dengan kebijakan/Membatasi pembuatan EK yang tercakup penuh. Untuk PAT yang ditentukan khusus, cakupan yang diperlukan untuk mengakses API Tata Kelola Komponen,
vso.governance
, tidak dapat dipilih di UI.Setelah selesai, salin token dan simpan di lokasi yang aman. Untuk keamanan Anda, keamanan tidak ditampilkan lagi.
Gunakan PAT Anda di mana saja kredensial pengguna Anda diperlukan untuk autentikasi di Azure DevOps.
Penting
- Perlakukan PAT dengan hati-hati yang sama dengan kata sandi Anda dan jaga kerahasiaannya.
- Masuk dengan PAT baru Anda dalam waktu 90 hari untuk organisasi yang didukung oleh ID Microsoft Entra; jika tidak, PAT menjadi tidak aktif. Untuk informasi selengkapnya, lihat Frekuensi masuk pengguna untuk Akses Bersyarat.
Notifications
Selama masa pakai PAT, pengguna menerima dua pemberitahuan: yang pertama pada saat pembuatan dan tujuh hari kedua sebelum kedaluwarsa.
Setelah membuat PAT, Anda menerima pemberitahuan yang mirip dengan contoh berikut. Pemberitahuan ini berfungsi sebagai konfirmasi bahwa PAT Anda berhasil ditambahkan ke organisasi Anda.
Gambar berikut menunjukkan contoh pemberitahuan tujuh hari sebelum PAT Anda kedaluwarsa.
Untuk informasi selengkapnya, lihat Mengonfigurasi server SMTP dan menyesuaikan email untuk pemberitahuan dan permintaan umpan balik.
Pemberitahuan tak terduga
Jika Anda mendapatkan pemberitahuan PAT yang tidak terduga, itu mungkin berarti bahwa administrator atau alat membuat PAT untuk Anda. Berikut adalah beberapa contoh.
- Token bernama "git:
https://dev.azure.com/{Your_Organization}
on YourMachine" akan dibuat saat Anda terhubung ke repositori Azure DevOps Git melalui git.exe. - Token bernama "Service Hooks: : Azure App Service: : Deploy web app" akan dibuat saat Anda atau administrator menyiapkan penyebaran aplikasi web Azure App Service.
- Token bernama "WebAppLoadTestCDIntToken" dibuat saat pengujian beban web disiapkan sebagai bagian dari alur oleh Anda atau administrator.
- Token bernama "Integrasi Microsoft Teams" dibuat saat Ekstensi Olahpesan Integrasi Microsoft Teams disiapkan.
Peringatan
- Cabut PAT jika Anda menduga ada kesalahan. Ikuti langkah-langkah untuk mencabut PAT dan mengubah kata sandi Anda.
- Tanyakan kepada administrator Anda apakah Anda adalah pengguna Microsoft Entra untuk melihat apakah organisasi Anda diakses oleh sumber atau lokasi yang tidak diketahui.
- Tinjau FAQ tentang check-in PAT yang tidak disengaja ke repositori GitHub publik.
Menggunakan PAT
PAT Anda berfungsi sebagai identitas digital Anda, seperti kata sandi.
Git
Interaksi Git memerlukan nama pengguna, yang dapat berupa apa pun kecuali string kosong. Untuk menggunakan PAT dengan autentikasi dasar HTTP, Base64-encode
Anda $MyPat
seperti yang ditunjukkan di blok kode berikut.
Di PowerShell, masukkan kode berikut.
$MyPat = 'yourPat'
$headerValue = "Authorization: Basic " + [Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes(":" + $MyPat))
$env:GIT_AUTH_HEADER = $headerValue
git --config-env=http.extraheader=GIT_AUTH_HEADER clone https://dev.azure.com/yourOrgName/yourProjectName/_git/yourRepoName
Gunakan manajer kredensial untuk menghindari memasukkan kredensial Anda setiap kali dan menjaga token Anda lebih aman:
- Gunakan Git Credential Manager.
- Pasang Git untuk Windows.
Repositori yang ada
Hapus asal yang sudah ada: Jika sebelumnya Anda menambahkan asal menggunakan nama pengguna, hapus dengan menjalankan perintah berikut:
git remote remove origin
Autentikasi dengan PAT: Jika Anda mengalami masalah dengan autentikasi standar, jalankan perintah berikut untuk mengautentikasi melalui baris perintah:
git remote add origin https://dev.azure.com/<PAT>@<company_machineName>:/<project-name>/_git/<repo_name>
git push -u origin --all
path to git repo = /_git/do
mengacu pada struktur jalur URL yang digunakan di Azure DevOps untuk repositori Git. Segmen/_git/
menunjukkan bahwa Anda mengakses repositori Git, dan Anda harus menggantido
dengan nama repositori Anda yang sebenarnya. Misalnya, jika repositori Anda diberi namamy-repo
, jalurnya adalah '/_git/my-repo
'.Repositori kloning: Jika Anda menggunakan Git dan perlu mengautentikasi, jalankan perintah berikut:
git clone https://{organization}@dev.azure.com/{organization}/_git/{repository}
Ganti
{organization}
dengan nama organisasi Azure DevOps Anda dan{repository}
dengan nama repositori Anda.
Menggunakan PAT dalam kode Anda
Anda dapat menggunakan PAT dalam kode Anda untuk mengautentikasi permintaan API dan mengotomatiskan alur kerja. Untuk melakukannya, sertakan PAT di header otorisasi permintaan HTTP Anda.
Untuk menyediakan PAT melalui header HTTP, pertama-tama konversikan ke Base64
string. Contoh berikut menunjukkan cara mengonversi ke Base64
menggunakan C#.
Authorization: Basic BASE64_USERNAME_PAT_STRING
String yang dihasilkan kemudian dapat disediakan sebagai header HTTP dalam format berikut.
Sampel berikut menggunakan kelas HttpClient di C#.
public static async void GetBuilds()
{
try
{
var personalaccesstoken = "PATFROMWEB";
using (HttpClient client = new HttpClient())
{
client.DefaultRequestHeaders.Accept.Add(
new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic",
Convert.ToBase64String(
System.Text.ASCIIEncoding.ASCII.GetBytes(
string.Format("{0}:{1}", "", personalaccesstoken))));
using (HttpResponseMessage response = client.GetAsync(
"https://dev.azure.com/{organization}/{project}/_apis/build/builds?api-version=5.0").Result)
{
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
Tip
Saat Anda menggunakan variabel, tambahkan $
di awal string, seperti dalam contoh berikut.
public static async void GetBuilds()
{
try
{
var personalaccesstoken = "PATFROMWEB";
using (HttpClient client = new HttpClient())
{
client.DefaultRequestHeaders.Accept.Add(
new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic",
Convert.ToBase64String(
System.Text.ASCIIEncoding.ASCII.GetBytes(
string.Format("{0}:{1}", "", personalaccesstoken))));
using (HttpResponseMessage response = client.GetAsync(
$"https://dev.azure.com/{organization}/{project}/_apis/build/builds?api-version=5.0").Result)
{
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
Saat kode Anda berfungsi, saat yang tepat untuk beralih dari autentikasi dasar ke OAuth.
Untuk informasi selengkapnya dan contoh cara menggunakan PATs, lihat artikel berikut ini:
- Menyiapkan manajer kredensial Git
- Mengakses REST API
- Menggunakan NuGet di Mac
- Mengautentikasi klien pelaporan
- Mulai menggunakan Azure DevOps CLI
Mengubah PAT
Lakukan langkah-langkah berikut untuk:
- Regenerasi PAT untuk membuat token baru, yang membatalkan yang sebelumnya.
- Memperpanjang PAT untuk meningkatkan periode validitasnya.
- Ubah cakupan PAT untuk mengubah izinnya.
Dari beranda Anda, buka pengaturan pengguna Anda, lalu pilih Profil.
Di bawah Keamanan, pilih Token akses pribadi. Pilih token yang ingin Anda ubah, lalu Edit.
Edit nama token, kedaluwarsa token, atau cakupan akses yang terkait dengan token, lalu pilih Simpan.
Mencabut PAT
Anda dapat mencabut PAT kapan saja karena alasan ini dan lainnya:
- Cabut PAT jika Anda menduga itu disusupi.
- Cabut PAT ketika tidak lagi diperlukan.
- Cabut PAT untuk menerapkan kebijakan keamanan atau persyaratan kepatuhan.
Dari beranda Anda, buka pengaturan pengguna Anda, lalu pilih Profil.
Di bawah Keamanan, pilih Token akses pribadi. Pilih token yang ingin Anda cabut aksesnya, lalu pilih Cabut.
Pilih Cabut dalam dialog konfirmasi.
Untuk informasi selengkapnya, lihat Mencabut PAT pengguna untuk admin.
Perubahan pada format
Pada Juli 2024, kami secara signifikan mengubah format PATs yang dikeluarkan oleh Azure DevOps. Perubahan ini memberikan lebih banyak manfaat keamanan dan meningkatkan alat deteksi rahasia yang tersedia melalui penawaran mitra kami, seperti GitHub Advanced Security untuk Azure DevOps. Format PAT baru ini mengikuti format yang direkomendasikan di semua produk Microsoft. Dimasukkannya bit yang lebih dapat diidentifikasi meningkatkan tingkat deteksi positif palsu dari alat deteksi rahasia ini dan memungkinkan kita untuk mengurangi kebocoran yang terdeteksi lebih cepat.
Perubahan kunci:
- Panjang token yang ditingkatkan: Token baru sekarang memiliki panjang 84 karakter, dengan 52 karakter menjadi data acak. Peningkatan panjang ini meningkatkan entropi keseluruhan, membuat token lebih tahan terhadap potensi serangan brute force.
- Tanda tangan tetap: Token yang dikeluarkan oleh layanan kami menyertakan tanda tangan tetap
AZDO
pada posisi 76-80.
Tindakan yang diperlukan:
- Regenerasi PAT yang ada: Kami sangat menyarankan untuk meregenerasi semua PAT yang saat ini digunakan untuk memanfaatkan peningkatan keamanan ini.
- Dukungan integrator: Integrator harus memperbarui sistem mereka untuk mengakomodasi panjang token baru dan yang sudah ada.
Penting
Kedua format tetap valid untuk masa depan yang dapat diperkirakan, tetapi kami secara aktif mendorong pelanggan untuk beralih ke format 84 karakter baru. Ketika adopsi format baru meningkat, kami mempertimbangkan untuk menghentikan format 52 karakter yang lebih lama dan semua token yang dikeluarkan dalam gaya tersebut.
Artikel terkait
- Pelajari tentang keamanan, autentikasi, dan otorisasi
- Meninjau izin dan akses default untuk Azure DevOps
- Mencabut PAT pengguna (untuk admin)
- Mengelola perwakilan layanan dan identitas terkelola di Azure DevOps
Tanya Jawab Umum
T: Mengapa saya tidak dapat mengedit atau meregenerasi PAT yang dicakup ke satu organisasi?
A: Pastikan Anda masuk ke organisasi tempat PAT Anda dicakup. Anda dapat melihat semua PAT saat masuk ke organisasi mana pun di ID Microsoft Entra yang sama, tetapi Anda hanya dapat mengedit token cakupan organisasi saat Masuk ke organisasi tempat mereka tercakup.
T: Apa yang terjadi pada PAT jika akun pengguna dinonaktifkan?
A: Saat pengguna dihapus dari Azure DevOps, PAT tidak valid dalam waktu 1 jam. Jika organisasi Anda tersambung ke ID Microsoft Entra, PAT juga tidak valid di ID Microsoft Entra, karena milik pengguna. Sebaiknya putar PAT ke pengguna atau akun layanan lain agar layanan tetap berjalan.
T: Apakah ada cara untuk memperbarui PAT melalui REST API?
A: Ya, ada cara untuk memperbarui, mengelola, dan membuat PATs menggunakan PAT Lifecycle Management API kami. Untuk informasi selengkapnya, lihat Mengelola PAT menggunakan REST API dan FAQ.
T: Dapatkah saya menggunakan autentikasi dasar dengan semua REST API Azure DevOps?
J: Tidak. Anda dapat menggunakan autentikasi dasar dengan sebagian besar REST API Azure DevOps, tetapi organisasi dan profil hanya mendukung OAuth. Untuk informasi selengkapnya, lihat Mengelola PAT menggunakan REST API.
T: Apa yang terjadi jika saya secara tidak sengaja memeriksa PAT saya ke repositori publik di GitHub?
A: Azure DevOps memindai PAT yang diperiksa ke repositori publik di GitHub. Ketika kami menemukan token bocor, kami segera mengirim pemberitahuan email terperinci ke pemilik token dan mencatat peristiwa di log audit organisasi Azure DevOps Anda. Kecuali Anda menonaktifkan kebijakan Token akses pribadi yang dicabut secara otomatis, kami segera mencabut PAT yang bocor. Kami mendorong pengguna yang terpengaruh untuk mengurangi masalah dengan mencabut token yang bocor dan menggantinya dengan token baru.
Untuk informasi selengkapnya, lihat Mencabut TRO yang bocor secara otomatis.
T: Dapatkah saya menggunakan token akses pribadi sebagai ApiKey untuk menerbitkan paket NuGet ke umpan Azure Artifacts menggunakan baris perintah dotnet/nuget.exe?
J: Tidak. Azure Artifacts tidak mendukung penerusan token akses pribadi sebagai ApiKey. Saat menggunakan lingkungan pengembangan lokal, sebaiknya instal Penyedia Kredensial Artefak Azure untuk mengautentikasi dengan Azure Artifacts. Untuk mengetahui informasi selengkapnya, lihat contoh berikut: dotnet, NuGet.exe. Jika Anda ingin menerbitkan paket menggunakan Azure Pipelines, gunakan tugas NuGet Authenticate untuk mengautentikasi dengan contoh umpan Anda.
T: Mengapa PAT saya berhenti bekerja?
A: Autentikasi PAT mengharuskan Anda untuk secara teratur masuk ke Azure DevOps menggunakan alur autentikasi lengkap. Masuk setiap 30 hari sekali cukup untuk banyak pengguna, tetapi Anda mungkin perlu masuk lebih sering tergantung pada konfigurasi Microsoft Entra Anda. Jika PAT Anda berhenti berfungsi, pertama-tama coba masuk ke organisasi Anda dan selesaikan permintaan autentikasi lengkap. Jika PAT Anda masih tidak berfungsi, periksa apakah kedaluwarsa.
T: Bagaimana cara membuat kunci akses yang tidak terkait dengan orang tertentu untuk tujuan penyebaran?
A: Di Azure DevOps, Anda dapat membuat kunci akses yang tidak terkait dengan orang tertentu dengan menggunakan Perwakilan Layanan atau Mengelola Identitas. Untuk informasi selengkapnya, lihat Mengelola koneksi layanan, Menggunakan rahasia Azure Key Vault di Azure Pipelines.