Sdílet prostřednictvím


Přiřazení role aplikace ke spravované identitě pomocí Azure CLI

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

Přiřazení spravované identity přístupu k aplikační roli jiné aplikace pomocí rozhraní příkazového řádku (CLI)

  1. Povolte spravovanou identitu u prostředku Azure jako je například virtuální počítač Azure.

  2. 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"
      
  3. 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.
  4. Vyhledejte ID objektu služebního zástupce aplikační služby. Pomocí administračního centra Microsoft Entrato můžete najít.

    1. Přihlaste se do Centra pro správu Microsoft Entra.

    2. V levém navigačním okně vybertepodnikové aplikace>. Pak vyhledejte aplikaci a vyhledejte ID objektu.

    3. 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.

    4. 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"
      
  5. 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"
    }
    
  6. 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 je 00000000-0000-0000-0000-000000000000ID role aplikace .
  7. 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\"}"
    

Další kroky