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.
Neste artigo, você aprenderá a autenticar aplicativos com segurança para automatizar tarefas usando o módulo Microsoft Entra PowerShell. Ele abrange autenticação baseada em certificado, credenciais de segredo do cliente e identidades gerenciadas.
Esse conhecimento permite acesso eficiente e seguro a recursos Microsoft Entra e Azure sem gerenciar manualmente credenciais confidenciais. É crucial para manter práticas de segurança robustas e simplificar o gerenciamento de acesso em ambientes de nuvem.
Importante
O acesso somente ao aplicativo concede permissões diretamente a um aplicativo e requer que um administrador consenta com os escopos de permissão necessários. Para obter mais informações sobre o acesso somente ao aplicativo, consulte plataforma de identidade da Microsoft e o fluxo de credenciais do cliente OAuth 2.0.
Pré-requisitos
Para usar o acesso somente ao aplicativo com o módulo Microsoft Entra PowerShell, você precisa:
- Uma conta Microsoft Entra ID. Se você ainda não tem uma conta, é possível criar uma conta gratuita.
- Uma das seguintes funções:
- Módulo do PowerShell do Microsoft Entra instalado. Siga o guia Instalar o módulo Microsoft Entra PowerShell para instalar o módulo.
- Um certificado a ser usado como uma credencial para o aplicativo. O certificado pode ser um certificado autoassinado ou um certificado de uma autoridade. Para obter mais informações sobre como criar um certificado autoassinado, consulte Criar um certificado público autoassinado. Certificados autoassinados não são recomendados para cenários de produção. Obtenha um certificado de uma autoridade de certificação para cenários de produção.
Usar autenticação baseada em certificado
Você deve ter essas informações para autenticar usando um certificado.
- A entidade do certificado ou a impressão digital do certificado carregadas no registro de aplicativo do Microsoft Entra.
- ID do aplicativo para o registro do seu aplicativo. Se você ainda não tiver um registro de aplicativo, consulte Criar um aplicativo personalizado.
- Seu ID de locatário.
Nesta seção, você aprenderá a usar um certificado para autenticar com o módulo Microsoft Entra PowerShell. Você pode usar a impressão digital do certificado, o nome do certificado ou o próprio certificado para autenticar. Para se autenticar com os exemplos fornecidos, você precisa iniciar sessão com pelo menos a função Administrador de Funções com Privilégios.
Usar impressão digital do certificado
$params = @{
ClientId = 'YOUR_APP_ID'
TenantId = 'YOUR_TENANT_ID'
CertificateThumbprint = 'YOUR_CERT_THUMBPRINT'
}
Connect-Entra @params
Para encontrar a impressão digital do certificado no centro de administração do Microsoft Entra, navegue até Identidade>Registros de aplicativo>Certificados e segredos>Certificados. Selecione o certificado e copie sua impressão digital.
Como alternativa, você pode usar o seguinte comando do PowerShell para obter seu certificado autoassinado:
Get-ChildItem Cert:\CurrentUser\My
Usar o nome do certificado
$params = @{
ClientId = 'YOUR_APP_ID'
TenantId = 'YOUR_TENANT_ID'
CertificateName = 'YOUR_CERT_SUBJECT'
}
Connect-Entra @params
Você pode encontrar o assunto do certificado executando o comando:
Get-ChildItem Cert:\CurrentUser\My\$CertThumbprint | Select Subject
Usar um certificado
$cert = Get-ChildItem Cert:\CurrentUser\My\$CertThumbprint
Connect-Entra -ClientId 'YOUR_APP_ID' -TenantId 'YOUR_TENANT_ID' -Certificate $cert
Para usar um certificado armazenado no repositório de certificados do computador ou em outro local ao se conectar ao Microsoft Entra PowerShell, especifique o local do certificado.
Se a autenticação for bem-sucedida, você verá a mensagem Welcome To Microsoft Graph!. Execute o comando Get-EntraContext para verificar se você está autenticado com o método somente de aplicativo. A saída deve ser como a seguir.
ClientId : YOUR_APP_ID
TenantId : YOUR_TENANT_ID
CertificateThumbprint :
Scopes : {Group.Read.All, User.Read.All}
AuthType : AppOnly
CertificateName : YOUR_CERT_SUBJECT
Account :
AppName : {Your Awesome Application Name Here}
ContextScope : Process
Environment : Global
Usar credenciais de segredo do cliente
A concessão de credenciais do cliente é usada para autenticar e autorizar o aplicativo a acessar recursos em seu próprio nome. O suporte para credenciais de segredo do cliente é adicionado adicionando o parâmetro -ClientSecretCredential ao Connect-Entra.
# Define the Application (Client) ID and Secret
$applicationClientId = '<application(client)ID>' # Application (Client) ID
$applicationClientSecret = '<secret.value>' # Application Secret Value
$tenantId = 'Tenant_Id' # Tenant ID
# Convert the Client Secret to a Secure String
$secureClientSecret = ConvertTo-SecureString -String $applicationClientSecret -AsPlainText -Force
# Create a PSCredential Object Using the Client ID and Secure Client Secret
$clientSecretCredential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $applicationClientId, $secureClientSecret
# Connect to Microsoft Graph Using the Tenant ID and Client Secret Credential
Connect-Entra -TenantId $tenantId -ClientSecretCredential $clientSecretCredential
Para criar ou adicionar um segredo do cliente, use o comando New-EntraServicePrincipalPasswordCredential ou veja: Adicionar um segredo do cliente em centro de administração do Microsoft Entra.
Observação
É recomendável usar o PowerShell 7 ou superior ao usar o método de autenticação de credenciais de segredo do cliente.
Usar identidade gerenciada
Um desafio comum ao escrever scripts de automação é o gerenciamento de segredos, credenciais, certificados e chaves usadas para proteger a comunicação entre os serviços. Elimine a necessidade de gerenciar credenciais permitindo que o módulo obtenha tokens de acesso para Azure recursos protegidos por Microsoft Entra ID. A plataforma Azure gerencia a identidade e não exige que você crie nem alterne segredos.
Identidade gerenciada atribuída pelo sistema – usa uma identidade gerenciada automaticamente em uma instância de serviço. A identidade está vinculada ao ciclo de vida de uma instância de serviço.
Connect-Entra -IdentityIdentidade gerenciada atribuída pelo usuário – usa uma identidade gerenciada criada pelo usuário como um recurso de Azure autônomo.
Connect-Entra -Identity -ClientId 'User_Assigned_Managed_identity_Client_Id'