Autentikasi dengan Azure Repos

Layanan Azure DevOps | Azure DevOps Server | Azure DevOps Server 2022

Autentikasi aman sangat penting untuk melindungi repositori Azure Repos dan Azure DevOps Server Git Anda. Dengan beberapa opsi autentikasi yang tersedia—token Microsoft Entra OAuth, token akses pribadi, dan kunci SSH—memilih metode yang tepat memastikan keamanan dan produktivitas untuk alur kerja pengembangan Anda.

Token Microsoft Entra OAuth adalah pendekatan yang direkomendasikan untuk tim pengembangan modern, menawarkan keamanan yang ditingkatkan melalui standar OAuth 2.0 dan integrasi yang mulus dengan sistem identitas perusahaan. Baik Anda bekerja dari baris perintah, menggunakan klien Git, atau mengintegrasikan dengan alur CI/CD, memilih metode autentikasi dengan batas cakupan yang sesuai mengurangi risiko keamanan sambil mempertahankan akses yang Anda butuhkan.

Selalu cabut atau putar kredensial saat tidak lagi diperlukan. Praktik ini menjaga keamanan repositori dan mengikuti prinsip akses hak istimewa paling sedikit.

Penting

Pertimbangkan untuk menggunakan token Microsoft Entra yang lebih aman daripada token akses pribadi yang berisiko lebih tinggi. Untuk informasi selengkapnya, lihat Mengurangi penggunaan PAT. Tinjau panduan autentikasi untuk memilih mekanisme autentikasi yang tepat untuk kebutuhan Anda.

Petunjuk / Saran

Anda dapat menggunakan AI untuk membantu tugas Azure DevOps. Lihat Mengaktifkan bantuan AI dengan Azure DevOps MCP Server untuk memulai.

Mekanisme autentikasi

Token Microsoft Entra adalah metode autentikasi pilihan untuk operasi Git dan REST API. Mereka menawarkan fitur keamanan yang ditingkatkan dan dapat digunakan di mana pun token akses pribadi digunakan. Token ini dihasilkan untuk prinsipal pengguna atau identitas terkelola dan/atau perwakilan layanan.

Mulai cepat dengan Azure CLI: Anda dapat memperoleh token Microsoft Entra untuk penggunaan segera dengan operasi Git menggunakan Azure CLI. Metode ini sangat ideal untuk pengujian atau operasi satu kali.

Untuk autentikasi pengguna:

 az login
 az account get-access-token --resource 499b84ac-1321-427f-aa17-267ca6975798 --query "accessToken" --output tsv

Untuk autentikasi perwakilan layanan: Pertama masuk sebagai perwakilan layanan, lalu dapatkan token:

az login --service-principal -u <client-id> -p <client-secret> --tenant <tenant-id>
az account get-access-token --resource 499b84ac-1321-427f-aa17-267ca6975798 --query "accessToken" --output tsv

Contoh penggunaan dengan Git:

$accessToken = az account get-access-token --resource 499b84ac-1321-427f-aa17-267ca6975798 --query "accessToken" --output tsv
git -c http.extraheader="AUTHORIZATION: bearer $accessToken" clone https://dev.azure.com/{yourOrgName}/{yourProjectName}/_git/{yourRepoName}

Token akses pribadi (opsi alternatif)

Token akses pribadi (PATs) menyediakan akses ke Azure DevOps tanpa menggunakan nama pengguna dan kata sandi Anda secara langsung. Token ini kedaluwarsa dan memungkinkan Anda membatasi cakupan data yang dapat mereka akses.

Gunakan PAT saat:

  • Anda tidak memiliki kunci SSH yang disiapkan di sistem Anda
  • Anda perlu membatasi izin yang diberikan oleh kredensial
  • Token Microsoft Entra OAuth tidak tersedia dalam skenario Anda

Interaksi Git memerlukan nama pengguna, yang dapat berupa apa pun kecuali string kosong. Untuk menggunakan PAT dengan autentikasi dasar HTTP, gunakan Base64-encode$MyPat Anda seperti yang ditunjukkan pada 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

Kunci SSH

Autentikasi kunci dengan SSH berfungsi melalui pasangan kunci publik dan privat yang Anda buat di komputer Anda. Anda mengaitkan kunci publik dengan nama pengguna Anda dari web. Azure DevOps mengenkripsi data yang dikirim kepada Anda dengan kunci tersebut saat Anda bekerja dengan Git. Anda mendekripsi data di komputer Anda dengan kunci privat, yang tidak pernah dibagikan atau dikirim melalui jaringan.

GIF animasi memperlihatkan penambahan kunci umum SSH ke Azure DevOps.

SSH adalah opsi yang bagus jika sudah disiapkan di sistem Anda—cukup tambahkan kunci publik ke Azure DevOps dan kloning repos anda menggunakan SSH. SSH mungkin lebih disukai untuk Linux, macOS, atau Windows yang menjalankan Git untuk Windows di mana manajer kredensial Git atau token akses pribadi untuk autentikasi HTTPS tidak tersedia.

Untuk informasi selengkapnya, lihat Menyiapkan SSH dengan Azure DevOps.

Menggunakan Git Credential Manager untuk menghasilkan token

Gunakan Git Credential Manager (GCM) untuk menghindari memasukkan kredensial Anda setiap kali dan menjaga token Anda lebih aman saat mengakses Azure Repos. Masuk ke portal web, buat token, lalu gunakan token sebagai kata sandi Anda saat Anda menyambungkan ke Azure Repos. Token Microsoft Entra (diutamakan) atau PAT dihasilkan sesuai permintaan ketika Anda memiliki manajer kredensial yang diinstal dan disimpan secara lokal untuk digunakan pada baris perintah Git atau klien lainnya.

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 mengganti do dengan nama repositori Anda yang sebenarnya. Misalnya, jika repositori Anda diberi nama my-repo, jalurnya adalah /_git/my-repo.

  • Kloning repositori - 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.