Logowanie się przy użyciu jednostki usługi przy użyciu interfejsu wiersza polecenia platformy Azure

Jednostki usługi to konta, które nie są powiązane z żadnym konkretnym użytkownikiem, które mogą mieć uprawnienia przypisane za pomocą wstępnie zdefiniowanych ról. Uwierzytelnianiu przy użyciu nazwy głównej usługi jest najlepszym sposobem pisania bezpiecznych skryptów lub programów, umożliwiając stosowanie zarówno ograniczeń uprawnień, jak i statycznych informacji o poświadczeniach przechowywane lokalnie. Aby dowiedzieć się więcej na temat jednostek usługi, zobacz Praca z jednostkami usługi platformy Azure przy użyciu interfejsu wiersza polecenia platformy Azure.

Do zalogowania się za pomocą jednostki usługi są potrzebne następujące elementy:

  • Adres URL lub nazwa skojarzona z jednostką usługi
  • Hasło jednostki usługi lub certyfikat X509 używany do tworzenia jednostki usługi w formacie PEM
  • Dzierżawa skojarzona z jednostką usługi w postaci domeny .onmicrosoft.com lub identyfikatora obiektu platformy Azure

Podczas pracy z jednostkami usługi i interfejsem wiersza polecenia platformy Azure należy zwrócić uwagę na dwa ważne fakty:

  • Certyfikat musi być dołączany do KLUCZA PRYWATNEGO w pliku PEM. Aby zapoznać się z przykładem formatu pliku PEM, zobacz Uwierzytelnianie oparte na certyfikatach.

  • Jeśli jednostka usługi używa certyfikatu przechowywanego w usłudze Key Vault, ten klucz prywatny certyfikatu musi być dostępny bez logowania się na platformie Azure. Aby pobrać certyfikat dla az loginprogramu , zobacz Pobieranie certyfikatu z usługi Key Vault.

az login --service-principal -u <app-id> -p <password-or-cert> --tenant <tenant>

Ważne

Jeśli chcesz zapobiec wyświetlaniu hasła w konsoli i korzystasz z polecenia az login interaktywnie, użyj polecenia read -s w powłoce bash.

read -sp "Azure password: " AZ_PASS && echo && az login --service-principal -u <app-id> -p $AZ_PASS --tenant <tenant>

W programie PowerShell użyj Get-Credential polecenia cmdlet .

$AzCred = Get-Credential -UserName <app-id>
az login --service-principal -u $AzCred.UserName -p $AzCred.GetNetworkCredential().Password --tenant <tenant>

Zobacz też