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é identity pro prostředky Azure poskytují službám Azure identitu v Microsoft Entra ID. Fungují bez nutnosti přihlašovacích údajů v kódu. Služby Azure tuto identitu používají k ověřování ve službách, které podporují ověřování Microsoft Entra. Role aplikací poskytují formu řízení přístupu na základě role a umožňují službě implementovat autorizační pravidla.
Poznámka:
Tokeny, které vaše aplikace obdrží, se ukládají do mezipaměti základní infrastrukturou. To znamená, že zpracování jakýchkoli změn rolí spravované identity může trvat dlouho. Další informace najdete v tématu Omezení používání spravovaných identit pro autorizaci.
V tomto článku se dozvíte, jak přiřadit spravovanou identitu k roli aplikace vystavené jinou aplikací pomocí sady Microsoft Graph PowerShell SDK nebo Azure CLI.
Požadavky
- Pokud neznáte spravované identity pro prostředky Azure, přečtěte si přehled spravované identity pro prostředky Azure.
- Zkontrolujte rozdíl mezi spravovanou identitou přiřazenou systémem a přiřazenou uživatelem.
- Pokud ještě nemáte účet Azure, zaregistrujte si bezplatný účet před tím, než budete pokračovat.
Přiřazení spravované identity přístupu k aplikační roli jiné aplikace pomocí rozhraní příkazového řádku (CLI)
Použijte prostředí Bash v Azure Cloud Shellu. Další informace najdete v tématu Začínáme s Azure Cloud Shellem.
Pokud chcete spouštět referenční příkazy CLI lokálně, nainstalujte Azure CLI. Pokud používáte Windows nebo macOS, zvažte spuštění Azure CLI v kontejneru Docker. Pro více informací, viz Jak spustit Azure CLI v Docker kontejneru.
Pokud používáte místní instalaci, přihlaste se k Azure CLI pomocí příkazu az login. Chcete-li dokončit proces ověřování, postupujte podle kroků zobrazených ve vašem terminálu. Další možnosti přihlášení najdete v tématu Ověřování v Azure pomocí Azure CLI.
Když budete vyzváni, nainstalujte rozšíření Azure CLI při prvním použití. Další informace o rozšířeních najdete v tématu Použití a správa rozšíření pomocí Azure CLI.
Spusťte az version, abyste zjistili verzi a závislé knihovny, které jsou nainstalovány. Pokud chcete upgradovat na nejnovější verzi, spusťte az upgrade.
Povolte spravovanou identitu u prostředku Azure jako je například virtuální počítač Azure.
Vyhledejte ID objektu služebního principálu spravované identity.
U spravované identity přiřazené systémem najdete ID objektu na webu Azure Portal na stránce Identita prostředku. Id objektu můžete najít také pomocí následujícího skriptu. Budete potřebovat ID prostředku, který jste vytvořili v předchozím kroku, které je k dispozici v Azure portálu na stránce Vlastnosti prostředku.
resourceIdWithManagedIdentity="/subscriptions/{my subscription ID}/resourceGroups/{my resource group name}/providers/Microsoft.Compute/virtualMachines/{my virtual machine name}" oidForMI=$(az resource show --ids $resourceIdWithManagedIdentity --query "identity.principalId" -o tsv | tr -d '[:space:]') echo "object id for managed identity is: $oidForMI"U spravované identity přiřazené uživatelem najdete ID objektu spravované identity na webu Azure Portal na stránce Přehled prostředku. Id objektu můžete najít také pomocí následujícího skriptu. Budete potřebovat ID prostředku spravované identity přiřazené uživatelem.
userManagedIdentityResourceId="/subscriptions/{my subscription ID}/resourceGroups/{my resource group name}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{my managed identity name}" oidForMI=$(az resource show --id $userManagedIdentityResourceId --query "properties.principalId" -o tsv | tr -d '[:space:]') echo "object id for managed identity is: $oidForMI"
Vytvořte novou registraci aplikace, která bude reprezentovat službu, na kterou vaše spravovaná identita odešle žádost.
- Pokud rozhraní API nebo služba, která zpřístupňuje udělení role aplikace spravované identitě, již má ve vašem tenantovi Microsoft Entra hlavní službu, přeskočte tento krok.
Vyhledejte ID objektu služebního zástupce aplikační služby. Pomocí administračního centra Microsoft Entrato můžete najít.
Přihlaste se do Centra pro správu Microsoft Entra.
V levém navigačním okně vybertepodnikové aplikace>. Pak vyhledejte aplikaci a vyhledejte ID objektu.
ID objektu zabezpečení můžete také najít podle jeho zobrazovaného názvu pomocí následujícího skriptu.
appName="{name for your application}" serverSPOID=$(az ad sp list --filter "displayName eq '$appName'" --query '[0].id' -o tsv | tr -d '[:space:]') echo "object id for server service principal is: $serverSPOID"Poznámka:
Zobrazované názvy aplikací nejsou jedinečné, proto byste měli ověřit, že získáte správný instanční objekt aplikace.
Nebo můžete ID objektu najít podle jedinečného ID aplikace pro vaši registraci aplikace:
appID="{application id for your application}" serverSPOID=$(az ad sp list --filter "appId eq '$appID'" --query '[0].id' -o tsv | tr -d '[:space:]') echo "object id for server service principal is: $serverSPOID"
Přidejte roli aplikace do aplikace, kterou jste vytvořili v předchozím kroku. Roli můžete vytvořit pomocí webu Azure Portal nebo pomocí Microsoft Graphu. Můžete například přidat roli aplikace takto:
{ "allowedMemberTypes": [ "Application" ], "displayName": "Read data from MyApi", "id": "00001111-aaaa-2222-bbbb-3333cccc4444", "isEnabled": true, "description": "Allow the application to read data as itself.", "value": "MyApi.Read.All" }Přiřaďte roli aplikace spravované identitě. K přiřazení role aplikace budete potřebovat následující informace:
-
managedIdentityObjectId: ID objektu zástupce služby spravované identity, který jste našli v kroku 2. -
serverServicePrincipalObjectId: ID objektu služebního principálu serverové aplikace, které jste našli v kroku 4. -
appRoleId: ID role aplikace vystavené serverovou aplikací, kterou jste vygenerovali v kroku 5 – v příkladu je00000000-0000-0000-0000-000000000000ID role aplikace .
-
Spuštěním následujícího skriptu přidejte přiřazení role. Tato funkce není přímo zpřístupněná v Azure CLI a že se tady používá příkaz REST:
roleguid="00000000-0000-0000-0000-000000000000" az rest -m POST -u https://graph.microsoft.com/v1.0/servicePrincipals/$oidForMI/appRoleAssignments -b "{\"principalId\": \"$oidForMI\", \"resourceId\": \"$serverSPOID\",\"appRoleId\": \"$roleguid\"}"