Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Ao criar uma entidade de serviço, você pode escolher o tipo de autenticação de entrada usada. Há dois tipos de autenticação disponíveis para entidades de serviço do Azure: autenticação baseada em senha e autenticação baseada em certificado. A autenticação baseada em senha é boa para usar ao aprender sobre entidades de serviço, mas recomendamos usar a autenticação baseada em certificado para aplicativos.
Esta etapa no tutorial explica como usar uma senha de entidade de serviço para acessar um recurso do Azure.
Criar uma entidade de serviço contendo uma senha
O comportamento padrão do az ad sp create-for-rbac é criar um service principal com uma senha aleatória.
az ad sp create-for-rbac --name myServicePrincipalName \
--role reader \
--scopes /subscriptions/mySubscriptionId/resourceGroups/myResourceGroupName
Console de saída:
{
"appId": "myServicePrincipalId",
"displayName": "myServicePrincipalName",
"password": "myServicePrincipalPassword",
"tenant": "myOrganizationTenantId"
}
A saída de um principal de serviço com autenticação de senha inclui a chave password
. Certifique-se de copiar esse valor – ele não pode ser recuperado. Se você perder a senha, redefina as credenciais da entidade de serviço.
Faça login com um principal de serviço usando uma senha
Teste as novas credenciais e permissões da entidade de serviço iniciando a sessão. Para fazer login com uma entidade de serviço, você precisa da appId
(também conhecida como "ID da entidade de serviço", "nome de usuário" ou "atribuídor"), tenant
e password
. Veja um exemplo:
az login --service-principal \
--username myServicePrincipalId \
--password myServicePrincipalPassword \
--tenant myOrganizationTenantID
Se você não souber o seu appId
ou --tenant
, recupere-o usando o az ad sp list
comando.
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
Se você estiver testando em uma organização que exija autenticação de dois fatores, a mensagem de erro "... A autenticação interativa é necessária..." é exibida. Como alternativa, use um certificado ou identidades gerenciadas.
Importante
Caso deseje evitar a exibição de sua senha no console e esteja usando az login
interativamente, use o comando read -s
em bash
.
read -sp "Azure password: " AZ_PASS && echo && az login --service-principal -u <app-id> -p $AZ_PASS --tenant <tenant>
No PowerShell, use o Get-Credential
cmdlet.
$AzCred = Get-Credential -UserName <app-id>
az login --service-principal -u $AzCred.UserName -p $AzCred.GetNetworkCredential().Password --tenant <tenant>
Próximas etapas
Agora que você aprendeu a trabalhar com entidades de serviço usando uma senha, vá para a próxima etapa para saber como usar entidades de serviço com autenticação baseada em certificado.