Autenticação do Azure com entidade de serviço
Este artigo analisa como a biblioteca de Identidade do Azure dá suporte à autenticação de token do Microsoft Entra por meio da entidade de serviço. Este artigo aborda os seguintes temas:
- Criar uma entidade de serviço com a CLI do Azure
- Credencial secreta do cliente
- Credencial de certificado de cliente
Para obter mais informações, consulte Objetos principais de aplicativo e serviço no Microsoft Entra ID. Para solucionar problemas de autenticação da entidade de serviço, consulte Solucionar problemas de autenticação da entidade de serviço.
Criar uma entidade de serviço com a CLI do Azure
Use os seguintes exemplos da CLI do Azure para criar ou obter credenciais de segredo do cliente.
Use o seguinte comando para criar uma entidade de serviço e configurar seu acesso aos recursos do Azure:
az ad sp create-for-rbac \
--name <your application name> \
--role Contributor \
--scopes /subscriptions/mySubscriptionID
Este comando retorna um valor semelhante à seguinte saída:
{
"appId": "generated-app-ID",
"displayName": "dummy-app-name",
"name": "http://dummy-app-name",
"password": "random-password",
"tenant": "tenant-ID"
}
Use o comando a seguir para criar uma entidade de serviço junto com um certificado. Anote o caminho/local deste certificado.
az ad sp create-for-rbac \
--name <your application name> \
--role Contributor \
--cert <certificate name> \
--create-cert
Verifique as credenciais devolvidas e anote as seguintes informações:
AZURE\_CLIENT\_ID
para o appId.AZURE\_CLIENT\_SECRET
para a senha.AZURE\_TENANT\_ID
para o inquilino.
Credencial secreta do cliente
Essa credencial autentica a entidade de serviço criada por meio de seu segredo de cliente (senha). Este exemplo demonstra a autenticação da SecretClient
biblioteca de cliente azure-security-keyvault-secrets usando o ClientSecretCredential
.
/**
* Authenticate with client secret.
*/
ClientSecretCredential clientSecretCredential = new ClientSecretCredentialBuilder()
.clientId("<your client ID>")
.clientSecret("<your client secret>")
.tenantId("<your tenant ID>")
.build();
// Azure SDK client builders accept the credential as a parameter.
SecretClient client = new SecretClientBuilder()
.vaultUrl("https://<your Key Vault name>.vault.azure.net")
.credential(clientSecretCredential)
.buildClient();
Credencial de certificado de cliente
Essa credencial autentica a entidade de serviço criada por meio de seu certificado de cliente. Este exemplo demonstra a autenticação da SecretClient
biblioteca de cliente azure-security-keyvault-secrets usando o ClientCertificateCredential
.
/**
* Authenticate with a client certificate.
*/
ClientCertificateCredential clientCertificateCredential = new ClientCertificateCredentialBuilder()
.clientId("<your client ID>")
.pemCertificate("<path to PEM certificate>")
// Choose between either a PEM certificate or a PFX certificate.
//.pfxCertificate("<path to PFX certificate>", "PFX CERTIFICATE PASSWORD")
.tenantId("<your tenant ID>")
.build();
// Azure SDK client builders accept the credential as a parameter.
SecretClient client = new SecretClientBuilder()
.vaultUrl("https://<your Key Vault name>.vault.azure.net")
.credential(clientCertificateCredential)
.buildClient();
Próximos passos
Este artigo abordou a autenticação via entidade de serviço. Essa forma de autenticação é uma das várias maneiras de autenticar no SDK do Azure para Java. Os artigos a seguir descrevem outras maneiras:
- Autenticação do Azure em ambientes de desenvolvimento
- Autenticando aplicativos hospedados no Azure
- Autenticação com credenciais de usuário
Se você tiver problemas relacionados à autenticação da entidade de serviço, consulte Solucionar problemas de autenticação da entidade de serviço.
Depois de dominar a autenticação, consulte Configurar o log no SDK do Azure para Java para obter informações sobre a funcionalidade de registro em log fornecida pelo SDK.