Partager via


Intégrer des ressources Microsoft Graph existantes à utiliser dans des modèles Bicep

Vous pouvez référencer des ressources Microsoft Graph existantes dans les modèles Bicep grâce à la propriété de clé fournie par le client. Les ressources créées via HTTP POST peuvent ne pas avoir cette propriété définie et nécessiter un remplissage unique.

Une fois définie, la propriété de clé fournie par le client permet à la ressource d’être déclarée dans un fichier Bicep pour le redéploiement. Pour lire les propriétés de la ressource sans redéployer, utilisez le mot clé existant.

Dans cet article, vous allez apprendre à utiliser le existing mot clé et la clé fournie par le client pour lire les propriétés des ressources Microsoft Graph existantes.

Important

Microsoft Graph Bicep est actuellement en préversion. Pour connaître les conditions juridiques qui s’appliquent aux fonctionnalités Azure en version bêta, en préversion ou plus généralement non encore en disponibilité générale, consultez l’Avenant aux conditions d’utilisation des préversions de Microsoft Azure.

Bicep vous permet de lire les ressources existantes à l’aide du mot clé existant . Pour les ressources Microsoft Graph, les ressources doivent d’abord être identifiées de manière unique par une propriété de clé fournie par le client.

Prérequis

  • J’ai un abonnement Azure. Si vous n’en avez pas, vous pouvez créer un compte gratuit.
  • Disposez des autorisations ou des rôles les moins privilégiés pour lire ou mettre à jour la ressource existante ou être le propriétaire de la ressource. Consultez les rôles les moins privilégiés par tâche et les autorisations utilisateur par défaut pour voir quels rôles vous devez être attribués.
  • Installez les outils Bicep pour la création et le déploiement. Ce guide de démarrage rapide utilise VS Code avec l’extension Bicep pour la création et Azure CLI pour le déploiement. Des exemples sont également fournis pour Azure PowerShell.
  • Vous pouvez déployer les fichiers Bicep de manière interactive ou via le déploiement sans contact (application uniquement).

Intégrer des ressources Microsoft Graph existantes et utiliser ces ressources dans un fichier Bicep

Dans cet exemple, vous pouvez avoir certaines ressources Microsoft Graph qui n’ont pas été créées par le biais d’un déploiement de fichiers Bicep, que vous devez maintenant utiliser ou gérer dans un fichier Bicep. Par exemple, vous souhaitez mettre à jour une application existante ou déployer un groupe de sécurité #1 (nouveau déploiement ou redéploiement) avec un groupe #2 existant et un principal de service #2 en tant que membres.

Pour référencer le groupe existant #2 dans un fichier Bicep, sa propriété uniqueName doit être définie. Pour référencer le principal de service existant #2 si vous ne connaissez pas son appId, son application parente doit avoir son jeu de propriétés uniqueName .

Dans cette section, vous allez :

  • Ajoutez la propriété uniqueName pour un groupe et une application existants à l’aide d’Azure CLI ou d’Azure PowerShell.
  • Mettez à jour l’application existante dans un fichier Bicep.
  • Utilisez le mot clé existing dans le même fichier Bicep pour obtenir l’ID d’un groupe et d’un principal de service existant.
  • Dans le fichier Bicep, configurez les paramètres pour déployer un groupe de sécurité avec un groupe et un principal de service existant en tant que membres, et le principal de service en tant que propriétaire.
  • Déployez le fichier Bicep.

Étape 1 : Définir la propriété uniqueName pour le groupe et l’application

La requête suivante définit le nom unique d’un groupe et d’une application TestGroup-20241202 existants sur et TestApp-20241202, respectivement.

Important

La propriété de clé fournie par le client uniqueName ne peut pas être modifiée une fois définie.

# Sign in to Azure
az login

## Create a resource group
az group create --name exampleRG --location eastus

## Update the uniqueName property of the group and application
## Note: Replace cec00de2-08b9-4081-aaf5-55d78ac9b4c4 and 25ae6414-05a1-4cce-9899-ad11d9eedde2 with IDs for your group and application.
az rest --method patch --url 'https://graph.microsoft.com/v1.0/groups/cec00de2-08b9-4081-aaf5-55d78ac9b4c4' --body '{\"uniqueName\": \"TestGroup-20241202\"}' --headers "content-type=application/json"
az rest --method patch --url 'https://graph.microsoft.com/v1.0/applications/25ae6414-05a1-4cce-9899-ad11d9eedde2' --body '{\"uniqueName\": \"TestApp-20241202\"}' --headers "content-type=application/json"

Étape 2 : Ajouter un groupe et un principal de service existants aux membres et propriétaires d’un autre groupe

Vous pouvez maintenant utiliser le existing mot clé pour référencer le groupe existant #2 et le principal de service #2, obtenir leurs ID et les ajouter aux collections propriétaires et membres d’un autre groupe.

  1. Lancez VS Code et créez deux nouveaux fichiers, main.bicep et bicepconfig.json, en vous assurant qu’ils se trouvent dans le même dossier.

  2. Activez certaines fonctionnalités en préversion en configurant bicepconfig.json :

    {
      "experimentalFeaturesEnabled": {
          "extensibility": true
      }
    }
    
  3. Dans main.bicep, ajoutez le code Bicep suivant.

    extension 'br:mcr.microsoft.com/bicep/extensions/microsoftgraph/v1.0:0.1.8-preview'
    
    // TEMPLATE OVERVIEW: Updates an existing app and 
    // uses existing group and existing SP and sets them as members of another group
    
    // existing group #2 to be added as a member
    resource groupMember 'Microsoft.Graph/groups@v1.0' existing = {
      uniqueName: 'TestGroup-20241202'
    }
    
    // existing application to be updated with a new display name
    // and for its SP #2 to be added as a member (to group #1)
    resource application 'Microsoft.Graph/applications@v1.0' = {
      uniqueName: 'TestApp-20241202'
      displayName: 'Updating the displayName to something new'
    }
    resource servicePrincipalMember 'Microsoft.Graph/servicePrincipals@v1.0' existing = {
      appId: application.appId
    }
    
    // Add preceding service principal and group as members of another group
    // Add preceding service principal as owner of the group. 
    // If Group-1 uniqueName doesn't exist, this is a new deployment.
    // If Group-1 uniqueName exists, this is a redeployment/update. For redeployments, existing members and owners are retained.
    resource group 'Microsoft.Graph/groups@v1.0' = {
      displayName: 'Group-1'
      mailEnabled: false
      mailNickname: 'Group-1'
      securityEnabled: true
      uniqueName: 'Group-1'
      members: [groupMember.id, servicePrincipalMember.id]
      owners: [servicePrincipalMember.id]
    }
    
  4. Déployez le fichier Bicep à l’aide d’Azure CLI ou d’Azure PowerShell.

    ## Create a resource group
    az group create --name exampleRG --location eastus
    
    ## Deploy the Bicep file
    az deployment group create --resource-group exampleRG --template-file main.bicep
    

Une fois le déploiement terminé, un message doit s’afficher pour indiquer que le déploiement a réussi.