Megosztás a következőn keresztül:


Alkalmazásszerepkör hozzárendelése felügyelt identitáshoz az Azure CLI használatával

Az Azure-erőforrások felügyelt identitásai identitást biztosítanak az Azure-szolgáltatások számára a Microsoft Entra ID-ban. Anélkül működnek, hogy hitelesítő adatokra van szükségük a kódban. Az Azure-szolgáltatások ezt az identitást használják a Microsoft Entra-hitelesítést támogató szolgáltatások hitelesítésére. Az alkalmazásszerepkörök a szerepköralapú hozzáférés-vezérlés egy formáját biztosítják, és lehetővé teszik, hogy egy szolgáltatás engedélyezési szabályokat implementáljon.

Megjegyzés:

Az alkalmazás által kapott tokeneket a mögöttes infrastruktúra gyorsítótárazza. Ez azt jelenti, hogy a felügyelt identitás szerepköreinek bármilyen módosítása jelentős időt vehet igénybe a feldolgozáshoz. További információ: A felügyelt identitások hitelesítéshez való használatának korlátozása.

Ebből a cikkből megtudhatja, hogyan rendelhet hozzá felügyelt identitást egy másik alkalmazás által közzétett alkalmazásszerepkörhöz a Microsoft Graph PowerShell SDK vagy az Azure CLI használatával.

Előfeltételek

Felügyelt identitáshoz való hozzáférés hozzárendelése egy másik alkalmazás alkalmazásszerepköréhez a parancssori felület használatával

  1. Felügyelt identitás engedélyezése Azure-erőforrásokon, például Azure-beli virtuális gépeken.

  2. Keresse meg a kezelt identitás szolgáltatási főszereplőjének objektumazonosítóját.

    • A rendszer által hozzárendelt felügyelt identitások esetében az objektumazonosító az Azure Portalon található az erőforrás Identitás lapján. Az objektumazonosítót az alábbi szkripttel is megkeresheti. Szüksége lesz az előző lépésben létrehozott erőforrás erőforrás-azonosítójára, amely az Azure Portalon érhető el az erőforrás Tulajdonságok lapján.

      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"
      
    • Felhasználó által hozzárendelt felügyelt identitás esetén a felügyelt identitás objektumazonosítóját az Azure Portalon találja az erőforrás Áttekintés lapján. Az objektumazonosítót az alábbi szkripttel is megkeresheti. Szüksége lesz a felhasználó által hozzárendelt felügyelt identitás erőforrás-azonosítójára.

      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. Hozzon létre egy új alkalmazásregisztrációt annak a szolgáltatásnak a megjelenítéséhez, amelyhez a felügyelt identitás kérést küld.

    • Ha az alkalmazásszerepkör-támogatást a felügyelt identitásnak elérhetővé tevő API vagy szolgáltatás már rendelkezik szolgáltatásnévvel a Microsoft Entra-bérlőben, hagyja ki ezt a lépést.
  4. Keresse meg a szolgáltatásalkalmazás szolgáltatásfőképviselőjének objektumazonosítóját. Ezt a Microsoft Entra felügyeleti központban találja.

    1. Jelentkezzen be a Microsoft Entra felügyeleti központjába.

    2. A bal oldali navigációs panelen válassza az Entra ID>Enterprise-alkalmazásokat. Ezután keresse meg az alkalmazást, és keresse meg az objektumazonosítót.

    3. A szolgáltatás főpéldány objektumazonosítóját a megjelenítési név alapján is megtalálhatja a következő szkripttel:

      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"
      

      Megjegyzés:

      Az alkalmazások megjelenítendő nevei nem egyediek, ezért ellenőriznie kell, hogy a megfelelő alkalmazás szolgáltatásnevet szerezte-e be.

    4. Az objektumazonosítót az alkalmazásregisztráció egyedi alkalmazásazonosítójával is megtalálhatja:

      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. Adjon hozzá egy alkalmazásszerepkört az előző lépésben létrehozott alkalmazáshoz. A szerepkört az Azure Portalon vagy a Microsoft Graph használatával hozhatja létre. Hozzáadhat például egy ilyen alkalmazásszerepkört:

    {
        "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. Rendelje hozzá az alkalmazásszerepkört a felügyelt identitáshoz. Az alkalmazásszerepkör hozzárendeléséhez a következő információkra lesz szüksége:

    • managedIdentityObjectId: a felügyelt identitás szolgáltatási főfelhasználójának objektumazonosítója, amelyet a 2. lépésben talált.
    • serverServicePrincipalObjectId: a kiszolgálóalkalmazás szolgáltatásnévének objektumazonosítója, amelyet a 4. lépésben talált.
    • appRoleId: a kiszolgálóalkalmazás által közzétett alkalmazásszerepkör azonosítója, amelyet az 5. lépésben hozott létre – a példában az alkalmazásszerepkör azonosítója.00000000-0000-0000-0000-000000000000
  7. A szerepkör-hozzárendelés hozzáadásához hajtsa végre a következő szkriptet. Ez a funkció nem érhető el közvetlenül az Azure CLI-n, és itt egy REST-parancsot használ:

    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\"}"
    

Következő lépések