Compartilhar via


Entrar com o Azure PowerShell

O Azure PowerShell dá suporte a vários métodos de autenticação. A maneira mais fácil de começar é com o Azure Cloud Shell que conecta você automaticamente. Em uma instalação local, você pode entrar interativamente com seu navegador. Ao escrever scripts para automação, a abordagem recomendada é usar uma entidade de serviço com as permissões necessárias. Ao restringir as permissões de logon o máximo possível para seu caso de uso, você ajuda a proteger os recursos do Azure.

Depois de entrar, os comandos serão executados de acordo com sua assinatura padrão. Para mudar sua assinatura ativa para uma sessão, use o cmdlet Set-AzContext. Para alterar a assinatura padrão usada ao fazer logon com o Azure PowerShell, use Set-AzDefault.

Importante

Suas credenciais são compartilhadas entre várias sessões do PowerShell, desde que você permaneça conectado. Para obter mais informações, consulte o artigo sobre Credenciais Persistentes.

Entrar no modo interativo

Para entrar no modo interativo, use o cmdlet Connect-AzAccount.

Connect-AzAccount

Quando executado, esse cmdlet apresentará uma cadeia de caracteres de token. Para entrar, copie essa cadeia de caracteres e cole-a em https://microsoft.com/devicelogin em um navegador. Sua sessão do PowerShell será autenticada para se conectar ao Azure.

Importante

A autorização de credenciais de nome de usuário/senha foi removida no Azure PowerShell devido a alterações nas implementações de autorização do Active Directory e a preocupações com a segurança. Se você usar a autorização por credencial para fins de automação, em vez disso crie uma entidade de serviço.

Entrar com uma entidade de serviço

Entidades de serviço são contas do Azure não interativas. Assim como outras contas de usuário, as permissões delas são gerenciadas com o Microsoft Entra ID. Ao conceder a uma entidade de serviço somente as permissões necessárias, você manterá os scripts de automação protegidos.

Para saber como criar uma entidade de serviço para usar com o Azure PowerShell, consulte Criar uma entidade de serviço do Azure com o Azure PowerShell.

Para entrar com uma entidade de serviço, use o argumento -ServicePrincipal com o cmdlet Connect-AzAccount. Você também precisará da ID do aplicativo da entidade de serviço, credenciais de entrada e da ID de locatário associada à entidade de serviço. A forma como você entra com uma entidade de serviço dependerá de se ela está configurada para autenticação baseada em certificado ou em senha.

Autenticação baseada em senha

Para obter as credenciais da entidade de serviço como o objeto apropriado, use o cmdlet Get-Credential. Esse cmdlet apresentará uma solicitação de nome de usuário e senha. Use a ID da entidade de serviço para o nome de usuário.

$pscredential = Get-Credential
Connect-AzAccount -ServicePrincipal -Credential $pscredential -Tenant $tenantId

Para cenários de automação, é necessário criar credenciais a partir de um nome de usuário e de uma cadeia de caracteres segura:

$passwd = ConvertTo-SecureString <use a secure password here> -AsPlainText -Force
$pscredential = New-Object System.Management.Automation.PSCredential('service principal name/id', $passwd)
Connect-AzAccount -ServicePrincipal -Credential $pscredential -Tenant $tenantId

Verifique se que você está usando boas práticas de armazenamento de senha ao automatizar as conexões de entidade de serviço.

Autenticação baseada em certificado

A autenticação baseada em certificado exige que o Azure PowerShell possa recuperar informações de um repositório de certificados local com base em uma impressão digital do certificado.

Connect-AzAccount -ApplicationId $appId -Tenant $tenantId -CertificateThumbprint <thumbprint>

Ao usar uma entidade de serviço em vez de um aplicativo registrado, adicione o argumento -ServicePrincipal e forneça a ID do aplicativo da entidade de serviço como o valor do parâmetro -ApplicationId.

Connect-AzAccount -ServicePrincipal -ApplicationId $servicePrincipalId -Tenant $tenantId -CertificateThumbprint <thumbprint>

No PowerShell 5.1, o repositório de certificados pode ser gerenciado e inspecionado com o módulo PKI. Para o PowerShell Core 6.x e posterior, o processo é mais complicado. Os scripts a seguir mostram como importar um certificado existente no repositório de certificados acessível pelo PowerShell.

Importar um certificado no PowerShell 5.1

# Import a PFX
$credentials = Get-Credential -Message "Provide PFX private key password"
Import-PfxCertificate -FilePath <path to certificate> -Password $credentials.Password -CertStoreLocation cert:\CurrentUser\My

Importar um certificado no PowerShell Core 6.x e posterior

# Import a PFX
$storeName = [System.Security.Cryptography.X509Certificates.StoreName]::My
$storeLocation = [System.Security.Cryptography.X509Certificates.StoreLocation]::CurrentUser
$store = [System.Security.Cryptography.X509Certificates.X509Store]::new($storeName, $storeLocation)
$certPath = <path to certificate>
$credentials = Get-Credential -Message "Provide PFX private key password"
$flag = [System.Security.Cryptography.X509Certificates.X509KeyStorageFlags]::Exportable
$certificate = [System.Security.Cryptography.X509Certificates.X509Certificate2]::new($certPath, $credentials.Password, $flag)
$store.Open([System.Security.Cryptography.X509Certificates.OpenFlags]::ReadWrite)
$store.Add($Certificate)
$store.Close()

Entrar usando uma identidade gerenciada

As identidades gerenciadas são um recurso do Microsoft Entra ID. Elas são entidades de serviço atribuídas aos recursos executados no Azure. Você pode usar uma entidade de serviço de identidade gerenciada para entrar e adquirir um token de acesso somente do aplicativo para acessar outros recursos. As identidades gerenciadas só estão disponíveis nos recursos executados em uma nuvem do Azure.

Esse comando se conecta usando a identidade gerenciada do ambiente de host. Por exemplo, se executado em uma VirtualMachine com uma Identidade de Serviço Gerenciada atribuída, isso permitirá que o código entre usando essa identidade atribuída.

 Connect-AzAccount -Identity

Entrar com um locatário diferente do padrão ou como um Provedor de Soluções na Nuvem (CSP)

Se sua conta estiver associada a mais de um locatário, a entrada exigirá o uso do parâmetro -Tenant ao se conectar. Esse parâmetro funcionará com qualquer método de entrada. Ao fazer logon, esse valor de parâmetro pode ser a ID de objeto do Azure do locatário (ID do Locatário) ou o nome de domínio totalmente qualificado do locatário.

Se você for um Provedor de Soluções na Nuvem (CSP), o valor -Tenantdeverá ser uma ID de locatário.

Connect-AzAccount -Tenant 'xxxx-xxxx-xxxx-xxxx'

Entre em outra Nuvem

Os serviços de nuvem do Azure oferecem ambientes que estão em conformidade com as leis de manipulação de dados regionais. Para contas em uma nuvem regional, defina o ambiente quando você fizer login com o argumento -Environment. Esse parâmetro funcionará com qualquer método de entrada. Por exemplo, se sua conta estiver na nuvem da China:

Connect-AzAccount -Environment AzureChinaCloud

O comando a seguir obtém uma lista dos ambientes disponíveis:

Get-AzEnvironment | Select-Object Name