Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Layanan Azure DevOps | Azure DevOps Server | Azure DevOps Server 2022
Token akses pribadi (PAT) bertindak sebagai kata sandi alternatif untuk mengautentikasi ke Azure DevOps. PAT ini mengidentifikasi Anda dan menentukan aksesibilitas dan cakupan akses Anda. Perlakukan token akses pribadi dengan tingkat kewaspadaan yang sama dengan kata sandi.
Perhatian
Hindari menggunakan PAT saat metode autentikasi yang lebih aman tersedia. PAT membawa risiko keamanan yang melekat karena kredensial berumur panjang yang dapat dibocorkan, dicuri, atau disalahgunakan. Gunakan token Microsoft Entra, identitas terkelola, atau perwakilan layanan jika memungkinkan.
Saat Anda menggunakan alat Microsoft, akun Microsoft atau Microsoft Entra ID Anda dikenali dan didukung. Jika Anda menggunakan alat yang tidak mendukung akun Microsoft Entra, atau jika Anda lebih suka tidak berbagi kredensial utama, pertimbangkan untuk menggunakan PAT sebagai metode autentikasi alternatif.
Petunjuk
Anda dapat menggunakan AI untuk membantu tugas ini nanti dalam artikel ini, atau lihat Mengaktifkan bantuan AI dengan Azure DevOps MCP Server untuk memulai.
Prasyarat
| Kategori | Persyaratan |
|---|---|
| Permissions | Izin untuk mengakses dan mengubah pengaturan pengguna Anda di mana PAT dikelola. - Buka profil Anda dan pilih Pengaturan> penggunaToken akses pribadi. Jika Anda dapat melihat dan mengelola PAT Anda di sini, Anda memiliki izin yang diperlukan. - Buka proyek Anda dan pilih pengaturan proyek >Izin. Temukan akun pengguna Anda dalam daftar dan periksa izin yang ditetapkan untuk Anda. Cari izin yang terkait dengan pengelolaan token atau pengaturan pengguna. - Jika organisasi Anda memiliki kebijakan, administrator mungkin perlu memberi Anda izin tertentu atau menambahkan Anda ke daftar yang diizinkan untuk membuat dan mengelola PATs. - PATs terhubung ke akun pengguna yang menambang token. Bergantung pada tugas yang dilakukan PAT, Anda mungkin memerlukan lebih banyak izin sendiri. |
| Tingkat akses | Setidaknya akses Dasar. |
| Tugas | Gunakan Token Akses Pribadi hanya jika perlu dan selalu ganti secara berkala. Lihat bagian Praktik terbaik untuk menggunakan PAT. |
Membuat PAT
Nota
Langkah-langkah dan cuplikan layar berikut mencerminkan Azure DevOps Services. Pengalaman Azure DevOps Server mungkin sedikit berbeda.
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 izin akses untuk token ini agar dapat mengizinkan tugas spesifik Anda.
Misalnya, untuk membuat token untuk agen penyusunan dan pelepasan agar dapat mengautentikasi dengan Azure DevOps, atur cakupan token menjadi Agent Pools (Baca & kelola). Untuk membaca peristiwa log audit dan mengelola atau menghapus aliran, pilih Baca Log Audit, lalu pilih Buat.
Administrator Anda mungkin membatasi Anda untuk membuat PAT dengan cakupan penuh atau membatasi Anda hanya untuk PAT dengan cakupan pengemasan. Hubungi admin Anda untuk masuk ke daftar yang diizinkan jika Anda memerlukan akses ke lebih banyak ruang lingkup. Beberapa cakupan, misalnya,
vso.governance, mungkin tidak tersedia di antarmuka pengguna (UI) jika tidak untuk penggunaan publik yang tersebar luas.Setelah selesai, salin token dan simpan di lokasi yang aman. Untuk keamanan Anda, hal ini tidak ditampilkan lagi.
Masuk ke portal web Azure DevOps Server Anda (
https://{server}/{collection}atauhttp://{server}:{port}/tfs/{collection}).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 akses untuk token ini guna mengizinkan tugas spesifik Anda.
Misalnya, untuk membuat token untuk agen penyusunan dan pelepasan agar dapat mengautentikasi dengan Azure DevOps, atur cakupan token menjadi Agent Pools (Baca & kelola). Untuk membaca peristiwa log audit dan mengelola atau menghapus aliran, pilih Baca Log Audit, lalu pilih Buat.
Administrator Anda mungkin membatasi Anda untuk membuat PAT dengan cakupan penuh atau membatasi Anda hanya untuk PAT dengan cakupan pengemasan. Hubungi admin Anda untuk masuk ke daftar yang diizinkan jika Anda memerlukan akses ke lebih banyak ruang lingkup. Beberapa cakupan, misalnya,
vso.governance, mungkin tidak tersedia di antarmuka pengguna (UI) jika tidak untuk penggunaan publik yang tersebar luas.Setelah selesai, salin token dan simpan di lokasi yang aman. Untuk keamanan Anda, hal ini tidak ditampilkan lagi.
Anda dapat menggunakan PAT anda di mana saja bahwa kredensial pengguna Anda diperlukan untuk autentikasi di Azure DevOps. Ingat:
- Perlakukan PAT dengan kewaspadaan yang sama dengan kata sandi Anda, dan jaga kerahasiaannya. Jangan bagikan PATs (Token Akses Pribadi).
- Untuk organisasi yang didukung oleh Microsoft Entra ID, silahkan masuk dengan PAT baru Anda dalam waktu 90 hari atau menjadi tidak aktif. Untuk informasi selengkapnya, lihat Frekuensi masuk pengguna untuk akses bersyarat.
Notifikasi
Selama masa pakai PAT, pengguna menerima dua pemberitahuan: satu saat PAT dibuat dan satu lagi sebelum kedaluwarsa.
Setelah membuat PAT, Anda mungkin menerima pemberitahuan yang mirip dengan contoh berikut. Pemberitahuan ini berfungsi sebagai konfirmasi bahwa PAT Anda berhasil ditambahkan ke organisasi Anda.
Email pemberitahuan kedaluwarsa dikirim sebelum token kedaluwarsa. Jika administrator Anda menonaktifkan kemampuan Anda untuk membuat PAT dalam organisasi, email tersebut menyatakan bahwa Anda tidak lagi dapat membuat ulang PAT. Hubungi administrator koleksi proyek Anda untuk disertakan dalam daftar izin untuk izin pembuatan PAT berkelanjutan di organisasi tersebut.
Untuk informasi selengkapnya, lihat Mengonfigurasi server SMTP dan menyesuaikan email untuk pemberitahuan dan permintaan umpan balik.
Pemberitahuan tak terduga
Jika Anda menerima 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/{yourorganization} on YourMachinedibuat saat Anda terhubung ke repositori Git Azure DevOps melalui git.exe. - Token bernama
Service Hooks: Azure App Service: Deploy web appdibuat saat Anda atau administrator menyiapkan penyebaran aplikasi web Azure App Service. - Token bernama
WebAppLoadTestCDIntTokendibuat saat pengujian beban web disiapkan sebagai bagian dari alur oleh Anda atau administrator. - Token bernama
Microsoft Teams Integrationdibuat saat Ekstensi Olahpesan Integrasi Microsoft Teams disiapkan.
Jika Menurut Anda situasinya serius:
- Cabut PAT (dan ubah kata sandi Anda) jika Anda menduga ada kesalahan.
- Tanyakan kepada administrator Anda apakah Anda adalah pengguna Microsoft Entra untuk melihat apakah sumber atau lokasi yang tidak diketahui mengakses organisasi Anda.
- Tinjau FAQ tentang check-in PAT secara tidak sengaja ke repositori GitHub publik.
Menggunakan PAT
PAT Anda berfungsi sebagai identitas digital Anda, seperti kata sandi. Gunakan PAT sebagai cara cepat untuk melakukan permintaan satu kali atau membuat prototipe aplikasi secara lokal. Gunakan PAT dalam kode Anda untuk mengautentikasi permintaan REST API dan mengotomatiskan alur kerja dengan menyertakan PAT di header otorisasi permintaan Anda.
Setelah kode aplikasi Anda berfungsi, beralihlah ke Microsoft Entra OAuth untuk memperoleh token bagi pengguna aplikasi Anda atau prinsipal layanan atau identitas terkelola untuk memperoleh token sebagai aplikasi. Jangan membiarkan aplikasi atau skrip tetap berjalan dengan PATs untuk jangka waktu lama. Anda dapat menggunakan token Microsoft Entra di mana saja pat digunakan.
Pertimbangkan memperoleh token Microsoft Entra melalui Azure CLI untuk permintaan yang tidak terencana.
Untuk menyediakan PAT melalui header HTTP, pertama-tama konversikan ke Base64 string.
Kemudian, berikan sebagai header HTTP dalam format berikut:
Authorization: Basic BASE64_USERNAME_PAT_STRING
Mengubah PAT
Untuk mengubah PAT, gunakan langkah-langkah berikut:
- Regenerasi PAT untuk membuat token baru dan membatalkan token sebelumnya.
- Memperpanjang PAT untuk meningkatkan periode validitasnya.
- Ubah scope PAT untuk mengubah izin.
Dari halaman beranda Anda, buka pengaturan
pengguna dan pilih Token akses pribadi.Pilih token yang ingin Anda ubah, lalu pilih Edit.
Edit nama token, kedaluwarsa token, atau cakupan akses yang terkait dengan token, lalu pilih Simpan.
Mencabut PAT
Cabut PAT kapan saja karena alasan ini dan lainnya:
- Pelanggaran keamanan: Cabut PAT segera jika Anda menduga PAT tersebut disusupi, bocor, atau terekspos dalam log atau repositori publik.
- Tidak lagi diperlukan: Cabut PAT saat proyek, layanan, atau integrasi tempat Anda membuatnya selesai.
- Kepatuhan kebijakan: Cabut PAT untuk menerapkan kebijakan keamanan, persyaratan kepatuhan, atau jadwal rotasi token organisasi.
- Perubahan pengguna: Cabut PAT saat anggota tim meninggalkan organisasi atau mengubah peran dan tidak lagi memerlukan akses.
- Pengurangan cakupan: Cabut dan buat ulang PAT dengan pengurangan izin saat Anda perlu membatasi kemampuan aksesnya.
- Pemeliharaan rutin: Cabut PAT sebagai bagian dari kebersihan keamanan rutin dan manajemen siklus hidup token.
Untuk mencabut PAT, ikuti langkah-langkah berikut:
Di beranda Anda, buka pengaturan
pengguna dan pilih Token akses pribadi.Di bawah Keamanan, pilih Token akses pribadi. Pilih token yang ingin Anda cabut aksesnya, lalu pilih Cabut.
Dalam dialog Konfirmasi , pilih Cabut.
Apa yang terjadi ketika PAT kedaluwarsa atau dicabut
Ketika PAT kedaluwarsa atau dicabut, layanan atau alat apa pun yang menggunakan PAT tersebut segera kehilangan autentikasi untuk Azure DevOps. Memahami dampaknya membantu Anda merencanakan rotasi dan mencegah gangguan layanan.
Dampak layanan berdasarkan skenario
| Scenario | Behavior | Pesan Kesalahan | Timeline |
|---|---|---|---|
| Operasi Git (klon, dorong, tarik) | Autentikasi gagal; operasi diblokir |
fatal: Authentication failed for '<url>' atau 401 Unauthorized |
Segera |
| Azure Pipelines CI/CD | Tugas build atau rilis gagal pada langkah autentikasi | Error: Personal access token (PAT) is invalid or expired |
Eksekusi alur berikutnya |
| Panggilan REST API | Semua permintaan API gagal; integrasi berhenti |
401 Unauthorized atau TF400813: Resource not available for anonymous access |
Segera |
| Azure Artifacts (NuGet, npm, Maven) | Pemulihan paket atau penerbitan gagal |
401 Unauthorized atau Credentials could not be authenticated |
Segera |
| Git Credential Manager | Memerlukan autentikasi ulang | Pengguna diminta untuk masuk lagi | Upaya autentikasi berikutnya |
| Skrip & alat otomatisasi | Eksekusi gagal dengan kesalahan autentikasi | Kesalahan khusus alat (bervariasi menurut alat) | Segera |
Garis waktu dampak
Pada waktu kedaluwarsa (tanggal yang ditentukan):
- PAT menjadi tidak aktif secara otomatis
- Semua koneksi aktif terputus
- Upaya autentikasi baru gagal
Dalam jam setelah kedaluwarsa:
- Pekerjaan terjadwal (alur, penyebaran) gagal pada eksekusi berikutnya
- Pengguna interaktif mungkin tidak memperhatikan sampai mereka mencoba operasi berikutnya
Setelah pencabutan (segera):
- Semua sesi aktif dihentikan
- Semua permintaan baru yang menggunakan PAT tersebut ditolak
Strategi pencegahan proaktif
Untuk menghindari gangguan layanan, ikuti praktik berikut:
- Regenerasi lebih awal: Buat PAT baru setidaknya 7 hari sebelum kedaluwarsa, lalu uji dan perbarui semua integrasi sebelum yang lama kedaluwarsa.
- Mengotomatiskan pemantauan: Gunakan API Manajemen Siklus Hidup PAT untuk memeriksa tanggal kedaluwarsa secara terprogram.
- Atur masa berlaku PAT secara bertahap: Jangan biarkan semua PAT Anda kedaluwarsa pada hari yang sama. Rotasikan semuanya setiap tiga bulan dengan jadwal yang berbeda.
- Dokumentasikan penggunaan PAT: Simpan daftar tempat setiap PAT digunakan (pipeline, skrip, integrasi) agar Anda dapat memperbaruinya saat rotasi.
Jika PAT kedaluwarsa secara tak terduga
Jika Anda mengalami kegagalan autentikasi, berikut cara memulihkannya:
- Identifikasi masalah: Periksa apakah PAT kedaluwarsa dengan meninjau halaman Token akses Pribadi Anda di pengaturan pengguna, atau minta admin Anda untuk memeriksa log audit.
- Buat pengganti: Buat PAT baru jika izin Anda mengizinkan (lihat Membuat PAT).
-
Perbarui semua integrasi: Ganti PAT lama dengan yang baru di:
- File konfigurasi Git (
.git/config) - File YAML alur
- Agen Pembangun
- Skrip dan integrasi
- Variabel lingkungan
- File konfigurasi Git (
-
Uji konektivitas: Jalankan operasi pengujian (misalnya,
git clone, panggilan API) untuk memverifikasi bahwa PAT baru berfungsi. - Mencabut PAT lama: Hapus dari akun Anda untuk mengurangi risiko keamanan.
Untuk skenario lokal
Pada Azure DevOps Server, perilaku kedaluwarsa PAT sama, tetapi dampaknya lokal ke server Anda dan layanan yang terhubung.
Rotasi PAT dan strategi perpanjangan
Mengganti PAT Anda secara berkala mengurangi risiko kredensial yang dikompromikan dan membantu Anda mematuhi kebijakan keamanan organisasi.
Mengapa merotasi PAT?
- Mitigasi kebocoran: Jika PAT bocor, terkompromi, atau dicuri, membatasi masa berlakunya akan mengurangi jangka waktu paparan.
- Kepatuhan: Banyak standar keamanan (SOC 2, ISO 27001, HIPAA) memerlukan rotasi kredensial reguler.
- Kebersihan: Menghapus token yang tidak digunakan atau terlupakan dari organisasi Anda.
- Auditabilitas: Rotasi yang sering membuat jejak audit perubahan kredensial yang jelas.
Irama rotasi yang direkomendasikan
Terapkan PAT berumur singkat dan tetapkan strategi rotasi berdasarkan jenis PAT dan profil risiko:
- PAT pribadi: Ganti setiap 90 hari (setidaknya setiap triwulan).
- PAT akun layanan: Ganti setiap 90 hari dengan perpanjangan otomatis jika memungkinkan untuk mencegah gangguan layanan.
- PAT dengan hak istimewa atau cakupan tinggi (misalnya, digunakan untuk infrastruktur penting): Putar setiap 30 hari untuk meningkatkan keamanan.
-
Offboarding: Segera cabut PATs saat anggota tim mengalami salah satu perubahan status berikut:
- Penghentian atau keberangkatan
- Mentransfer ke tim atau organisasi yang berbeda
- Cuti tidak ada
- Perubahan peran atau pergeseran tanggung jawab
Strategi jangka panjang: Migrasi dari PATs ke autentikasi yang lebih kuat
Microsoft merekomendasikan untuk mengurangi penggunaan PAT demi metode autentikasi yang lebih kuat dan lebih dapat diaudit. Jika memungkinkan, migrasikan ke:
- Microsoft Entra token — Terbatas waktu, kemampuan refresh, dapat diaudit melalui Entra ID
- Identitas terkelola — Untuk layanan yang dihosting Azure (App Service, Functions, Container Apps)
- Prinsipal layanan — Untuk skenario antar-penyewa atau non-Azure
- OAuth 2.0 dengan Microsoft Entra — Untuk integrasi berbasis browser dan aplikasi pihak ketiga
Manfaat migrasi:
- Mengurangi permukaan serangan: Menghilangkan kredensial statis berumur panjang
- Kemampuan audit yang lebih baik: Log audit Entra ID asli melacak setiap autentikasi
- Siklus hidup otomatis: Token kedaluwarsa secara default; tidak diperlukan rotasi manual
- Dukungan Conditional Access: Terapkan kebijakan keamanan di seluruh organisasi
Untuk detail selengkapnya tentang alternatif autentikasi, lihat autentikasi Microsoft Entra dan prinsipal layanan dan identitas terkelola.
Alur kerja rotasi
Ikuti langkah-langkah ini untuk memutar PAT tanpa mengganggu layanan:
Langkah 1: Buat PAT baru
- Dari halaman beranda Anda, buka pengaturan pengguna dan pilih Token akses pribadi.
- Pilih + Token Baru.
- Masukkan nama yang sama dengan token lama (untuk pelacakan yang mudah).
- Atur kedaluwarsa ke 90 hari mulai hari ini.
- Pilih cakupan yang sama persis dengan token lama.
- Pilih Buat dan salin token baru segera (tidak akan ditampilkan lagi).
Langkah 2: Uji PAT baru
Sebelum menghentikan PAT lama, validasi bahwa pat baru berfungsi:
# For Git (replace with your URL and new PAT)
git clone https://<user>:<new-pat>@dev.azure.com/<org>/<project>/_git/<repo>
# For REST API
curl -u :<new-pat> https://dev.azure.com/<org>/_apis/projects
Langkah 3: Memperbarui semua integrasi
Untuk setiap layanan atau alat menggunakan PAT lama:
| Integration | Metode Pembaruan |
|---|---|
| Kredensial Git | Perbarui .git/config atau Git Credential Manager |
| Pipeline YAML | Memperbarui koneksi layanan atau referensi variabel |
| Skrip/alat | Memperbarui file konfigurasi atau variabel lingkungan |
| Azure Artifacts | Memperbarui nuget.config, .npmrc, atau penyedia kredensial |
| Agen Build | Memperbarui konfigurasi agen melalui UI web |
Contoh: Memperbarui variabel alur
# Before
- script: npm install
env:
NPM_TOKEN: $(old-pat-variable)
# After
- script: npm install
env:
NPM_TOKEN: $(new-pat-variable)
Langkah 4: Memverifikasi fungsionalitas
Setelah memperbarui setiap integrasi, uji:
- Jalankan pekerjaan alur.
- Jalankan skrip secara manual.
- Coba operasi Git.
- Periksa panggilan API.
Langkah 5: Cabut PAT lama
Setelah semua integrasi diperbarui dan diuji, cabut PAT lama:
- Dari halaman beranda Anda, buka pengaturan pengguna dan pilih Token akses pribadi.
- Pilih PAT lama.
- Pilih Cabut dan konfirmasi.
Skenario pergiliran: Pelepasan anggota tim
Saat anggota tim keluar:
Tindakan langsung (hari keberangkatan):
- Admin mencabut semua PAT mereka dari Pengaturan Organisasi > Keamanan > Token akses pribadi
- Admin memeriksa log audit untuk setiap PATs yang dibuat oleh pengguna ini
- Layanan apa pun yang menggunakan PAT mereka langsung gagal (sesuai dugaan)
Dalam 1 minggu:
- Tim yang menggunakan PAT milik orang tersebut harus beralih ke akun layanan bersama atau PAT baru
- Memperbarui semua skrip, alur, dan integrasi
Sedang berlangsung:
- Tinjau log audit setiap minggu untuk PAT yatim
Mengotomatiskan rotasi dengan API MANAJEMEN Siklus Hidup PAT
Untuk penerapan skala besar, ganti PAT secara terprogram:
import requests
from datetime import datetime, timedelta
# 1. Get PAT metadata (using Entra token)
org_url = "https://dev.azure.com/myorg"
entra_token = "YOUR_ENTRA_TOKEN"
response = requests.get(
f"{org_url}/_apis/tokens/pats",
headers={"Authorization": f"Bearer {entra_token}"},
params={"api-version": "7.1-preview.1"}
)
pats = response.json()["value"]
# 2. Find PATs expiring in 7 days
expiring_soon = [
pat for pat in pats
if (datetime.fromisoformat(pat["expiresOn"].replace("Z", "+00:00"))
- datetime.now().astimezone()).days <= 7
]
# 3. Create new PATs for expiring ones
for old_pat in expiring_soon:
new_pat_payload = {
"displayName": old_pat["displayName"],
"scope": old_pat["scope"],
"targetAccounts": old_pat["targetAccounts"],
"validFrom": datetime.now().isoformat(),
"validTo": (datetime.now() + timedelta(days=90)).isoformat(),
}
# Create new PAT
new_response = requests.post(
f"{org_url}/_apis/tokens/pats",
json=new_pat_payload,
headers={"Authorization": f"Bearer {entra_token}"},
params={"api-version": "7.1-preview.1"}
)
new_pat = new_response.json()
print(f"Created new PAT: {new_pat['patToken']} (save securely)")
# TODO: Update integrations with new PAT
# TODO: Test new PAT
# TODO: Revoke old PAT after verification
print(f"\nRotated {len(expiring_soon)} PATs")
Jejak audit: Melacak pembuatan dan pencabutan PAT
Administrator organisasi dan tim keamanan harus memantau aktivitas PAT untuk kepatuhan, pemecahan masalah, dan deteksi ancaman.
Tempat menemukan log audit PAT
- Buka organisasi Anda:
https://dev.azure.com/<org> - Pilih Pengaturan organisasi.
- Pilih Log audit.
- Gunakan filter untuk menemukan peristiwa PAT.
- Buka koleksi Azure DevOps Server Anda.
- Pilih Pengaturan Koleksi.
- Pilih Log audit.
- Gunakan filter untuk menemukan peristiwa PAT.
Pemfilteran untuk peristiwa PAT
Dalam log audit, filter aktivitas yang terkait dengan PAT:
| Jenis Acara | Description | Menunjukkan |
|---|---|---|
PatCreated |
PAT baru dibuat | Kredensial baru dikeluarkan |
PatModified |
Cakupan atau kedaluwarsa PAT berubah | Kredensial diperbarui atau dimuat ulang |
PatRegenerated |
PAT yang ada dibuat ulang (dirotasi) | Token lama tidak valid, baru dikeluarkan |
PatRevoked |
Sebuah PAT telah dicabut | Kredensial tidak valid (efek langsung) |
PatInactiveRevoked |
PAT dicabut otomatis karena tidak aktif | Kredensial kedaluarsa dihapus |
Membaca entri log audit
Setiap entri log audit berisi:
- Tanda waktu: Ketika tindakan terjadi
- Pengguna: Siapa yang melakukan tindakan (atau "Sistem" untuk pencabutan otomatis)
- Peristiwa: Jenis tindakan PAT
- Detail: ID PAT, cakupan, organisasi yang terpengaruh (jika tersedia)
- Alamat IP: Sumber tindakan (untuk investigasi ancaman)
Retensi log audit
- layanan Azure DevOps: Log audit disimpan selama 90 hari secara default (admin dapat mengonfigurasi pengaturan ini)
- Azure DevOps Server: Kebijakan penyimpanan bervariasi menurut konfigurasi SQL Server Anda (biasanya 1–2 tahun)
Contoh: Menyelidiki PAT yang terlantar
Misalkan Anda menemukan PAT lama yang masih aktif tetapi seharusnya tidak lagi aktif:
- Perhatikan ID PAT dari daftar token aktif Anda.
-
Cari log audit untuk kejadian dengan ID tersebut pada
PatCreated. - Tinjau entri pembuatan: Siapa yang membuatnya, kapan, organisasi apa.
-
Periksa penggunaan: Jika
PatModifiedatauPatRegeneratedperistiwa ada, token sedang digunakan secara aktif. -
Periksa pencabutan: Jika tidak ada
PatRevokedperistiwa, PAT masih valid. - Ambil tindakan: Cabut PAT jika tidak lagi diperlukan, atau beri tahu pemilik untuk memutarnya.
Praktik terbaik untuk pemantauan audit
- Tinjau peristiwa PAT setiap bulan: Identifikasi token yatim piatu atau mencurigakan.
-
Atur pemberitahuan: Jika organisasi Anda menggunakan Azure Monitor, pemberitahuan pada
PatCreatedatauPatRevokedperistiwa. - Mematuhi kebijakan penyimpanan: Mengekspor dan mengarsipkan log audit sesuai persyaratan kepatuhan Anda.
- Lacak menurut pengguna: Pantau pengguna mana yang membuat PAT terbanyak (mungkin menunjukkan praktik berisiko).
-
Menyelidiki anomali:
- Peristiwa tak terduga
PatCreateddi luar jam kerja. - Beberapa
PatRevokedperistiwa untuk pengguna yang sama (kemungkinan pelanggaran akun). -
PatCreateddari alamat IP yang tidak biasa.
- Peristiwa tak terduga
Akses terprogram ke log audit (REST API)
Admin dapat mengkueri log audit melalui REST API:
# List recent audit log events (last 10)
curl -u :<entra-token> \
"https://dev.azure.com/<org>/_apis/audit/auditlog?api-version=7.1-preview.1" \
| jq '.value[] | select(.eventType | contains("Pat"))'
Kebijakan kedaluwarsa PAT Organisasi
Administrator organisasi dapat memberlakukan masa pakai PAT minimum dan membatasi pembuatan token untuk mencegah akses yang terlalu luas. Kebijakan ini memastikan kepatuhan terhadap standar keamanan dan mengurangi risiko kredensial yang telah disusupi tetapi tetap berlaku lama.
- BukaKebijakan> Organisasi (atautoken akses Pribadi>).
- Pilih pengaturan untuk:
- Pembatasan PAT cakupan penuh: Membatasi pengguna membuat token dengan akses penuh ke organisasi.
- Pembatasan PAT global: Membatasi pengguna membuat token yang mengakses beberapa organisasi.
- Pembatasan masa pakai token: Atur masa pakai PAT maksimum (misalnya, tidak ada token yang berlangsung lebih dari 90 hari).
Untuk informasi selengkapnya, lihat Mengelola PAT dengan kebijakan untuk administrator.
API Manajemen Siklus Hidup PAT
API Manajemen Siklus Hidup PAT dapat membantu ketika pengelolaan token dalam jumlah besar melalui UI tidak lagi praktis. Mengelola rotasi PAT secara terprogram juga membuka kesempatan untuk memutar PAT secara teratur dan mempersingkat masa pakai defaultnya. Anda dapat mengonfigurasi aplikasi Python sample dengan penyewa Microsoft Entra dan organisasi Azure DevOps Anda.
Beberapa hal yang perlu diperhatikan tentang API ini:
- Token akses Microsoft Entra diperlukan untuk mengakses API ini. Gunakan bentuk autentikasi yang lebih kuat saat Anda mem-mint token baru.
- Hanya pengguna atau aplikasi yang menggunakan alur "atas nama pengguna" yang dapat menghasilkan PATs. Aplikasi yang menggunakan alur "atas nama aplikasi" atau alur autentikasi yang tidak mengeluarkan token akses Microsoft Entra tidak valid untuk digunakan dengan API ini. Dengan demikian, perwakilan layanan atau identitas terkelola tidak dapat membuat atau mengelola PATs.
- Sebelumnya, API Manajemen Siklus Hidup PAT hanya mendukung cakupan
user_impersonation, tetapi sekarang cakupanvso.patstersedia dan merupakan cakupan yang direkomendasikan untuk digunakan dengan API tersebut. Downscope semua aplikasi yang sebelumnya bergantung padauser_impersonationuntuk memanggil API ini.
Menggunakan Azure CLI untuk manajemen PAT
az devops CLI menyediakan perintah untuk mengelola PAT tanpa perlu menulis skrip kustom. Untuk referensi CLI lengkap, lihat Azure DevOps CLI dan masuk melalui PAT.
# List all your PATs
az devops user list
# Create a new PAT with limited scope
az devops token list \
--organization https://dev.azure.com/myorg \
--user <user-id>
# Example: Using az devops commands in a rotation script
# Sign in with Entra token (recommended)
az login --use-device-code
# List organization members (for bulk admin operations)
az devops security group membership list \
--organization https://dev.azure.com/myorg \
--group-id <admin-group-id>
Menggunakan REST API untuk rotasi otomatis
Untuk manajemen PAT skala besar, gunakan titik akhir REST API.
# List all PATs for a user (requires Entra token)
curl -X GET \
-H "Authorization: Bearer <entra-token>" \
"https://dev.azure.com/<org>/_apis/tokens/pats?api-version=7.1-preview.1"
# Create a new PAT
curl -X POST \
-H "Authorization: Bearer <entra-token>" \
-H "Content-Type: application/json" \
-d '{
"displayName": "CI/CD PAT",
"scope": "vso.build vso.release_manage vso.code_write",
"validTo": "2026-10-07T00:00:00.000Z"
}' \
"https://dev.azure.com/<org>/_apis/tokens/pats?api-version=7.1-preview.1"
# Revoke a PAT by ID
curl -X DELETE \
-H "Authorization: Bearer <entra-token>" \
"https://dev.azure.com/<org>/_apis/tokens/pats/<pat-id>?api-version=7.1-preview.1"
Format PAT
String PAT menggunakan format tertentu yang dirancang untuk meningkatkan deteksi rahasia dalam alat deteksi PAT bocor dan penawaran mitra. Format ini mencakup bit yang dapat diidentifikasi yang meningkatkan tingkat deteksi positif palsu dan memungkinkan mitigasi kebocoran yang terdeteksi lebih cepat.
- Panjang token adalah 84 karakter, dengan 52 karakter menjadi data acak, yang meningkatkan entropi keseluruhan. Token tahan terhadap serangan kasar.
- Token yang dikeluarkan oleh Azure DevOps menyertakan tanda tangan
AZDOtetap pada posisi 76-80.
Jika Anda berintegrasi dengan PAT dan memiliki validasi PAT bawaan, pastikan kode validasi Anda mengakomodasi panjang token 84 karakter.
Praktik terbaik untuk menggunakan PATs
Pertimbangkan alternatif
- Dapatkan token Microsoft Entra melalui Azure CLI untuk permintaan yang tidak terencana alih-alih mencetak PAT yang berumur lebih lama.
- Gunakan manajer kredensial seperti Git Credential Manager atau Azure Artifacts Credential Manager untuk menyederhanakan manajemen kredensial, dengan autentikasi diatur ke token
oauthatau Microsoft Entra.
Membuat PATs
- Jangan masukkan data pribadi ke dalam nama PAT. Jangan ganti nama PAT untuk menyertakan beberapa atau semua token PAT yang sebenarnya.
- Hindari membuat PATs global kecuali diperlukan di semua organisasi.
- Gunakan token yang berbeda per alur atau kasus penggunaan.
- Pilih hanya cakupan minimum yang diperlukan untuk setiap PAT. Berikan hak istimewa paling sedikit yang diperlukan untuk tugas spesifik Anda. Buat PAT terpisah dengan cakupan terbatas untuk alur kerja yang berbeda alih-alih menggunakan token tunggal dengan cakupan luas. Jika PAT Anda memerlukan izin baca-saja, jangan berikan izin tulis hingga diperlukan.
- Jaga agar masa pakai PAT tetap pendek.
Mengelola PATs (Token Akses Pribadi)
- Jangan bagikan Token Akses Pribadi Anda!
- Store PATs Anda dalam solusi manajemen kunci yang aman, seperti Azure Key Vault.
- Putar atau regenerasi PAT Anda secara teratur melalui UI atau dengan menggunakan API Manajemen Siklus Hidup PAT.
- Cabut PATS saat tidak lagi diperlukan.
Untuk admin
- Admin penyewa harus menetapkan kebijakan untuk membatasi:
- Pembuatan PAT global (memerlukan token dengan cakupan organisasi)
- Pembuatan PAT cakupan penuh (memerlukan cakupan terbatas)
- Durasi PAT jangka panjang (tetapkan masa pakai maksimum 30–90 hari)
- Admin penyewa dapat mencabut PAT untuk pengguna organisasi mereka jika PAT disusupi.
- Admin organisasi harus membatasi pembuatan PAT di organisasi dan jika memungkinkan, memigrasikan layanan ke autentikasi Microsoft Entra alih-alih PATs.
Panduan audit admin: Mengelola semua PAT di organisasi Anda
Administrator organisasi dapat mengaudit dan mengelola semua PAT di seluruh organisasi untuk menerapkan kebijakan keamanan dan mengidentifikasi token berisiko.
Langkah 1: Mengakses halaman manajemen PAT organisasi
- Buka Pengaturan> OrganisasiToken akses pribadi>
- Secara bawaan, Anda melihat PAT Anda sendiri
- Pilih Semua PAT dari menu drop-down untuk melihat token di semua pengguna
- Buka Pengaturan> KoleksiToken akses Pribadi>
- Pilih All PATs untuk melihat semua token dalam koleksi
Langkah 2: Memfilter dan mengidentifikasi token berisiko tinggi
Cari:
- Token berumur panjang (kedaluwarsa > 90 hari): Kandidat untuk rotasi atau pencabutan
- Token cakupan penuh (cakupan = semua): Risiko keamanan tertinggi; menerapkan kebijakan untuk membatasi
- Token global (akses beberapa organisasi): Hindari token ini; pertimbangkan alternatif dengan cakupan per organisasi
- Token kedaluarsa (tidak ada aktivitas terbaru): Aman untuk dicabut
- Token yang dibuat di luar jam kerja: Potensi insiden keamanan
Langkah 3: Tinjau log audit untuk peristiwa PAT
- Buka Pengaturan Organisasi>Log audit
- Filter menurut jenis peristiwa:
-
PatCreated— Temukan kapan token dikeluarkan -
PatRevoked— Lacak kapan token dinonaktifkan -
PatRegenerated— Memantau aktivitas rotasi
-
- Mengekspor log audit untuk pelaporan kepatuhan (retensi 90 hari)
Langkah 4: Cabut token yang disusupi atau tidak digunakan
Jika Anda menemukan PAT yang terkompromi atau tidak diperlukan:
- Buka Pengaturan> OrganisasiToken akses pribadi>
- Pilih Semua PAT
- Pilih PAT yang ingin Anda cabut
- Pilih Cabut dan konfirmasi
- Memberi tahu pemilik token untuk membuat PAT pengganti jika diperlukan
Langkah 5: Menerapkan kebijakan organisasi
- BukaKebijakan>
- Konfigurasi
- Membatasi pembuatan PAT cakupan penuh — Memerlukan token tercakup
- Batasi pembuatan PAT global — Wajibkan token dengan cakupan organisasi
- Atur masa pakai PAT maksimum — Contoh: tidak ada token yang dapat melebihi 90 hari
- Dokumentasikan kebijakan Anda di buku pegangan keamanan atau wiki Anda
Contoh: Pencabutan secara massal untuk proses keluarnya karyawan
Saat pengguna pergi, cabut semua PAT mereka:
- Buka Pengaturan> OrganisasiToken> akses PribadiKeamanan>Semua PAT
- Memfilter menurut nama atau email pengguna yang berangkat
- Pilih semua PAT milik mereka
- Pilih Cabut (tindakan massal) dan konfirmasi
Semua PAT mereka segera dicabut, mencegah layanan apa pun menggunakan kredensial tersebut.
Tanya Jawab Umum
Q. Mengapa saya tidak dapat mengedit atau menghasilkan kembali PAT yang ruangkupnya hanya satu organisasi?
A. Masuk ke organisasi di mana cakupan PAT Anda berlaku. Anda dapat melihat PAT saat masuk ke organisasi mana pun dalam Microsoft Entra ID yang sama dengan mengubah lingkup Access filter. Anda hanya dapat mengedit token yang dicakup organisasi saat masuk ke organisasi tertentu.
Q. Apa yang terjadi pada PAT jika akun pengguna dinonaktifkan?
A. Saat pengguna dihapus dari Azure DevOps, PAT tidak valid dalam waktu satu jam. Jika organisasi Anda tersambung ke Microsoft Entra ID, PAT juga tidak valid di Microsoft Entra ID karena milik pengguna. Putar PAT ke pengguna atau akun layanan lain untuk menjaga layanan tetap berjalan.
Q. Dapatkah saya menggunakan PAT dengan semua REST API Azure DevOps?
A. Tidak. Anda dapat menggunakan PAT dengan sebagian besar REST API Azure DevOps, tetapi organisasi dan profil dan API Siklus Hidup Manajemen PAT hanya mendukung token Microsoft Entra.
Q. Apa yang terjadi jika saya tidak sengaja memeriksa PAT saya ke repositori publik di GitHub?
A. Azure DevOps memindai Personal Access Tokens (PAT) yang bocor di repositori GitHub publik. Saat terdeteksi, Azure DevOps memberi tahu pemilik token dan mencatat peristiwa di log audit Anda. Kecuali dinonaktifkan, PAT yang bocor secara otomatis dicabut. Untuk informasi lebih lanjut, lihat Cabut PAT yang bocor secara otomatis.
Q. Dapatkah saya menggunakan token akses pribadi sebagai kunci API untuk menerbitkan paket NuGet ke umpan Azure Artifacts dengan menggunakan baris perintah dotnet/nuget.exe?
A. Tidak. Azure Artifacts tidak mendukung meneruskan PAT sebagai kunci API. Saat Anda menggunakan lingkungan pengembangan lokal, instal Penyedia Kredensial Azure Artifacts untuk mengautentikasi dengan Azure Artifacts. Untuk informasi selengkapnya, lihat contoh berikut: dotnet dan NuGet.exe. Jika Anda ingin menerbitkan paket dengan menggunakan Azure Pipelines, gunakan tugas NuGet Authenticate untuk mengautentikasi dengan umpan Anda. Untuk informasi selengkapnya, lihat contoh dalam Menerbitkan paket NuGet dengan Azure Pipelines (YAML/Klasik).
Q. Mengapa PAT saya berhenti bekerja?
A. Autentikasi PAT mengharuskan Anda untuk masuk secara teratur ke Azure DevOps dengan 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 perintah autentikasi lengkap. Jika PAT Anda masih tidak berfungsi, periksa apakah kedaluwarsa.
Untuk Azure DevOps Server, mengaktifkan IIS Basic Authentication membatalkan penggunaan PAT. Nonaktifkan Autentikasi Dasar IIS.
Q. Bagaimana cara membuat token akses yang tidak terkait dengan pengguna tertentu?
A. PATs selalu dikaitkan dengan identitas pengguna yang membuatnya. Untuk menggunakan token yang tidak terkait dengan pengguna tertentu, gunakan token Microsoft Entra yang dikeluarkan oleh perwakilan layanan aplikasi atau identitas terkelola. Untuk alur, gunakan koneksi layanan untuk mengautentikasi tanpa kredensial khusus pengguna. Pelajari lebih lanjut tentang mengurangi penggunaan PAT dalam Azure DevOps.
Q. Bagaimana cara membuat ulang atau merotasi PAT melalui API? Saya melihat opsi itu di UI, tetapi saya tidak melihat metode serupa di API.
A. Fungsionalitas Regenerasi di UI benar-benar melakukan beberapa tindakan, yang dapat Anda replikasi melalui API.
Untuk memutar PAT Anda, ikuti langkah-langkah berikut:
- Ambil metadata PAT dengan menggunakan panggilan GET .
- Buat PAT baru dengan menggunakan panggilan POST dengan ID PAT lama.
- Cabut PAT lama dengan menggunakan panggilan DELETE .
Q. Berapa lama PAT yang kedaluwarsa, dicabut, atau tidak aktif tetap terlihat dalam daftar token Azure DevOps?
A. Anda tidak dapat menggunakan atau meregenerasi PAT yang kedaluwarsa atau dicabut. Tampilan membuat token tidak aktif ini terlihat selama beberapa bulan setelah kedaluwarsa atau pencabutan sebelum secara otomatis menghapusnya.
Q. Mengapa saya melihat pesan "Perlu persetujuan admin" saat saya mencoba menggunakan aplikasi Microsoft Entra untuk memanggil API Manajemen Siklus Hidup PAT?
A. Kebijakan keamanan penyewa Anda memerlukan persetujuan admin sebelum aplikasi dapat mengakses sumber daya organisasi. Hubungi administrator penyewa Anda.
Menggunakan AI untuk mengelola token akses pribadi
Jika mengonfigurasi Azure DevOps MCP Server, Anda dapat menggunakan asisten AI untuk mengelola dan meninjau token akses pribadi Anda dengan menggunakan perintah bahasa alami. McP Server memberi asisten AI Anda akses aman ke data Azure DevOps Anda, sehingga Anda dapat mencantumkan token, memeriksa tanggal kedaluwarsa, dan meninjau cakupan token tanpa menavigasi melalui antarmuka web.
Contoh perintah untuk mengelola token akses pribadi
| Tugas | Contoh tanggapan |
|---|---|
| Membuat token hak istimewa terkecil | Help me create a PAT for <organization-name> that only has read access to work items and code in the <project-name> project, valid for 30 days |
| Memutar token yang kedaluwarsa | Show me all my PATs in <organization-name> expiring in the next 14 days, their scopes, and what I need to update when I regenerate them |
| Mengelola keamanan token saya | List all my active PATs in <organization-name>, when each was last used, and flag any that have broader scopes than necessary |
| Memecahkan masalah kegagalan autentikasi | My PAT stopped working for Git push to <repo-name> in <project-name> - help me check if it expired, has the right scope, or if a policy is blocking it |
| Temukan token untuk diganti dengan Entra auth | Show me which of my PATs in <organization-name> are used for interactive scenarios that could switch to Microsoft Entra authentication instead |
| Menyiapkan koneksi layanan CI/CD | What's the minimum PAT scope needed for an Azure Pipelines service connection to <organization-name> that runs builds and deploys releases? |
Petunjuk
Jika Anda menggunakan Visual Studio Code, mode agent sangat membantu untuk meninjau dan mengaudit PAT Anda, termasuk mengidentifikasi token yang memerlukan rotasi atau memiliki cakupan yang berlebihan.
- Untuk menghindari penggunaan data basi atau cache dari kueri sebelumnya, tambahkan ke perintah Anda,
Do not use previously fetched data.