Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Spravovaná identita z Microsoft Entra ID umožňuje vaší aplikaci kontejneru přistupovat k dalším prostředkům chráněným Microsoft Entra. Další informace o spravovaných identitách v Microsoft Entra ID najdete v tématu Spravované identity pro prostředky Azure.
Aplikaci kontejneru můžete udělit dva typy identit:
- Identita přiřazená systémem je svázaná s vaší aplikací kontejneru a při odstranění aplikace kontejneru se odstraní. Aplikace může mít pouze jednu identitu přiřazenou systémem.
- Identita přiřazená uživatelem je samostatný prostředek Azure, který můžete přiřadit ke své aplikaci kontejneru a dalším prostředkům. Aplikace typu kontejner může mít více identit přiřazených uživatelem. Identity přiřazené uživatelem existují, dokud je neodstraníte.
Proč používat spravovanou identitu?
Spravovanou identitu ve spuštěné aplikaci kontejneru můžete použít k ověření ve všech službách, které podporují ověřování Microsoft Entra.
Se spravovanými identitami:
- Vaše aplikace se připojuje k prostředkům pomocí spravované identity. V aplikaci kontejneru nemusíte spravovat přihlašovací údaje.
- Řízení přístupu na základě role můžete použít k udělení konkrétních oprávnění spravované identitě.
- Identity přiřazené systémem se automaticky vytvářejí a spravují. Jsou odstraněny, když je aplikace kontejneru odstraněna.
- Můžete přidávat a odstraňovat identity přiřazené uživatelem a přiřazovat je k více prostředkům. Jsou nezávislé na životním cyklu vaší aplikace kontejneru.
- Spravovanou identitu můžete použít k ověření pomocí privátní služby Azure Container Registry bez uživatelského jména a hesla pro vyžádání kontejnerů pro vaši aplikaci kontejneru.
- Spravovanou identitu můžete použít k vytvoření připojení pro aplikace s podporou Dapr prostřednictvím komponent Dapr.
Běžné případy použití
Identity přiřazené systémem jsou nejvhodnější pro úlohy, které:
- jsou obsaženy v rámci jednoho zdroje.
- potřeba nezávislých identit
Identity přiřazené uživatelem jsou ideální pro úlohy, které:
- Lze spustit na více prostředcích a sdílet jednu identitu.
- potřeba předběžné autorizace k zabezpečenému prostředku
Omezení
Inicializační kontejnery nemají přístup ke spravovaným identitám v prostředích jen pro spotřebu a vyhrazených prostředích profilů úloh
Konfigurace spravovaných identit
Spravované identity můžete nakonfigurovat prostřednictvím:
- portál Azure
- Rozhraní příkazového řádku Azure
- šablona Azure Resource Manageru (ARM)
Když se spravovaná identita přidá, odstraní nebo upraví ve spuštěné aplikaci kontejneru, aplikace se automaticky nerestartuje a nevytvořila se nová revize.
Poznámka:
Při přidávání spravované identity do aplikace kontejneru nasazené před 11. dubna 2022 je nutné vytvořit novou revizi.
Přidat systémem přiřazenou identitu
Přejděte do aplikace kontejneru na webu Azure Portal.
Ve skupině Nastavení vyberte Možnost Identita.
Na kartě Přiřazený systém přepněte stav na Zapnuto.
Zvolte Uložit.
Přidání uživatelsky přiřazené identity
Konfigurace aplikace kontejneru s identitou přiřazenou uživatelem vyžaduje, abyste nejprve vytvořili identitu a pak do konfigurace vaší aplikace kontejneru přidali její identifikátor prostředku. Identity přiřazené uživatelem můžete vytvořit prostřednictvím webu Azure Portal nebo Azure CLI. Informace o vytváření a správě identit přiřazených uživatelem najdete v tématu Správa spravovaných identit přiřazených uživatelem.
Nejprve budete muset vytvořit prostředek identity přiřazený uživatelem.
Prostředek spravované identity přiřazené uživatelem vytvořte podle postupů uvedených ve Správa uživatelsky přiřazených spravovaných identit.
Přejděte do aplikace kontejneru na webu Azure Portal.
Ve skupině Nastavení vyberte Možnost Identita.
V Uživatelem přiřazené vyberte Přidat.
Vyhledejte a vyberte identitu, kterou jste vytvořili dříve.
Vyberte Přidat.
Konfigurace cílového prostředku
U některých prostředků je potřeba nakonfigurovat přiřazení rolí pro spravovanou identitu vaší aplikace pro udělení přístupu. V opačném případě se volání z vaší aplikace do služeb, jako je Azure Key Vault a Azure SQL Database, zamítnou, i když pro tuto identitu použijete platný token. Další informace o řízení přístupu na základě role v Azure (Azure RBAC) najdete v tématu Co je RBAC? Další informace o tom, které prostředky podporují tokeny Microsoft Entra, najdete v tématu Služby Azure, které podporují ověřování Microsoft Entra.
Důležité
Back-endové služby pro spravované identity uchovávají mezipaměť pro identifikátor URI prostředku přibližně po dobu 24 hodin. Pokud aktualizujete zásady přístupu konkrétního cílového prostředku a okamžitě načtete token pro tento prostředek, můžete token uložený v mezipaměti získat se zastaralými oprávněními, dokud nevyprší platnost tohoto tokenu. Vynucení aktualizace tokenu se nepodporuje.
Připojení ke službám Azure v kódu aplikace
Pomocí spravovaných identit může aplikace získat tokeny pro přístup k prostředkům Azure, které používají ID Microsoft Entra, jako je Azure SQL Database, Azure Key Vault a Azure Storage. Tyto tokeny představují aplikaci, která přistupuje k prostředku, a ne k žádnému konkrétnímu uživateli aplikace.
Container Apps poskytuje interně přístupný koncový bod REST pro načtení tokenů. Koncový bod REST je k dispozici v aplikaci se standardním požadavkem HTTP GET , který můžete odeslat pomocí obecného klienta HTTP ve vašem upřednostňovaném jazyce. Klientská knihovna Azure Identity poskytuje pro .NET, JavaScript, Java a Python abstrakci tohoto koncového bodu REST. K dalším službám Azure se můžete připojit přidáním objektu přihlašovacích údajů do klienta specifického pro službu.
Poznámka:
Pokud používáte klientskou knihovnu Azure Identity, musíte explicitně zadat ID klienta spravované identity přiřazené uživatelem.
Poznámka:
Při připojování ke zdrojům dat Azure SQL pomocí Entity Framework Core zvažte použití Microsoft.Data.SqlClient, které poskytuje speciální připojovací řetězec pro připojení spravovaných identit.
Pro aplikace .NET je nejjednodušší způsob, jak pracovat se spravovanou identitou, prostřednictvím klientské knihovny Azure Identity pro .NET. Další informace najdete v následujících materiálech:
- Přidání klientské knihovny Azure Identity do projektu
- Přístup ke službě Azure pomocí identity přiřazené systémem
- Přístup ke službě Azure pomocí identity přiřazené uživatelem
Odkazované příklady používají DefaultAzureCredential. Tento objekt je ve většině scénářů efektivní, protože stejný model funguje v Azure (se spravovanými identitami) a na místním počítači (bez spravovaných identit).
Použití spravované identity pro pravidla škálování
Spravované identity ve vašich pravidlech škálování můžete použít k ověřování pomocí služeb Azure, které podporují spravované identity. Pokud chcete ve svém pravidle škálování použít spravovanou identitu, použijte namísto vlastnosti identity vlastnost auth. Přijatelné hodnoty pro identity vlastnost jsou ID prostředku Azure identity přiřazené uživatelem nebo system použití identity přiřazené systémem.
Následující příklad šablony ARM ukazuje, jak používat spravovanou identitu s pravidlem škálování azure Queue Storage:
Účet úložiště fronty používá vlastnost accountName k identifikaci účtu úložiště, zatímco vlastnost identity určuje, kterou spravovanou identitu má použít. Vlastnost nemusíte používat auth .
"scale": {
"minReplicas": 1,
"maxReplicas": 10,
"rules": [{
"name": "myQueueRule",
"azureQueue": {
"accountName": "mystorageaccount",
"queueName": "myqueue",
"queueLength": 2,
"identity": "<IDENTITY1_RESOURCE_ID>"
}
}]
}
Další informace o používání spravované identity s pravidly škálování najdete v tématu Nastavení pravidel škálování v Azure Container Apps.
Řízení dostupnosti spravované identity
Container Apps umožňuje zadat inicializační kontejnery a hlavní kontejnery. Ve výchozím nastavení můžou hlavní i inicializační kontejnery v prostředí profilu úloh consumption používat spravovanou identitu pro přístup k jiným službám Azure. V prostředích jen pro spotřebu a vyhrazených prostředích profilů úloh můžou spravovanou identitu používat pouze hlavní kontejnery. Přístupové tokeny spravované identity jsou k dispozici pro každou spravovanou identitu nakonfigurovanou v aplikaci kontejneru. V některých situacích ale pouze inicializační kontejner nebo hlavní kontejner vyžadují přístupové tokeny pro spravovanou identitu. Jindy můžete ke stažení image kontejneru použít spravovanou identitu pouze pro přístup ke službě Azure Container Registry a samotná aplikace nemusí mít přístup ke službě Azure Container Registry.
Počínaje verzí 2024-02-02-previewrozhraní API můžete řídit, které spravované identity jsou pro vaši aplikaci kontejneru dostupné během inicializačních a hlavních fází, a řídit tak princip zabezpečení s nejnižšími oprávněními. Existují tyto možnosti:
-
Init: K dispozici pouze pro inicializační kontejnery. Tuto možnost použijte, když chcete provést určitou inicializaci, která vyžaduje spravovanou identitu, ale spravovanou identitu už nepotřebujete v hlavním kontejneru. Tato možnost se v současné době podporuje jenom v prostředích s využitím profilů úloh. -
Main: K dispozici pouze pro hlavní kontejnery. Tuto možnost použijte, pokud váš inicializační kontejner nepotřebuje spravovanou identitu. -
All: K dispozici pro všechny kontejnery. Tato hodnota je výchozím nastavením. -
None: Není k dispozici pro žádné kontejnery. Tuto možnost použijte, pokud máte spravovanou identitu, která se používá jenom pro vyžádání image ACR, pravidla škálování nebo tajné kódy služby Key Vault a nemusí být k dispozici pro kód spuštěný ve vašich kontejnerech.
Následující příklad šablony ARM ukazuje, jak nakonfigurovat kontejnerovou aplikaci v prostředí profilu spotřeby úloh, které:
- Omezuje identitu přiřazenou systémem aplikace kontejneru pouze na hlavní kontejnery.
- Omezuje konkrétní identitu přiřazenou uživatelem pouze na inicializační kontejnery.
- Používá konkrétní identitu přiřazenou uživatelem pro vyžádání image služby Azure Container Registry, aniž by umožňovala kódu v kontejnerech používat tuto spravovanou identitu pro přístup k registru. V tomto příkladu samotné kontejnery nepotřebují přístup k registru.
Tento přístup omezuje prostředky, ke kterým je možné získat přístup, pokud by objekt actor se zlými úmysly získal neoprávněný přístup ke kontejnerům.
{
"location": "eastus2",
"identity":{
"type": "SystemAssigned, UserAssigned",
"userAssignedIdentities": {
"<IDENTITY1_RESOURCE_ID>":{},
"<ACR_IMAGEPULL_IDENTITY_RESOURCE_ID>":{}
}
},
"properties": {
"workloadProfileName":"Consumption",
"environmentId": "<CONTAINER_APPS_ENVIRONMENT_ID>",
"configuration": {
"registries": [
{
"server": "myregistry.azurecr.io",
"identity": "ACR_IMAGEPULL_IDENTITY_RESOURCE_ID"
}],
"identitySettings":[
{
"identity": "ACR_IMAGEPULL_IDENTITY_RESOURCE_ID",
"lifecycle": "None"
},
{
"identity": "<IDENTITY1_RESOURCE_ID>",
"lifecycle": "Init"
},
{
"identity": "system",
"lifecycle": "Main"
}]
},
"template": {
"containers":[
{
"image":"myregistry.azurecr.io/main:1.0",
"name":"app-main"
}
],
"initContainers":[
{
"image":"myregistry.azurecr.io/init:1.0",
"name":"app-init",
}
]
}
}
}
Zobrazení spravovaných identit
Spravované identity přiřazené systémem a uživatelem můžete zobrazit pomocí následujícího příkazu Azure CLI. Výstup zobrazuje typ spravované identity, ID tenanta a hlavní ID všech spravovaných identit přiřazených k vaší kontejnerové aplikaci.
az containerapp identity show --name <APP_NAME> --resource-group <GROUP_NAME>
Odebrání spravované identity
Když odeberete identitu přiřazenou systémem, odstraní se z ID Microsoft Entra. Systémem přiřazené identity se také automaticky odeberou z Microsoft Entra ID při odstranění samotného prostředku kontejnerové aplikace. Odebrání spravovaných identit přiřazených uživatelem z aplikace kontejneru je neodebere z ID Microsoft Entra.
V levém navigačním panelu stránky aplikace se posuňte dolů ke skupině Nastavení .
Vyberte Identita. Pak postupujte podle kroků založených na typu identity:
- Identita přiřazená systémem: Na kartě Přiřazený systém přepněte Stav na Vypnuto. Zvolte Uložit.
- Uživatelem přiřazená identita: Vyberte kartu Uživatelem přiřazeno, zaškrtněte políčko pro identitu a vyberte Odebrat. Potvrďte výběrem možnosti Ano.