Partager via


Comment utiliser des identités managées avec des services Azure pour se connecter à Azure Cosmos DB for NoSQL

S’APPLIQUE À : NoSQL

Diagramme de l’emplacement actuel (« Préparation ») dans la séquence du guide de déploiement.

Diagramme de la séquence du guide de déploiement, y compris ces emplacements, dans l’ordre : Vue d’ensemble, Concepts, Préparation, Contrôle d’accès en fonction du rôle, Réseau et Référence. L’emplacement « Préparation » est mis en surbrillance.

Cet article passe en revue les étapes nécessaires pour créer des identités gérées à utiliser avec une application déployée connectée à Azure Cosmos DB for NoSQL.

Les identités gérées constituent l’un des nombreux types de ressources d’identité dans Microsoft Entra ID pour les applications à utiliser lors de la connexion aux services qui prennent en charge l’authentification Microsoft Entra. Les identités gérées peuvent être utilisées à la place des informations d’identification traditionnelles appartenant à des ressources telles que des clés. Dans Azure, les identités gérées permettent à vos applications d’obtenir un jeton Microsoft Entra pour s’authentifier auprès des services Azure sans avoir à écrire une grande quantité de code d’authentification.

Vous pouvez utiliser Microsoft Entra pour vous authentifier auprès des services Azure, notamment, mais sans s’y limiter :

  • Azure SQL
  • Azure AI
  • Azure Cosmos DB
  • Stockage Azure
  • Hubs d'événements Azure
  • Azure Container Registry

Vous pouvez utiliser des identités gérées pour représenter le principal qui s’authentifie auprès d’un service Azure à partir d’autres services Azure, notamment, mais sans s’y limiter :

  • Azure Kubernetes Service
  • Azure Container Apps
  • Machines virtuelles Azure
  • Azure Functions
  • Azure App Service
  • Azure Spring Apps
  • Azure Service Fabric

Les identités gérées permettent plusieurs scénarios sécurisés où différents services Azure peuvent se connecter les uns aux autres. Voici quelques exemples :

  • Création d’une identité gérée attribuée par le système pour une application dans Azure Spring Apps pour se connecter et interroger un compte Azure SQL
  • Utilisation d’une identité managée affectée par l’utilisateur unique avec Azure Kubernetes Service et Azure Functions pour émettre des demandes adressées à un compte Azure AI
  • Utilisation d’une identité gérée pour un compte Azure Cosmos DB pour stocker des clés dans Azure Key Vault

Pour plus d’informations, consultez Identités managées pour les ressources Azure.

Prérequis

Créer un service Azure avec une identité gérée attribuée par le système

Créez un nouveau service avec une identité gérée attribuée par le système. Cette section crée une ressource Azure Container Instances.

  1. Utilisez az container create pour créer une nouvelle instance de conteneur. Configurez le compte pour utiliser une identité gérée attribuée par le système à l’aide du paramètre assign-identity.

    az container create \
        --resource-group "<name-of-existing-resource-group>" \
        --name "<name-of-new-container>" \
        --image mcr.microsoft.com/dotnet/samples:aspnetapp-chiseled \
        --cpu 1 \
        --memory 2 \
        --assign-identity
    
  2. Obtenez les détails de l’identité gérée attribuée par le système à l’aide az container show et d’une requête JMESPath.

    az container show \
        --resource-group "<name-of-existing-resource-group>" \
        --name "<name-of-existing-container>" \
        --query "identity"
    
  3. Examinez la sortie de la commande. Elle doit inclure les identificateurs uniques de l’identité et du locataire.

    {
      "principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
      "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
      "type": "SystemAssigned",
      "userAssignedIdentities": null
    }
    
  1. Créez un nouveau fichier Bicep pour définir une nouvelle instance de conteneur. Nommez le fichier container-instance.bicep. Définissez les propriétés de l’instance de conteneur suivantes :

    Valeur
    name Utiliser un paramètre nommé instanceName
    location Définir l’emplacement du groupe de ressources
    identity.type SystemAssigned
    properties.osType Linux
    properties.containers[0].name aspnet-sample
    properties.containers[0].properties.image mcr.microsoft.com/dotnet/samples:aspnetapp-chiseled
    properties.containers[0].properties.resources.requests.cpu 1
    properties.containers[0].properties.resources.requests.memoryInGB 2
    metadata description = 'Create Azure Container Instance resource with system-assigned managed identity.'
    
    @description('Name of the Azure Container Instances resource.')
    param instanceName string
    
    resource instance 'Microsoft.ContainerInstance/containerGroups@2023-05-01' = {
      name: instanceName
      location: resourceGroup().location
      identity: {
        type: 'SystemAssigned'
      }
      properties: {
        osType: 'Linux'
        containers: [
          {
            name: 'aspnet-sample'
            properties: {
              image: 'mcr.microsoft.com/dotnet/samples:aspnetapp-chiseled'
              resources: {
                requests: {
                  cpu: 1
                  memoryInGB: 2
                }
              }
            }
          }
        ]
      }
    }
    
    output systemAssignedIdentity object = instance.identity    
    
  2. Créez un nouveau fichier de paramètres Bicep nommé container-instance.bicepparam. Dans ce fichier de paramètres, créez un nom unique pour votre instance de conteneur à l’aide du paramètre instanceName.

    using './container-instance.bicep'
    
    param instanceName = '<name-of-new-container-instance>'
    
  3. Déployez le modèle Bicep à l’aide de az deployment group create. Spécifiez le nom du modèle Bicep, du fichier de paramètres et du groupe de ressources Azure.

    az deployment group create \
        --resource-group "<name-of-existing-resource-group>" \
        --parameters "container-instance.bicepparam" \
        --template-file "container-instance.bicep"
    
  4. Examinez la sortie du déploiement. La sortie contient l’objet d’identité de l’instance de conteneur dans la propriété properties.outputs.systemAssignedIdentity.value.

    {
      "principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
      "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
      "type": "SystemAssigned"
    }
    
  1. Connectez-vous au portail Azure (https://portal.azure.com).

  2. Entrez Azure Container Instances dans la barre de recherche globale.

    Capture d’écran de la barre de recherche globale dans le portail Azure.

  3. Dans Services, sélectionnez Instances de conteneur.

    Capture d’écran de l’option « Instances de conteneur » sélectionnée dans le menu de recherche.

  4. Dans le volet Instances de conteneur, sélectionnez Créer.

    Capture d’écran de l’option « Créer » dans le volet d’Azure Container Instances.

  5. Dans le volet Informations de base, configurez les options suivantes, puis sélectionnez Avis+ créer :

    Valeur
    Abonnement Sélectionnez votre abonnement Azure.
    Groupe de ressources Créer un groupe de ressources ou en sélectionner un
    Nom du conteneur Fournir un nom globalement unique
    Région Sélectionnez une région Azure prise en charge pour votre abonnement

    Capture d’écran du volet « Informations de base » de la création de ressources Azure Container Instances.

    Conseil

    Vous pouvez laisser les options non spécifiées à leur valeur par défaut.

  6. Dans le volet Avis+ créer, attendez que la validation de votre compte se termine avec succès, puis sélectionnez Créer.

    Capture d’écran de l’étape de validation des ressources dans l’expérience de création d’une instance de conteneur.

  7. Le portail accède automatiquement au volet Déploiement. Attendez la fin du déploiement.

  8. Une fois le déploiement terminé, sélectionnezAccéder à la ressource pour accéder à la nouvelle ressource Azure Container Instances.

    Capture d’écran d’une ressource Azure Container Instances entièrement déployée avec l’option « Accéder à la ressource » en surbrillance.

  9. Dans le volet de la nouvelle instance de conteneur, sélectionnez Identité dans la section Paramètres du menu de service.

    Capture d’écran de l’option « Identité » dans le menu de service de l’instance de conteneur.

  10. Dans le volet Identité, activez l’identité gérée attribuée par le système en définissant l’option État sur Activé. Ensuite, sélectionnez Enregistrer et résolvez les invites pour valider la modification.

    Capture d’écran de la définition de l’« état » sur « Activé » pour l’identité gérée attribuée par le système.

  11. Une fois que l’identité gérée attribuée par le système est prête, passez en revue la valeur de la propriété ID de l’objet (principal). La valeur de la propriété est un identificateur unique pour l’identité.

    Capture d’écran des détails d’une identité gérée attribuée par le système activée.

    Conseil

    Dans cet exemple de capture d’écran, l’identificateur unique de l’identité gérée attribuée par le système est bbbbbbbb-1111-2222-3333-cccccccccccc.

  1. Créez un objet représentant un conteneur à l’aide de New-AzContainerInstanceObject et stockez-le dans une variable nommée $container. Ensuite, utilisez cet objet conteneur pour créer une instance de conteneur avec New-AzContainerGroup. Configurez le compte pour utiliser une identité gérée attribuée par le système en définissant le paramètre IdentityTypesur SystemAssigned.

    $parameters = @{
        Name = "aspnet-sample"
        Image = "mcr.microsoft.com/dotnet/samples:aspnetapp-chiseled"
        RequestCpu = 1 
        RequestMemoryInGb = 2
    }
    $container = New-AzContainerInstanceObject @parameters
    
    $parameters = @{
        ResourceGroupName = "<name-of-existing-resource-group>"
        Name = "<name-of-new-container>"
        Container = $container
        OsType = "Linux"
        Location = "<azure-region>"
        IdentityType = "SystemAssigned"
    }
    New-AzContainerGroup @parameters
    
  2. Obtenez les détails de l’identité gérée attribuée par le système à l’aide de Get-AzContainerGroup et de Format-List en sélectionnant uniquement la propriété Identity.

    $parameters = @{
        ResourceGroupName = "<name-of-existing-resource-group>"
        Name = "<name-of-existing-container>"
    }
    Get-AzContainerGroup @parameters | Format-List Identity
    
  3. Examinez la sortie de la commande. Elle doit inclure les identificateurs uniques de l’identité et du locataire.

    Identity : {
                 "principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
                 "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
                 "type": "SystemAssigned"
               }
    

Créer une identité managée attribuée par l’utilisateur

Créez une identité managée affectée par l’utilisateur qui peut être utilisée avec un ou plusieurs services Azure de manière portable.

  1. Utilisez az identity create pour créer une nouvelle identité managée affectée par l’utilisateur dans votre groupe de ressources Azure.

    az identity create \
        --resource-group "<name-of-existing-resource-group>" \
        --name "<name-of-new-managed-identity>"
    
  2. Obtenir la liste des identités gérée attribuée par l’utilisateur dans votre groupe de ressources à l’aide de az identity list

    az identity list \
        --resource-group "<name-of-existing-resource-group>"    
    
  3. Examinez la sortie de la commande. Enregistrez la valeur du champ id, car cet identificateur de ressource complet est utilisé pour attribuer l’identité managée affectée par l’utilisateur à votre ressource Azure.

    {
      "clientId": "11112222-bbbb-3333-cccc-4444dddd5555",
      "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/msdocs-identity-example/providers/Microsoft.ManagedIdentity/userAssignedIdentities/msdocs-identity-example-user-assigned",
      "location": "<azure-location>",
      "name": "msdocs-identity-example-user-assigned",
      "principalId": "cccccccc-dddd-eeee-3333-444444444444",
      "resourceGroup": "msdocs-identity-example",
      "systemData": null,
      "tags": {},
      "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
      "type": "Microsoft.ManagedIdentity/userAssignedIdentities"
    }
    

    Remarque

    Pour cet exemple, la valeur id serait /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/msdocs-identity-example/providers/Microsoft.ManagedIdentity/userAssignedIdentities/msdocs-identity-example-user-assigned. Cet exemple utilise des données fictives et votre identificateur sera distinct de cet exemple.

  1. Créez un fichier Bicep pour définir une iidentité managée affectée par l’utilisateur et nommez le fichier user-assigned-managed-identity.bicep. Définissez les propriétés minimales suivantes :

    Valeur
    name Utiliser un paramètre facultatif nommé identityName et générer une valeur par défaut unique
    location Définir l’emplacement du groupe de ressources
    metadata description = 'Create a user-assigned managed identity.'
    
    param identityName string = uniqueString(subscription().id, resourceGroup().id)
    
    resource identity 'Microsoft.ManagedIdentity/userAssignedIdentities@2023-01-31' = {
      name: identityName
      location: resourceGroup().location
    }
    
    output id string = identity.id
    output name string = identity.name
    
  2. Déployez le modèle Bicep à l’aide de az deployment group create. Spécifiez le nom du modèle Bicep et du groupe de ressources Azure.

    az deployment group create \
        --resource-group "<name-of-existing-resource-group>" \
        --template-file "user-assigned-managed-identity.bicep"
    
  3. Examinez la sortie du déploiement. La sortie contient l’identificateur unique de l’identité gérée dans la propriété properties.outputs.name.value. Enregistrez cette valeur, car elle devra être utilisée lors de la création d’une ressource Azure plus loin dans ce guide.

    {
      "type": "String",
      "value": "msdocs-identity-example-user-assigned"
    }
    

    Remarque

    Dans cet exemple, la valeur name.value serait msdocs-identity-example-user-assigned. Cet exemple utilise des données fictives et votre identificateur sera distinct de cet exemple.

  1. Entrez Identité gérée dans la barre de recherche globale.

  2. Dans Services, sélectionnez Identités gérées.

    Capture d’écran de l’option « Identités gérées » sélectionnée dans le menu de recherche.

  3. Dans le volet Instances de conteneur, sélectionnez Créer.

    Capture d’écran de l’option « Créer » dans le volet des identités gérées.

  4. Dans le volet Informations de base, configurez les options suivantes, puis sélectionnez Avis+ créer :

    Valeur
    Abonnement Sélectionnez votre abonnement Azure.
    Groupe de ressources Créer un groupe de ressources ou en sélectionner un
    Région Sélectionnez une région Azure prise en charge pour votre abonnement
    Nom Fournir un nom globalement unique

    Capture d’écran du volet « Informations de base » de la création de ressources d’identités gérées.

  5. Dans le volet Avis+ créer, attendez que la validation de votre compte se termine avec succès, puis sélectionnez Créer.

    Capture d’écran de l’étape de validation des ressources dans l’expérience de création d’une identité gérée.

  6. Le portail accède automatiquement au volet Déploiement. Attendez la fin du déploiement.

  7. Attendez la fin du déploiement de l’identité gérée.

    Capture d’écran d’une ressource d’identité gérée entièrement déployée.

  1. Créez une nouvelle identité managée affectée par l’utilisateur à l’aide de New-AzUserAssignedIdentity dans votre groupe de ressources Azure.

    $parameters = @{
        ResourceGroupName = "<name-of-existing-resource-group>"
        Name = "<name-of-new-managed-identity>"
        Location = "<azure-region>"
    }
    New-AzUserAssignedIdentity @parameters
    
  2. Utilisez Get-AzUserAssignedIdentity pour obtenir la liste des identités gérées attribuées par l’utilisateur dans votre groupe de ressources.

    $parameters = @{
        ResourceGroupName = "<name-of-existing-resource-group>"
    }
    Get-AzUserAssignedIdentity @parameters | Format-List Name, Id
    
  3. Examinez la sortie de la commande. Enregistrez la valeur du champ Id, car cet identificateur de ressource complet est utilisé pour attribuer l’identité managée affectée par l’utilisateur à votre ressource Azure.

    Name : msdocs-identity-example-user-assigned
    Id   : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/msdocs-identity-example/providers/Microsoft.ManagedIdentity/userAssignedIdentities/msdocs-identity-example-user-assigned
    

    Remarque

    Pour cet exemple, la valeur Id serait /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/msdocs-identity-example/providers/Microsoft.ManagedIdentity/userAssignedIdentities/msdocs-identity-example-user-assigned. Cet exemple utilise des données fictives et votre identificateur sera distinct de cet exemple.

Créer un service Azure avec une identité managée affectée par l’utilisateur

Attribuez l’identité managée affectée par l’utilisateur précédemment créée à un nouveau service hôte Azure. Cette section crée une ressource d’application web Azure App Services.

  1. Créez un nouveau plan App Service à l’aide de az appservice plan create.

    az appservice plan create \
        --resource-group "<name-of-existing-resource-group>" \
        --name "<name-of-new-plan>"
    
  2. Attribuez l’identité managée affectée par l’utilisateur à une nouvelle application web avec az webapp create. Utilisez le champ id enregistré précédemment dans ce guide comme valeur du paramètre ssign-identity.

    az webapp create \
        --resource-group "<name-of-existing-resource-group>" \
        --name "<name-of-existing-web-app>" \
        --plan "<name-of-existing-plan>" \
        --assign-identity "<resource-id-recorded-earlier>"
    
  3. Obtenez les détails de toutes les identités attribuées à ce compte à l’aide de az webapp show et d’une requête JMESPath.

    az webapp show \
        --resource-group "<name-of-existing-resource-group>" \
        --name "<name-of-existing-account>" \
        --query "identity"   
    
  4. Examinez la sortie de la commande. Elle doit inclure l’identité managée affectée par l’utilisateur.

    {
      "principalId": null,
      "tenantId": null,
      "type": "UserAssigned",
      "userAssignedIdentities": {
        "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/msdocs-identity-example/providers/Microsoft.ManagedIdentity/userAssignedIdentities/msdocs-identity-example-user-assigned": {
          "clientId": "11112222-bbbb-3333-cccc-4444dddd5555",
          "principalId": "cccccccc-dddd-eeee-3333-444444444444"
        }
      }
    }
    
  1. Créez un autre fichier Bicep nommé app-service-web-app.bicep et définissez un plan Azure App Service et une application web. Définissez les propriétés des ressources suivantes :

    Ressource Valeur
    name Identité gérée existante Utiliser un paramètre nommé identityName
    name App service plan (Plan App Service) Utiliser un paramètre nommé planName
    location App service plan (Plan App Service) Définir l’emplacement du groupe de ressources
    name Application web Utiliser un paramètre nommé webAppName
    location Application web Définir l’emplacement du groupe de ressources
    identity.type UserAssigned
    identity.userAssignedIdentities.{identity.id} {}
    properties.serverFarmId plan.id
    metadata description = 'Creates an Azure App Service plan and web app with a user-assigned managed identity.'
    
    @description('The name of the app service plan.')
    param planName string
    
    @description('The name of the web app.')
    param webAppName string
    
    @description('The name of the user-assigned managed identity.')
    param identityName string
    
    resource identity 'Microsoft.ManagedIdentity/userAssignedIdentities@2023-01-31' existing = {
      name: identityName
    }
    
    resource plan 'Microsoft.Web/serverfarms@2023-12-01' = {
      name: planName
      location: resourceGroup().location
    }
    
    resource webApp 'Microsoft.Web/sites@2023-12-01' = {
      name: webAppName
      location: resourceGroup().location
      identity: {
        type: 'UserAssigned'
        userAssignedIdentities: {
          '${identity.id}': {}
        }
      }
      properties: {
        serverFarmId: plan.id
      }
    }
    
    output userAssignedIdentity object = webApp.identity
    
  2. Créez un fichier de paramètres Bicep nommé app-service-web-app.bicepparam. Dans ce fichier de paramètres, créez un nom unique pour votre application web et pour votre plan à l’aide des paramètres planName et webAppName, respectivement. Ensuite, indiquez le nom de l’identité managée affectée par l’utilisateur comme valeur du paramètre identityName.

    using './app-service-web-app.bicep'
    
    param planName = '<name-of-new-app-service-plan>'
    param webAppName = '<name-of-new-web-app>'
    param identityName = '<name-of-existing-managed-identity>'
    
  3. Déployez le modèle Bicep à l’aide de az deployment group create. Spécifiez le nom du modèle Bicep, du fichier de paramètres et du groupe de ressources Azure.

    az deployment group create \
        --resource-group "<name-of-existing-resource-group>" \
        --parameters "app-service-web-app.bicepparam" \
        --template-file "app-service-web-app.bicep"
    
  4. Examinez la sortie du déploiement. La sortie contient l’objet d’identité de l’instance de conteneur dans la propriété properties.outputs.userAssignedIdentity.value.

    {
      "type": "UserAssigned",
      "userAssignedIdentities": {
        "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/msdocs-identity-example/providers/Microsoft.ManagedIdentity/userAssignedIdentities/msdocs-identity-example-user-assigned": {
          "clientId": "11112222-bbbb-3333-cccc-4444dddd5555",
          "principalId": "cccccccc-dddd-eeee-3333-444444444444"
        }
      }
    }
    
  1. Entrez Application web dans la barre de recherche globale.

  2. Dans Services, sélectionnez App Services.

    Capture d’écran de l’option « App Services » sélectionnée dans le menu de recherche.

  3. Dans le volet App Services, sélectionnez Créer, puis Application web.

    Capture d’écran des options « Créer » et « Application web » dans le volet d’Azure App Service.

  4. Dans le volet Informations de base, configurez les options suivantes, puis sélectionnez Avis+ créer :

    Valeur
    Abonnement Sélectionnez votre abonnement Azure.
    Groupe de ressources Créer un groupe de ressources ou en sélectionner un
    Nom Fournir un nom globalement unique
    Planifier Créer un nouveau plan ou sélectionner un plan existant

    Capture d’écran du volet « Informations de base » de la création de ressources d’une application web.

  5. Dans le volet Avis+ créer, attendez que la validation de votre compte se termine avec succès, puis sélectionnez Créer.

    Capture d’écran de l’étape de validation des ressources dans l’expérience de création d’une ressource d’application web.

  6. Le portail accède automatiquement au volet Déploiement. Attendez la fin du déploiement.

  7. Une fois le déploiement terminé, sélectionnezAccéder à la ressource pour accéder à la nouvelle ressource Azure Container Instances.

    Capture d’écran d’une ressource d’application web Azure App Service entièrement déployée avec l’option « Accéder à la ressource » en surbrillance.

  8. Dans le volet de la nouvelle instance de conteneur, sélectionnez Identité dans la section Paramètres du menu de service.

    Capture d’écran de l’option « Identité » dans le menu de service de l’application web.

  9. Dans le volet Identité, sélectionnez l’option Attribuée par l’utilisateur.

    Capture d’écran de l’option « Attribuée par l’utilisateur » dans le volet « Identité » de l’application web.

  10. Sélectionnez Ajouter pour ouvrir une boîte de dialogue pour affecter des identités gérées attribuées par l’utilisateur existantes. Dans la boîte de dialogue, sélectionnez votre identité managée affectée par l’utilisateur existante, puis sélectionnez Ajouter.

    Capture d’écran de l’option « Ajouter » et de la boîte de dialogue « Ajouter une identité gérée attribuée par l’utilisateur » dans le volet « Identité » de l’application web.

  11. Enfin, passez en revue la liste des identités gérées attribuées par l’utilisateur associées à votre application web. Elle doit inclure le nom des identités, le nom du groupe de ressources et l’identificateur d’abonnement.

    Capture d’écran de la liste des identités gérées attribuées par l’utilisateur associées à l’application web actuelle.

  1. Utilisez New-AzWebApp pour créer une nouvelle application web Azure App Service.

    $parameters = @{
        ResourceGroupName = "<name-of-existing-resource-group>"
        Name = "<name-of-new-web-app>"
        Location = "<azure-region>"
    }
    New-AzWebApp @parameters
    
  2. Corrigez l’application web nouvellement créée pour définir la propriété identity.type sur UserAssigned, puis ajoutez votre identité managée affectée par l’utilisateur existante à la propriété identity.userAssignedIdentities. Pour accomplir cette tâche, commencez par fournir le champ id enregistré précédemment dans ce guide en tant que valeur de la variable shell identityId. Ensuite, créez un objet de charge utile et convertissez-le au format JSON. Enfin, utilisez Invoke-AzRestMethod avec le verbe HTTP PATCH pour mettre à jour l’application web existante.

    $identityId = "<resource-id-recorded-earlier>"
    
    $payload = @{
        identity = @{
            type = "UserAssigned"
            userAssignedIdentities = @{
                "$identityId" = @{}
            }
        }
    } | ConvertTo-Json -Depth 3
    
    $parameters = @{
        ResourceGroupName = "<name-of-existing-resource-group>"
        Name = "<name-of-existing-web-app>"
        ResourceProviderName = 'Microsoft.Web'
        ResourceType = 'sites'
        ApiVersion = '2023-12-01'
        Method = 'PATCH'
        Payload = $payload
    }
    Invoke-AzRestMethod @parameters
    
  3. Obtenez les détails de toutes les identités attribuées à l’application web à l’aide de Get-AzWebApp, Select-Object et ConvertTo-Json, en sélectionnant uniquement la propriété Identity.

    $parameters = @{
        ResourceGroupName = "<name-of-existing-resource-group>"
        Name = "<name-of-existing-web-app>"
    }
    Get-AzWebApp @parameters | Select-Object Identity | ConvertTo-Json -Depth 3
    
  4. Examinez la sortie de la commande. Elle doit inclure les identificateurs uniques de l’identité et du locataire.

    {
      "Identity": {
        "Type": "UserAssigned",
        "TenantId": null,
        "PrincipalId": null,
        "UserAssignedIdentities": {
          "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/msdocs-identity-example/providers/Microsoft.ManagedIdentity/userAssignedIdentities/msdocs-identity-example-user-assigned": {
            "PrincipalId": "cccccccc-dddd-eeee-3333-444444444444",
            "ClientId": "11112222-bbbb-3333-cccc-4444dddd5555"
          }
        }
      }
    }
    

Étape suivante