Quando você chama azure login
, na verdade você está recebendo um token que tem um tempo de vida limitado, portanto, mesmo que você pudesse persistir nas sessões, ele expiraria após 12 horas de qualquer maneira. É possível, mas não é recomendado para especificar o nome de usuário e a senha como parte do seu script:
azure login -u $username -p $password
Para fazer isso, você deve estar usando uma conta do Active Directory do Azure para autenticar, assumindo que está disposto a assumir esse risco, pois, ao administrar sua Assinatura do Azure pessoal , esse pode ser o mais fácil opção.
Na minha experiência, há duas abordagens que seriam mais adequadas em um cenário de empresa, empresa ou de alto risco:
Automação do Azure
A Automação do Azure é um serviço da Plataforma do Azure que permite criar fluxos de trabalho com parâmetros no Azure que você pode disparar em um agendamento, a partir da interface do usuário da web ou da linha de comando. As tarefas repetitivas são simplificadas porque o ambiente em que os fluxos de trabalho são executados é consistente ao longo do tempo e em vários ambientes.
Princípios do serviço do Active Directory do Azure
Autenticação com o Azure usando Service Principals permite que você use um certificado ( .pfx
) para efetuar login no Azure, desde que o certificado seja armazenado sem uma senha e, em seguida, você pode obter login sem senha seguindo estas etapas:
- Gere um par de chaves pública / privada para usar na autenticação.
- Criar um novo aplicativo do Active Directory do Azure
- Crie um novo diretor de serviços para o seu aplicativo AAD
- Conceder permissão para sua assinatura no seu diretor de serviços
-
Autentique com o seu diretor de serviços em seus scripts
cert=$(openssl x509 -in "./examplecert.pem" -fingerprint -noout | sed 's/SHA1 Fingerprint=//g' | sed 's/://g' tenantId=$(azure account show -s <subscriptionId> --json | jq -r '.[0].tenantId') appId=$(azure ad app show --search exampleapp --json | jq -r '.[0].appId') azure login --service-principal --tenant "$tenantId" -u "$appId" --certificate-file ./examplecert.pem --thumbprint "$cert"