Menggunakan perwakilan layanan Azure dengan autentikasi berbasis kata sandi

Saat membuat perwakilan layanan, pilih jenis autentikasi masuk yang digunakannya. Ada dua jenis autentikasi yang tersedia untuk perwakilan layanan Azure: autentikasi berbasis kata sandi dan autentikasi berbasis sertifikat. Autentikasi berbasis kata sandi baik digunakan saat mempelajari perwakilan layanan, tetapi sebaiknya gunakan autentikasi berbasis sertifikat untuk aplikasi.

Langkah dalam tutorial ini menjelaskan cara menggunakan kata sandi perwakilan layanan untuk mengakses sumber daya Azure.

Membuat perwakilan layanan yang berisi kata sandi

Perilaku default az ad sp create-for-rbac adalah membuat perwakilan layanan dengan kata sandi acak.

az ad sp create-for-rbac --name myServicePrincipalName \
                         --role reader \
                         --scopes /subscriptions/mySubscriptionId/resourceGroups/myResourceGroupName

Konsol Output:

{
  "appId": "myServicePrincipalId",
  "displayName": "myServicePrincipalName",
  "password": "myServicePrincipalPassword",
  "tenant": "myOrganizationTenantId"
}

Output perwakilan layanan dengan autentikasi kata sandi menyertakan kunci password. Pastikan Anda menyalin nilai ini - nilai itu tidak dapat diambil kembali. Jika lupa kata sandi, atur ulang info masuk perwakilan layanan.

Masuk menggunakan perwakilan layanan menggunakan kata sandi

Uji info masuk dan izin perwakilan layanan baru dengan masuk. Untuk masuk dengan perwakilan layanan, Anda memerlukan appId (juga dikenal sebagai "ID perwakilan layanan", "nama pengguna" atau "penerima tugas"), tenant, dan password. Berikut contohnya:

az login --service-principal \
         --username myServicePrincipalId \
         --password myServicePrincipalPassword \
         --tenant myOrganizationTenantID

Jika Anda tidak mengetahui appId atau --tenant, ambil dengan menggunakan az ad sp list perintah .

spID=$(az ad sp list --display-name myServicePrincipalName --query "[].{spID:appId}" --output tsv)
tenantID=$(az ad sp list --display-name myServicePrincipalName --query "[].{tenant:appOwnerOrganizationId}" --output tsv)
echo "Using appId $spID in tenant $tenantID"

az login --service-principal \
         --username $spID \
         --password {paste your password here} \
         --tenant $tenantID

Jika Anda menguji di organisasi yang memerlukan autentikasi dua faktor, pesan kesalahan "... Autentikasi interaktif diperlukan..." ditampilkan. Sebagai alternatif, gunakan sertifikat atau identitas terkelola.

Penting

Jika Anda ingin menghindari menampilkan kata sandi Anda di konsol dan menggunakan az login secara interaktif, gunakan read -s perintah di bash.

read -sp "Azure password: " AZ_PASS && echo && az login --service-principal -u <app-id> -p $AZ_PASS --tenant <tenant>

Di PowerShell, gunakan cmdlet Get-Credential.

$AzCred = Get-Credential -UserName <app-id>
az login --service-principal -u $AzCred.UserName -p $AzCred.GetNetworkCredential().Password --tenant <tenant>

Langkah berikutnya

Sekarang setelah Anda mempelajari cara bekerja dengan perwakilan layanan menggunakan kata sandi, lanjutkan ke langkah berikutnya untuk mempelajari cara menggunakan perwakilan layanan dengan autentikasi berbasis sertifikat.