Logowanie się do platformy Azure interaktywnie przy użyciu interfejsu wiersza polecenia platformy Azure

Interaktywne logowania do platformy Azure oferują bardziej intuicyjne i elastyczne środowisko użytkownika. Za pomocą Azure CLI możesz uwierzytelnić się w platformie Azure bezpośrednio za pomocą polecenia az login. To polecenie jest przydatne w przypadku zadań zarządzania ad hoc i środowisk wymagających ręcznego logowania, takich jak te z uwierzytelnianiem wieloskładnikowym (MFA). Ta metoda upraszcza dostęp do testowania skryptów, uczenia się i zarządzania na bieżąco bez konieczności wstępnego konfigurowania jednostek usługi lub innych metod uwierzytelniania nieinteraktywnego.

Ważne

Począwszy od 2025 r., firma Microsoft będzie wymuszać obowiązkowe uwierzytelnianie wieloskładnikowe dla interfejsu wiersza polecenia platformy Azure i innych narzędzi wiersza polecenia. Aby uzyskać więcej informacji na temat tego wymagania, zobacz nasz wpis w blogu .

Uwierzytelnianie wieloskładnikowe będzie miało wpływ tylko na tożsamości użytkowników Microsoft Entra ID . To nie wpłynie na tożsamości związane z obciążeniem pracą, takie jak główne nazwy usług oraz tożsamości zarządzane .

Jeśli używasz az login z identyfikatorem Entra i hasłem do uwierzytelniania skryptu lub zautomatyzowanego procesu, zaplanuj teraz migrację do tożsamości obciążenia. Oto kilka przydatnych linków, które pomogą Ci w wprowadzeniu tej zmiany:

Wymagania wstępne

Logowanie interakcyjne

Aby zalogować się interaktywnie, użyj polecenia az login . Począwszy od interfejsu wiersza polecenia platformy Azure w wersji 2.61.0, interfejs wiersza polecenia platformy Azure domyślnie używa menedżera kont internetowych (WAM) w systemie Windows oraz logowania opartego na przeglądarce w systemach Linux i macOS.

Azure CLI
az login

Selektor subskrypcji

Począwszy od interfejsu wiersza polecenia platformy Azure w wersji 2.61.0, jeśli masz dostęp do wielu subskrypcji, zostanie wyświetlony monit o wybranie subskrypcji platformy Azure podczas logowania, jak pokazano w poniższym przykładzie.

Output
Retrieving subscriptions for the selection...

[Tenant and subscription selection]

No    Subscription name                     Subscription ID                           Tenant name
----  ------------------------------------  ----------------------------------------  --------------
[1]   Facility Services Subscription        00000000-0000-0000-0000-000000000000      Contoso
[2]   Finance Department Subscription       00000000-0000-0000-0000-000000000000      Contoso
[3]   Human Resources Subscription          00000000-0000-0000-0000-000000000000      Contoso
[4] * Information Technology Subscription   00000000-0000-0000-0000-000000000000      Contoso

The default is marked with an *; the default tenant is 'Contoso' and subscription is
'Information Technology Subscription' (00000000-0000-0000-0000-000000000000).

Select a subscription and tenant (Type a number or Enter for no changes): 2

Tenant: Contoso
Subscription: Finance Department Subscription (00000000-0000-0000-0000-000000000000)

[Announcements]
With the new Azure CLI login experience, you can select the subscription you want to use more easily.
Learn more about it and its configuration at https://go.microsoft.com/fwlink/?linkid=2271236

If you encounter any problem, please open an issue at https://aka.ms/azclibug

Podczas następnego logowania się, wcześniej wybrany klient i subskrypcja zostaną oznaczone jako domyślne gwiazdką (*) przy ich numerze. To oznaczenie umożliwia naciśnięcie Enter, aby wybrać domyślną subskrypcję.

Domyślnie polecenia są uruchamiane względem wybranej subskrypcji. Możesz użyć az account set, aby zmienić subskrypcję z wiersza polecenia w dowolnym momencie. Aby uzyskać więcej informacji, zobacz Jak zarządzać subskrypcjami platformy Azure za pomocą interfejsu wiersza polecenia platformy Azure.

Poniżej przedstawiono kilka wskazówek dotyczących selektora subskrypcji, które należy wziąć pod uwagę:

  • Selektor subskrypcji jest dostępny tylko w 64-bitowych systemach Windows, Linux lub macOS.
  • Selektor subskrypcji jest dostępny tylko w przypadku korzystania z az login polecenia .
  • Po zalogowaniu się przy użyciu jednostki usługi lub tożsamości zarządzanej nie zostanie wyświetlony monit o wybranie subskrypcji.

Jeśli chcesz wyłączyć funkcję selektora subskrypcji, ustaw właściwość konfiguracji core.login_experience_v2 na off.

Azure CLI
az config set core.login_experience_v2=off
az login

Logowanie się przy użyciu Menedżera kont sieci Web (WAM) w systemie Windows

Począwszy od wersji interfejsu wiersza polecenia platformy Azure 2.61.0, Menedżer kont sieci Web (WAM) jest domyślną metodą uwierzytelniania w systemie Windows. WAM to składnik systemu Windows 10+, który działa jako broker uwierzytelniania. Broker uwierzytelniania to aplikacja uruchamiana na komputerze użytkownika. Zarządza procedurami uwierzytelniania i zarządzaniem tokenami dla połączonych kont.

Korzystanie z wam ma kilka korzyści:

Jeśli wystąpi problem i chcesz przywrócić poprzednią metodę uwierzytelniania opartą na przeglądarce, ustaw właściwość konfiguracji core.enable_broker_on_windows na false.

Azure CLI
az account clear
az config set core.enable_broker_on_windows=false
az login

WAM jest dostępny w systemie Windows 10 lub nowszym oraz w systemie Windows Server 2019 i nowszych wersjach.

Logowanie przy użyciu przeglądarki

Interfejs wiersza polecenia platformy Azure domyślnie jest metodą uwierzytelniania opartą na przeglądarce, jeśli jest spełniony jeden z następujących warunków:

  • System operacyjny (OS) to Mac, Linux lub Windows OS jest starszy niż Windows 10 lub Windows Server 2019.
  • Właściwość konfiguracji jest ustawiona core.enable_broker_on_windows na falsewartość .

Aby zalogować się za pomocą przeglądarki, wykonaj następujące kroki:

  1. Uruchom polecenie az login.

    Azure CLI
    az login
    

    Jeśli interfejs wiersza polecenia platformy Azure może otworzyć domyślną przeglądarkę, inicjuje przepływ kodu autoryzacji i otwiera domyślną przeglądarkę, aby załadować stronę logowania platformy Azure.

    W przeciwnym razie inicjuje przepływ kodu urządzenia i nakazuje otwarcie strony przeglądarki pod adresem https://aka.ms/devicelogin. Następnie wprowadź kod wyświetlany w terminalu.

    Jeśli żadna przeglądarka internetowa nie jest dostępna lub przeglądarka internetowa nie zostanie otwarta, możesz wymusić przepływ kodu urządzenia za pomocą polecenia az login --use-device-code.

  2. Zaloguj się w przeglądarce przy użyciu poświadczeń swojego konta.

Logowanie się za pomocą poświadczeń w wierszu polecenia

Podaj swoje poświadczenia użytkownika platformy Azure w wierszu polecenia. Użyj tej metody uwierzytelniania tylko do nauki poleceń interfejsu wiersza polecenia platformy Azure. W przypadku aplikacji na poziomie produkcyjnym użyj jednostki usługi lub tożsamości zarządzanej.

To podejście nie działa dla kont Microsoft ani kont mających włączone uwierzytelnianie dwuskładnikowe. Otrzymasz komunikat dotyczący uwierzytelniania interakcyjnego.

Azure CLI
az login --user <username> --password <password>

Ważne

Aby uniknąć wyświetlania hasła w konsoli podczas korzystania z az login interaktywnie, użyj polecenia read -s w obszarze bash.

Bash
read -sp "Azure password: " AZ_PASS && echo && az login -u <username> -p $AZ_PASS

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

PowerShell
$AzCred = Get-Credential -UserName <username>
az login -u $AzCred.UserName -p $AzCred.GetNetworkCredential().Password

Logowanie się przy użyciu innej dzierżawy

Możesz wybrać najemcę, aby zalogować się za pomocą argumentu --tenant. Wartością tego argumentu może być domena .onmicrosoft.com lub identyfikator obiektu platformy Azure dla dzierżawy. Metody logowania interakcyjnego i wiersza polecenia współpracują z usługą --tenant.

W wybranych środowiskach i począwszy od interfejsu wiersza polecenia platformy Azure w wersji core.login_experience_v2 należy najpierw wyłączyć selektor subskrypcji, ustawiając właściwość konfiguracji na off.

Azure CLI
# disable the subscription selector (v. 2.61.0 and up)
az config set core.login_experience_v2=off

# login with a tenant ID
az login --tenant 00000000-0000-0000-0000-000000000000

Aby ponownie włączyć selektor subskrypcji, uruchom polecenie az config set core.login_experience_v2=on. Aby uzyskać więcej informacji na temat selektora subskrypcji, zobacz Interactive login.

Aby zmienić aktywnego najemcę po zalogowaniu, zobacz Jak zmienić aktywnego najemcę.

Logowanie przy użyciu --scope

Azure CLI
az login --scope https://management.core.windows.net//.default

Wyloguj

Aby usunąć dostęp do platformy Azure, użyj polecenia az logout .

Azure CLI
az logout

Czyszczenie pamięci podręcznej subskrypcji

Aby zaktualizować listę subskrypcji, użyj polecenia az account clear . Musisz zalogować się ponownie, aby wyświetlić zaktualizowaną listę.

Azure CLI
az account clear

az login

Wyczyszczenie pamięci podręcznej subskrypcji nie jest technicznie tym samym procesem, co wylogowywanie się z platformy Azure. Jednak po wyczyszczeniu pamięci podręcznej subskrypcji nie można uruchamiać poleceń Azure CLI, w tym az account set, dopóki nie zalogujesz się ponownie.

Tokeny odświeżania

Po zalogowaniu się przy użyciu konta użytkownika interfejs wiersza polecenia platformy Azure generuje i przechowuje token odświeżania uwierzytelniania. Ponieważ tokeny dostępu są ważne tylko przez krótki czas, token odświeżania jest wystawiany w tym samym czasie, gdy token dostępu jest wystawiany. Aplikacja kliencka może następnie w razie potrzeby wymienić ten token odświeżania dla nowego tokenu dostępu. Aby uzyskać więcej informacji na temat okresu istnienia i wygaśnięcia tokenu, zobacz Odświeżanie tokenów w Platforma tożsamości Microsoft.

Użyj polecenia az account get-access-token, aby pobrać token dostępu:

Azure CLI
# get access token for the active subscription
az account get-access-token

# get access token for a specific subscription
az account get-access-token --subscription "<subscription ID or name>"

Oto kilka dodatkowych informacji na temat dat wygaśnięcia tokenu dostępu:

  • Daty wygaśnięcia są aktualizowane w formacie obsługiwanym przez interfejs wiersza polecenia platformy Azure oparty na protokole MSAL.
  • Począwszy od interfejsu wiersza polecenia platformy Azure w wersji 2.54.0, az account get-access-token zwraca expires_on właściwość wraz z właściwością expiresOn czasu wygaśnięcia tokenu.
  • Właściwość expires_on reprezentuje znacznik czasu przenośnego interfejsu systemu operacyjnego (POSIX), podczas gdy expiresOn właściwość reprezentuje lokalną datę/godzinę.
  • Właściwość expiresOn nie wyraża "fałszu", gdy kończy się czas letni. Może to spowodować problemy w krajach lub regionach, w których przyjmuje się czas letni. Aby uzyskać więcej informacji na temat "składania", zobacz PEP 495 – uściślanie czasu lokalnego.
  • Zalecamy używanie właściwości przez aplikacje expires_on podrzędne, ponieważ używa ono kodu uniwersalnego czasu (UTC).

Przykładowe wyjście:

JSON
{
  "accessToken": "...",
  "expiresOn": "2023-10-31 21:59:10.000000",
  "expires_on": 1698760750,
  "subscription": "...",
  "tenant": "...",
  "tokenType": "Bearer"
}

Rozwiązywanie problemów

Gdy domyślna przeglądarka to Microsoft Edge, może wystąpić następujący błąd podczas próby interaktywnego zalogowania się na platformie Azure przy użyciu az login: "Połączenie dla tej witryny nie jest bezpieczne." Aby rozwiązać ten problem, odwiedź stronę edge://net-internals/#hsts w przeglądarce Microsoft Edge. Dodaj localhost w obszarze "Usuń zasady zabezpieczeń domeny" i wybierz pozycję Usuń.

Zobacz też