Zachování přihlašovacích údajů uživatele mezi relacemi PowerShellu

Upozorňující

Modul AzureRM PowerShell byl od 29. února 2024 oficiálně zastaralý. Uživatelům se doporučuje migrovat z AzureRM do modulu Az PowerShell, aby se zajistila nepřetržitá podpora a aktualizace.

I když může modul AzureRM stále fungovat, už se neudržuje ani nepodporuje, přičemž jakékoli další použití se bude umisťovat podle vlastního uvážení a rizika uživatele. Pokyny k přechodu na modul Az najdete v našich zdrojích informací o migraci.

Azure PowerShell nabízí funkci s názvem automatické ukládání kontextu Azure, která vám nabízí následující funkce:

  • Uchování přihlašovacích údajů pro opětovné použití v nových relacích PowerShellu.
  • Snadnější použití úloh na pozadí pro provádění dlouhotrvajících rutin.
  • Přepínání mezi účty, předplatnými a prostředími bez samostatného přihlášení.
  • Současné provádění úloh s použitím různých přihlašovacích údajů a předplatných ze stejné relace PowerShellu.

Definice kontextů Azure

Kontext Azure je soubor informací, který definuje cíl rutin Azure PowerShellu. Kontext se skládá z pěti částí:

  • Účet – Uživatelské jméno nebo instanční objekt používané k ověřování komunikace s Azure.
  • Předplatné – Předplatné Azure s prostředky, se kterými se pracuje.
  • Tenant – tenant Microsoft Entra, který obsahuje vaše předplatné. Tenanti jsou důležitější pro ověřování instančního objektu.
  • Prostředí – Konkrétní cloud Azure, na který se cílí, obvykle globální cloud Azure. Nastavení prostředí však umožňuje cílit i na národní cloudy, cloudy pro státní správu a místní cloudy (Azure Stack).
  • Přihlašovací údaje – Informace, které Azure používá k ověření vaší identity a potvrzení vašeho oprávnění k přístupu k prostředkům v Azure.

V předchozích verzích se kontext Azure musel vytvořit při každém otevření nové relace PowerShellu. Počínaje Azure PowerShellem v4.4.0 se kontexty Azure mohou automaticky ukládat při otevření nové relace PowerShellu.

Automatické uložení kontextu pro další přihlášení

Ve verzích 6.3.0 a novějších Azure PowerShell zachovává informace o kontextu mezi relacemi automaticky. Pokud chcete PowerShell nastavit tak, aby kontext a přihlašovací údaje zapomínal, použijte Disable-AzureRmContextAutoSave. Při každém otevření relace PowerShellu se budete muset přihlásit k Azure.

Pokud chcete povolit, aby si Azure PowerShell pamatoval kontext po zavření relace PowerShellu, použijte Enable-AzureRmContextAutosave. Informace o kontextu a přihlašovacích údajích se automaticky uloží do speciální skryté složky v uživatelském adresáři (%AppData%\Roaming\Windows Azure PowerShell). Každá nová relace PowerShellu bude cílit na kontext použitý v poslední relaci.

Rutiny umožňující správu kontextů Azure umožňují také podrobné řízení. Pokud chcete, změny se můžou použít pouze pro aktuální relaci PowerShellu, (rozsah Process) nebo pro každou relaci PowerShellu (rozsah CurrentUser). Podrobnější popis těchto možností najdete v části Používání rozsahů kontextu.

Spouštění rutin Azure PowerShellu jako úloh na pozadí

Funkce automatického ukládání kontextu Azure umožňuje také sdílení kontextu s úlohami PowerShellu na pozadí. PowerShell umožňuje spouštět a monitorovat dlouhotrvající úlohy jako úlohy na pozadí bez nutnosti čekat na jejich dokončení. Přihlašovací údaje můžete s úlohami na pozadí sdílet dvěma různými způsoby:

  • Předání kontextu jako argumentu

    Většina rutin AzureRM umožňuje předání kontextu do rutiny v podobě parametru. Kontext můžete do úlohy na pozadí předat způsobem znázorněným v následujícím příkladu:

$job = Start-Job { param ($ctx) New-AzureRmVm -AzureRmContext $ctx [... Další parametry ...]} -ArgumentList (Get-AzureRmContext)


- Using the default context with Autosave enabled

If you have enabled **Context Autosave**, background jobs automatically use the default saved
context.

```powershell
$job = Start-Job { New-AzureRmVm [... Additional parameters ...]}

Pokud potřebujete znát výsledek úlohy na pozadí, použijte Get-Job ke kontrole stavu úlohy a Wait-Job k čekání na dokončení úlohy. Pomocí Receive-Job můžete zachytit nebo zobrazit výstup úlohy na pozadí. Další informace najdete v tématu Informace o úlohách.

Vytvoření, výběr, přejmenování a odebrání kontextů

Pokud chcete vytvořit kontext, musíte být přihlášeni k Azure. Rutina Connect-AzureRmAccount (nebo její alias Login-AzureRmAccount) nastaví výchozí kontext používaný rutinami Azure PowerShellu a umožňuje přístup ke všem tenantům a předplatným, které povolují vaše přihlašovací údaje.

Pokud chcete po přihlášení přidat nový kontext, použijte rutinu Set-AzureRmContext (nebo její alias Select-AzureRmSubscription).

Set-AzureRMContext -Subscription 'Contoso Subscription 1' -Name 'Contoso1'

Předchozí příklad přidá nový kontext s cílem Contoso Subscription 1 s použitím vašich aktuálních přihlašovacích údajů. Nový kontext se pojmenuje Contoso1. Pokud pro kontext nezadáte název, použije se výchozí název vycházející z ID účtu a ID předplatného.

Pokud chcete přejmenovat existující kontext, použijte rutinu Rename-AzureRmContext. Příklad:

Rename-AzureRmContext '[user1@contoso.org; 123456-7890-1234-564321]' 'Contoso2'

Tento příklad přejmenuje kontext s automaticky nastaveným názvem [user1@contoso.org; 123456-7890-1234-564321] na jednodušší název Contoso2. Rutiny určené pro správu kontextů také používají dokončování pomocí tabulátoru umožňující rychlý výběr kontextu.

Pokud chcete nakonec odebrat kontext, použijte rutinu Remove-AzureRmContext. Příklad:

Remove-AzureRmContext Contoso2

Zapomene kontext s názvem Contoso2. Tento kontext můžete vytvořit znovu pomocí Set-AzureRmContext.

Odebrání přihlašovacích údajů

Všechny přihlašovací údaje a kontexty přidružené k uživateli nebo instančnímu objektu můžete odebrat pomocí Disconnect-AzureRmAccount (označuje se také jako Logout-AzureRmAccount). Pokud se rutina Disconnect-AzureRmAccount provede bez parametrů, odebere všechny přihlašovací údaje a kontexty přidružené k uživateli nebo instančnímu objektu v aktuálním kontextu. Pokud chcete cílit na konkrétní instanční objekt, můžete předat uživatelské jméno, hlavní název služby (SPN) nebo kontext.

Disconnect-AzureRmAccount user1@contoso.org

Používání rozsahů kontextu

Občas můžete chtít vybrat, změnit nebo odebrat kontext v relaci PowerShellu, aniž by to ovlivnilo ostatní relace. Pokud chcete změnit výchozí chování rutin pracujících s kontextem, použijte parametr Scope. Rozsah Process přepíše výchozí chování tak, že se bude vztahovat pouze na aktuální relaci. Naopak rozsah CurrentUser změní kontext ve všech relacích, a ne pouze v aktuální relaci.

Například pokud chcete změnit výchozí kontext v aktuální relaci PowerShellu, aniž by to ovlivnilo ostatní okna, nebo kontext, který se použije při dalším otevření relace, použijte:

Select-AzureRmContext Contoso1 -Scope Process

Způsob zapamatování nastavení automatického ukládání kontextu

Nastavení automatického ukládání kontextu se ukládá do uživatelského adresáře Azure PowerShellu (%AppData%\Roaming\Windows Azure PowerShell). Některé druhy účtů počítače k tomuto adresáři nemusejí mít přístup. Pro takové scénáře můžete použít proměnnou prostředí.

$env:AzureRmContextAutoSave=$true

Pokud je nastavená hodnota $true, kontext se automaticky uloží. Pokud je nastavená hodnota $false, kontext se neuloží.

Změny modulu AzureRM.Profile

Nové rutiny pro správu kontextu

Změny existujících rutin pracujících s profilem

  • Add-AzureRmAccount – Povolení nastavení rozsahu přihlášení na příslušný proces nebo aktuálního uživatele. Povolení pojmenování výchozího kontextu po ověření.
  • Import-AzureRmContext – Povolení nastavení rozsahu přihlášení na příslušný proces nebo aktuálního uživatele.
  • Set-AzureRmContext – Povolení výběru existujících pojmenovaných kontextů a změna rozsahu na příslušný proces nebo aktuálního uživatele.