Use an Azure service principal with password-based authentication
مقالة
When creating a service principal, you choose the type of sign-in authentication it uses. There are two types of authentication available for Azure service principals: password-based authentication and certificate-based authentication. Password-based authentication is good to use when learning about service principals, but we recommend using certificate-based authentication for applications.
This step in the tutorial explains how to use a service principal password to access an Azure resource.
Create a service principal containing a password
The default behavior of az ad sp create-for-rbac is to create a service principal with a random password.
Azure CLI
az ad sp create-for-rbac --name myServicePrincipalName \
--role reader \
--scopes /subscriptions/mySubscriptionId/resourceGroups/myResourceGroupName
The output for a service principal with password authentication includes the password key. Make sure you copy this value - it can't be retrieved. If you lose the password, reset the service principal credentials.
Sign in using a service principal using a password
Test the new service principal's credentials and permissions by signing in. To sign in with a service principal, you need the appId (also known as "service principal ID", "username" or "assignee"), tenant, and password. Here's an example:
If you don't know your appId or --tenant, retrieve it by using the az ad sp list command.
Azure CLI
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
If you're testing in an organization that requires two-factor authentication, error message "...Interactive authentication is needed..." is displayed. As an alternative, use a certificate or managed identities.
هام
If you want to avoid displaying your password on console and are using az login interactively,
use the read -s command in bash.
Now that you've learned how to work with service principals using a password, proceed to the next step to learn how to use service principals with certificate-based authentication.