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.
V tomto článku se dozvíte, jak vytvořit spravovanou identitu pro aplikace Azure App Service a Azure Functions a jak ji použít pro přístup k dalším prostředkům.
Spravovaná identita z Microsoft Entra ID umožňuje vaší aplikaci snadno přistupovat k dalším prostředkům chráněným microsoftem Entra, jako je Azure Key Vault. Platforma Azure spravuje identitu, takže nemusíte zřizovat ani obměňovat tajné kódy. Další informace o spravovaných identitách v Microsoft Entra ID najdete v tématu Spravované identity pro prostředky Azure.
Aplikaci můžete udělit dva typy identit:
- Identita přiřazená systémem je svázaná s aplikací a je odstraněna, pokud je aplikace odstraněna. 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ý je možné přiřadit k vaší aplikaci. Aplikace může mít více identit přiřazených uživatelem. Jednu identitu přiřazenou uživatelem je možné přiřadit k několika prostředkům Azure, jako jsou dvě aplikace App Service.
Konfigurace spravované identity je specifická pro slot. Pokud chcete nakonfigurovat spravovanou identitu pro slot nasazení, přejděte nejprve do slotu na portálu. Pokud chcete najít spravovanou identitu pro webovou aplikaci nebo nasazovací slot v tenantovi Microsoft Entra na webu Azure Portal, vyhledejte ji přímo na stránce Přehled vašeho tenanta.
Poznámka:
Spravované identity nejsou dostupné pro aplikace nasazené v Azure Arc.
Protože spravované identity nepodporují scénáře napříč adresáři, nechovají se podle očekávání, pokud se vaše aplikace migruje mezi předplatnými nebo tenanty. Pokud chcete po takovém přesunu znovu vytvořit spravované identity, přečtěte si téma Automatické vytvoření spravovaných identit, pokud přesunu předplatné do jiného adresáře? Podřízené prostředky také musí mít aktualizované zásady přístupu, aby používaly novou identitu.
Požadavky
Pokud chcete provést kroky v tomto článku, musíte mít minimální sadu oprávnění k prostředkům Azure. Konkrétní oprávnění, která potřebujete, se liší v závislosti na vašem scénáři. Následující tabulka shrnuje nejběžnější scénáře:
| Scénář | Požadovaná oprávnění | Příklad předdefinovaných rolí |
|---|---|---|
| Vytvoření identity přiřazené systémem |
Microsoft.Web/sites/write nad aplikací nebo Microsoft.Web/sites/slots/write nad slotem |
Přispěvatel webu |
| Vytvořte identitu přiřazenou uživatelem |
Microsoft.ManagedIdentity/userAssignedIdentities/write nad skupinou prostředků, ve které chcete vytvořit identitu |
Přispěvatel spravované identity |
| Přiřaďte aplikaci identitu přiřazenou uživatelem |
Microsoft.Web/sites/write nad aplikací, Microsoft.Web/sites/slots/write nad slotem, nebo Microsoft.ManagedIdentity/userAssignedIdentities/*/assign/action přes identitu |
Přispěvatel webu a operátor spravované identity |
| Vytvoření rolí Azure |
Microsoft.Authorization/roleAssignments/write přes rozsah určeného prostředku |
Správce řízení přístupu na základě role nebo správce uživatelských přístupů |
Přidejte systémem přiřazenou identitu
Pokud chcete povolit spravovanou identitu přiřazenou systémem, postupujte podle následujících pokynů.
Na webu Azure Portal přejděte na stránku vaší aplikace.
V nabídce vlevo vyberte Nastavení>Identity.
Na kartě Systém přiřazený přepněte Stav na Zapnuto. Pak vyberte Uložit.
Přidejte uživatelsky přiřazenou identitu
Pokud chcete vytvořit aplikaci s identitou přiřazenou uživatelem, vytvořte identitu a pak do konfigurace aplikace přidejte její identifikátor prostředku.
Podle těchto pokynů vytvořte prostředek identity spravované uživatelem.
V nabídce vlevo na stránce vaší aplikace vyberte Nastavení>identity.
Vyberte Přiřazený uživatel a pak vyberte Přidat.
Vyhledejte identitu, kterou jste vytvořili dříve, vyberte ji a pak vyberte Přidat.
Po dokončení těchto kroků se aplikace restartuje.
Konfigurace cílového prostředku
Potřebujete nakonfigurovat cílový prostředek tak, aby umožňoval přístup z vaší aplikace. U většiny služeb Azure nakonfigurujete cílový prostředek vytvořením přiřazení role.
Některé služby používají jiné mechanismy než řízení přístupu na základě role v Azure. Informace o tom, jak nakonfigurovat přístup pomocí identity, najdete v dokumentaci pro každý cílový prostředek. 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.
Pokud například požadujete token pro přístup k tajnému kódu ve službě Azure Key Vault, musíte také vytvořit přiřazení role, které spravované identitě umožní pracovat s tajnými kódy v cílovém trezoru. Jinak Key Vault vaše volání odmítne, i když použijete platný token. Totéž platí pro Azure SQL Database a další služby.
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 a můžou trvat až tuto dobu, než se změny ve skupině nebo členství role spravované identity projeví. V současné době není možné vynutit aktualizaci tokenu spravované identity před vypršením jeho platnosti. Pokud změníte členství ve skupině nebo roli spravované identity a přidáte nebo odeberete oprávnění, možná budete muset počkat až 24 hodin, než prostředek Azure používá identitu, aby měl správný přístup.
Alternativy ke skupinám nebo členstvím rolí najdete v tématu Omezení používání spravovaných identit pro autorizaci.
Připojení ke službám Azure v kódu aplikace
Díky spravované identitě může aplikace získat tokeny pro prostředky Azure, které pomáhá Microsoft Entra ID chránit, 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.
App Service a Azure Functions poskytují interně přístupný koncový bod REST pro načtení tokenu . Ke koncovému bodu REST můžete přistupovat z aplikace pomocí standardního požadavku HTTP GET . Požadavek můžete implementovat pomocí obecného klienta HTTP v každém jazyce.
Klientská knihovna Azure Identity poskytuje pro .NET, JavaScript, Java a Python abstrakci tohoto koncového bodu REST a zjednodušuje vývojové prostředí. Připojení k jiným službám Azure je stejně jednoduché jako přidání objektu přihlašovacích údajů do klienta specifického pro službu.
Nezpracovaný požadavek HTTP GET používá dvě zadané proměnné prostředí a vypadá jako v následujícím příkladu:
GET /MSI/token?resource=https://vault.azure.net&api-version=2019-08-01 HTTP/1.1
Host: <ip-address-:-port-in-IDENTITY_ENDPOINT>
X-IDENTITY-HEADER: <value-of-IDENTITY_HEADER>
Ukázková odpověď může vypadat jako v následujícím příkladu:
HTTP/1.1 200 OK
Content-Type: application/json
{
"access_token": "eyJ0eXAi…",
"expires_on": "1586984735",
"resource": "https://vault.azure.net",
"token_type": "Bearer",
"client_id": "00001111-aaaa-2222-bbbb-3333cccc4444"
}
Tato odpověď je stejná jako odpověď na požadavek přístupového tokenu Microsoft Entra service-to-service. Pokud chcete získat přístup ke službě Key Vault, přidejte hodnotu access_token ke klientskému připojení k trezoru.
Další informace o koncovém bodu REST najdete v referenčních informacích k koncovému bodu REST dále v tomto článku.
Odstraňte identitu
Když odeberete identitu přiřazenou systémem, odstraní se z ID Microsoft Entra. Identita přiřazená systémem se také automaticky odebere ze služby Microsoft Entra ID při odstranění samotného prostředku aplikace.
V nabídce vlevo na stránce vaší aplikace vyberte Nastavení>identity.
Postupujte podle kroků založených na typu identity:
- Pro identitu přiřazenou systémem: Na kartě Přiřazený systém přepněte Stav na Vypnuto. Pak vyberte Uložit.
- Pro identitu přiřazenou uživatelem: Vyberte kartu Uživatelem přiřazená, zaškrtněte políčko pro identitu a poté vyberte Odebrat. Potvrďte výběrem možnosti Ano.
Poznámka:
Můžete také nastavit nastavení aplikace, které zakáže pouze službu místního tokenu: WEBSITE_DISABLE_MSI. Identita ale zůstává zachována. Nástroje stále zobrazují spravovanou identitu jako zapnutou nebo povolenou. V důsledku toho nedoporučujeme toto nastavení používat.
Referenční informace ke koncovému bodu REST
Aplikace se spravovanou identitou zpřístupňuje tento koncový bod definováním dvou proměnných prostředí:
-
IDENTITY_ENDPOINT: Adresa URL služby místního tokenu. -
IDENTITY_HEADER: Hlavička, která mohla by pomoci zmírnit útoky na padělání požadavků na straně serveru (SSRF). Platforma otáčí hodnotu.
Proměnná IDENTITY_ENDPOINT je místní adresa URL, ze které může aplikace požadovat tokeny. Pokud chcete získat token pro prostředek, odešlete na tento koncový bod požadavek HTTP GET. Zahrňte následující parametry:
Název parametru V Popis resourceDotaz Identifikátor URI prostředku Microsoft Entra, pro který má být token získán. Tento prostředek může zahrnovat jednu ze služeb Azure, které podporují ověřování Microsoft Entra nebo některý jiný identifikátor URI. api-versionDotaz Verze rozhraní API tokenu, která se má použít. Použijte 2019-08-01.X-IDENTITY-HEADERHlavička Hodnota proměnné prostředí IDENTITY_HEADER. Tato hlavička slouží ke zmírnění útoků SSRF.client_idDotaz (Volitelné) ID klienta uživatelsky přiřazené identity, které se má použít. Nejde ho použít u požadavku, který obsahuje principal_id,mi_res_idneboobject_id. Pokud jsou vynechány všechny parametry ID (client_id,principal_id,object_idami_res_id) , použije se identita přiřazená systémem.principal_idDotaz (Volitelné) Hlavní ID identity přiřazené uživatelem, které se má použít. Parametr object_idje alias, který lze použít místo toho. Nejde ho použít u požadavku, který obsahujeclient_id,mi_res_idneboobject_id. Pokud jsou vynechány všechny parametry ID (client_id,principal_id,object_idami_res_id) , použije se identita přiřazená systémem.mi_res_idDotaz (Volitelné) ID prostředku Azure uživatelsky přiřazené identity, které se má použít. Nejde ho použít u požadavku, který obsahuje principal_id,client_idneboobject_id. Pokud jsou vynechány všechny parametry ID (client_id,principal_id,object_idami_res_id) , použije se identita přiřazená systémem.
Důležité
Pokud se pokoušíte získat tokeny pro identity přiřazené uživatelem, uveďte jednu z volitelných vlastností. Jinak se služba tokenů pokusí získat token pro identitu přiřazenou systémem, která může nebo nemusí existovat.
Související obsah
Podívejte se na následující kurzy:
- Připojení ke službě SQL Database ze služby .NET App Service bez tajných kódů pomocí spravované identity
- Přístup ke službám Azure z webové aplikace .NET
- Přístup k Microsoft Graphu ze zabezpečené aplikace .NET jako aplikace
- Zabezpečení připojení služeb Cognitive Service ze služby .NET App Service pomocí služby Key Vault