Spravované identity v Azure Container Apps

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ý se dá přiřadit k vaší aplikaci kontejneru a dalším prostředkům. Aplikace typu kontejner může mít více identit přiřazených uživatelem. Identita existuje, 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í. Po odstranění vaší aplikace kontejneru se odstraní.
  • 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 kontejnerovou aplikaci.
  • 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 prostředku.
  • potřeba nezávislých identit

Identity přiřazené uživatelem jsou ideální pro úlohy, které:

  • spustit na více prostředcích a může sdílet jednu identitu.
  • potřeba předběžné autorizace k zabezpečenému prostředku

Omezení

Použití spravovaných identit v pravidlech škálování se nepodporuje. Do pravidla škálování budete muset zahrnout připojovací řetězec nebo klíčsecretRef.

Inicializační kontejnery nemají přístup ke spravovaným identitám.

Konfigurace spravovaných identit

Spravované identity můžete nakonfigurovat prostřednictvím:

  • Azure Portal
  • 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řidání identity přiřazené systémem

  1. V levém navigačním panelu stránky aplikace kontejneru se posuňte dolů ke skupině Nastavení.

  2. Vyberte Identitu.

  3. Na kartě Přiřazený systém přepněte stav na Zapnuto. Zvolte Uložit.

Screenshot of system-assigned identities.

Přidání identity přiřazené uživatelem

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.

  1. Podle kroků zjištěných ve správě spravovaných identit přiřazených uživatelem vytvořte prostředek spravované identity přiřazené uživatelem.

  2. V levém navigačním panelu stránky aplikace kontejneru se posuňte dolů ke skupině Nastavení.

  3. Vyberte Identitu.

  4. Na kartě Přiřazené uživatelem vyberte Přidat.

  5. Vyhledejte identitu, kterou jste vytvořili dříve, a vyberte ji. Vyberte Přidat.

Screenshot of user-assigned identities.

Konfigurace cílového prostředku

U některých prostředků budete muset nakonfigurovat přiřazení rolí pro spravovanou identitu vaší aplikace, abyste udělili přístup. Jinak se volání z vaší aplikace do služeb, jako je Azure Key Vault a Azure SQL Database, zamítne, 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ěť na 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. V současné době neexistuje způsob, jak vynutit aktualizaci tokenu.

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 přístupný z aplikace pomocí standardního příkazu HTTP GET, který je možné implementovat s obecným klientem HTTP v každém jazyce. Klientská knihovna Azure Identity poskytuje pro .NET, JavaScript, Java a Python abstrakci tohoto koncového bodu REST. Připojení do jiných služeb Azure je stejně jednoduché jako přidání objektu přihlašovacích údajů do klienta specifického pro službu.

Poznámka:

Pokud používáte klientskou knihovnu Azure Identity, musí být zadáno 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. Informace najdete v příslušných záhlavích dokumentace klientské knihovny:

Odkazované příklady používají DefaultAzureCredential. Je užitečná pro většinu scénářů, protože stejný model funguje v Azure (se spravovanými identitami) a na místním počítači (bez spravovaných identit).

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 ID objektu zabezpečení všech spravovaných identit přiřazených k vaší aplikaci kontejneru.

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. Identity přiřazené systémem se také automaticky odeberou z ID Microsoft Entra při odstranění samotného prostředku aplikace kontejneru. Odebrání spravovaných identit přiřazených uživatelem z aplikace kontejneru je neodebere z ID Microsoft Entra.

  1. V levém navigačním panelu stránky aplikace se posuňte dolů ke skupině Nastavení.

  2. Vyberte Identitu. 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.
    • Identita přiřazená uživatelem: Vyberte kartu Přiřazený uživatel, zaškrtněte políčko pro identitu a vyberte Odebrat. Potvrďte výběrem možnosti Ano.

Další kroky