Sdílet prostřednictvím


Kontextové objekty Azure PowerShellu

Azure PowerShell používá kontextové objekty Azure PowerShellu (kontexty Azure) k uchovávání informací o předplatném a ověřování. Pokud máte přístup k několika předplatným, kontexty Azure umožňují vybrat předplatné, ve kterých se mají spouštět rutiny Azure PowerShellu. Kontexty Azure se také používají k ukládání přihlašovacích informací napříč několika relacemi PowerShellu a spouštění úloh na pozadí.

Tento článek se zabývá správou kontextů Azure, ne správou předplatných nebo účtů. Pokud chcete spravovat uživatele, předplatná, tenanty nebo jiné informace o účtu, přečtěte si dokumentaci k Id Microsoft Entra. Další informace o používání kontextů pro spouštění úloh na pozadí nebo paralelních úlohách najdete v tématu Spouštění rutin Azure PowerShellu v úlohách PowerShellu po seznámení s kontexty Azure.

Přehled kontextových objektů Azure

Kontexty Azure jsou objekty PowerShellu představující vaše aktivní předplatné pro spouštění příkazů a ověřovací informace potřebné pro připojení ke cloudu Azure. V kontextech Azure nemusí Azure PowerShell při každém přepínání předplatných znovu ověřovat váš účet. Kontext Azure se skládá z:

  • Účet , který se použil k přihlášení do Azure pomocí Connect-AzAccount. Kontexty Azure zachází s uživateli, ID aplikací a instančními objekty stejným způsobem z pohledu účtu.
  • Aktivní předplatné – smlouva o poskytování služeb s Microsoftem pro vytváření a spouštění prostředků Azure, které jsou přidružené k tenantovi. Tenanti se často označují jako organizace v dokumentaci nebo při práci s nástrojem Microsoft Entra.
  • Odkaz na mezipaměť tokenů – uložený ověřovací token pro přístup ke cloudu Azure. Nastavení automatického ukládání kontextu určit, kde je token uložený a jak dlouho trvá.

Další informace o těchto termínech najdete viz Terminologie Entra společnosti Microsoft. Ověřovací tokeny použité v rámci Azure jsou stejné jako ostatní uložené tokeny, které jsou součástí trvalé relace.

Když se přihlásíte pomocí Connect-AzAccount, vytvoří se pro výchozí předplatné alespoň jeden kontext Azure. Objekt vrácený Connect-AzAccount je výchozí Azure kontext používaný pro zbytek relace PowerShellu.

Získejte kontexty Azure

Dostupné kontexty Azure lze načíst pomocí rutiny Get-AzContext. Uveďte dostupné kontexty pomocí parametru ListAvailable:

Get-AzContext -ListAvailable

Nebo získejte kontext podle názvu:

Get-AzContext -Name MyContextName

Názvy kontextu se můžou lišit od názvu přidruženého předplatného. Pokud chcete určit název kontextu, použijte hodnotu vlastnosti Name, která se ve výchozím nastavení nezobrazuje.

Get-AzContext -ListAvailable | Select-Object -Property *

Důležitý

Kontexty Azure, které máte k dispozici, nejsou vždy vašimi předplatnými. Kontexty Azure představují pouze místně uložené informace. Předplatná můžete získat pomocí cmdletu Get-AzSubscription.

Vytvoření nového kontextu Azure z informací o předplatném

Rutina Set-AzContext slouží k vytvoření a nastavení nových kontextů Azure jako aktivního kontextu. Nejjednodušší způsob, jak vytvořit nový kontext Azure, je použít existující informace o předplatném. Cmdlet Set-AzContext je navržen tak, aby převzal výstupní objekt z Get-AzSubscription jako hodnotu kanálu a nakonfiguroval nový kontext Azure.

Get-AzSubscription -SubscriptionName MySubscriptionName |
  Set-AzContext -Name MyContextName

Nebo v případě potřeby zadejte název nebo ID předplatného a ID tenanta:

Set-AzContext -Name MyContextName -Subscription MySubscriptionName -Tenant 00000000-0000-0000-0000-000000000000

Pokud parametr Name vynecháte, název a ID předplatného se použijí jako název kontextu ve formátu Subscription Name (subscription-id).

Změna aktivního kontextu Azure

K změně aktivního kontextu Azure je možné použít Set-AzContext i Select-AzContext. Jak je popsáno v tématu Vytvoření nového kontextu Azure, Set-AzContext vytvoří nový kontext Azure pro předplatné, pokud neexistuje, a pak přepne aktivní kontext na toto.

Select-AzContext se má používat jenom s existujícími kontexty Azure a funguje podobně jako Set-AzContext -Context, ale je určená pro použití s potrubím:

Set-AzContext -Context (Get-AzContext -Name MyContextName) # Set a context with an inline Azure context object
Get-AzContext -Name MyContextName | Select-AzContext # Set a context with a piped Azure context object

Stejně jako mnoho dalších příkazů pro správu účtů a kontextu v Azure PowerShellu Set-AzContext a Select-AzContext podporují parametr Scope, abyste mohli řídit, jak dlouho je kontext aktivní. Obor umožňuje změnit aktivní kontext jedné relace beze změny výchozího nastavení:

Get-AzContext -Name MyContextName | Select-AzContext -Scope Process

Aby se zabránilo přepínání kontextů pro celou relaci PowerShellu, je možné příkazy Azure PowerShellu s parametrem AzContext spustit v daném kontextu:

$context = Get-AzContext -Name MyContextName
New-AzVM -Name ExampleVM -AzContext $context

Druhým primárním použitím kontextů s rutinami Azure PowerShellu je spouštění příkazů na pozadí. Další informace o spouštění úloh PowerShellu pomocí Azure PowerShellu najdete v tématu Spouštění rutin Azure PowerShellu v úlohách PowerShellu.

Ukládání kontextů Azure napříč relacemi PowerShellu

Ve výchozím nastavení se kontexty Azure ukládají pro použití mezi relacemi PowerShellu. Toto chování můžete změnit následujícími způsoby:

  • Přihlaste se pomocí -Scope Process s Connect-AzAccount.

    Connect-AzAccount -Scope Process
    

    Kontext Azure vrácený jako součást tohoto přihlášení je platný pro aktuální relaci pouze a neuloží se automaticky bez ohledu na nastavení automatického ukládání kontextu Azure PowerShellu.

  • Pomocí rutiny Disable-AzContextAutosave zakažte automatické ukládání kontextu v Azure PowerShellu. Zakázání automatického ukládání kontextu nevymaže žádné uložené tokeny. Informace o vymazání uložených informací o kontextu Azure najdete v tématu Odebrání kontextů Azure a uložených přihlašovacích údajů.

  • Automatické ukládání kontextu Azure je možné explicitně povolit pomocí rutiny Enable-AzContextAutosave. S povoleným automatickým ukládáním se kontexty uživatele ukládají místně pro pozdější relace PowerShellu.

  • Ručně uložte kontexty s Save-AzContext, které se mají použít v budoucích relacích PowerShellu, kde je můžete načíst pomocí Import-AzContext:

    Save-AzContext -Path current-context.json # Save the current context
    Import-AzContext -Path other-context.json # Load the context from a file and set it to the current context
    

Varování

Zakázání automatického ukládání kontextu nevymaže žádné uložené informace o kontextu, které byly uloženy. K odebrání uložených informací použijte rutinu Clear-AzContext. Další informace o odebírání uložených kontextů najdete v tématu Odebrání kontextů Azure a uložených přihlašovacích údajů.

Každý z těchto příkazů podporuje parametr Scope, který může mít hodnotu Process pro použití pouze na právě spuštěný proces. Například, chcete-li zajistit, aby se nově vytvořené kontexty neuložily po ukončení relace PowerShellu:

Disable-AzContextAutosave -Scope Process
Set-AzContext -Subscription 'Subscription ID or Name' -Tenant 00000000-0000-0000-0000-000000000000

Kontextové informace a tokeny jsou uloženy v adresáři $env:USERPROFILE\.Azure ve Windows a $HOME/.Azure na jiných platformách. Citlivé informace, jako jsou ID předplatného a ID tenanta, se můžou dál zobrazovat v uložených informacích, prostřednictvím protokolů nebo uložených kontextů. Informace o vymazání uložených informací najdete v tématu Odebrání kontextů Azure a uložených přihlašovacích údajů.

Odebrání kontextů Azure a uložených přihlašovacích údajů

Vymazání kontextu a přihlašovacích údajů Azure:

  • Odhlaste se z účtu pomocí Disconnect-AzAccount. Můžete se odhlásit z libovolného účtu podle účtu nebo kontextu:

    Disconnect-AzAccount # Disconnect active account
    Disconnect-AzAccount -Username 'user@contoso.com' # Disconnect by account name
    Disconnect-AzAccount -ContextName MyContextName # Disconnect by context name
    
    $context = Get-AzContext
    Disconnect-AzAccount -AzureContext $context # Disconnect using context object information
    

    Odpojení vždy odebere uložené ověřovací tokeny a vymaže uložené kontexty přidružené k odpojeného uživatele nebo kontextu.

  • Použijte Clear-AzContext. Tato rutinová příkazová jednotka vždy odebere uložené kontexty a ověřovací tokeny a odhlásí vás.

  • Odebrání kontextu s Remove-AzContext:

    Remove-AzContext -Name MyContextName # Remove by name
    Get-AzContext -Name MyContextName | Remove-AzContext # Remove by piping an Azure context object
    

    Pokud odeberete aktivní kontext, odpojíte se od Azure a potřebujete znovu provést ověření pomocí Connect-AzAccount.

Viz také