Référencer les ressources Microsoft Graph existantes dans les modèles Bicep
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.
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.
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).
Lire les propriétés d’une ressource Microsoft Graph existante
Les étapes suivantes montrent comment référencer un groupe et une application existants par leur nom unique dans un fichier Bicep.
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.
Activez certaines fonctionnalités en préversion en configurant bicepconfig.json :
{ "experimentalFeaturesEnabled": { "extensibility": true } }
Dans main.bicep, ajoutez le code Bicep suivant, qui utilise le mot clé pour référencer le
existing
groupe par son nomTestGroup-20240816
unique et l’application parTestApp-20240816
. Cette étape suppose que le groupe et l’application avec les noms uniques spécifiés existent déjà.extension microsoftGraph @description('Group to use') param groupName string = 'TestGroup-20240816' @description('App to use') param appName string = 'TestApp-20240816' resource group 'Microsoft.Graph/groups@v1.0' existing = { uniqueName: groupName } resource application 'Microsoft.Graph/applications@v1.0' existing = { uniqueName: appName } output groupId string = group.id output applicationId string = application.id
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
DeploymentName : main
ResourceGroupName : exampleRG
ProvisioningState : Succeeded
Timestamp : 18/04/2024 16:16:42
Mode : Incremental
TemplateLink :
Parameters :
Name Type Value
=============== ========================= ==========
groupName String "TestGroup-20240816"
appName String "TestApp-20240816"
Outputs :
Name Type Value
=============== ========================= ==========
group-id String "91ded94c-0144-4422-b33c-c4171447a738"
app-id String "cd0bc6bc-fd22-4eb6-9bd3-2f8c5efd6dc9"
Vous utilisez l’ID du groupe dans la section suivante.
Mettre à jour ou créer une ressource Microsoft Graph à l’aide de paramètres à partir de ressources existantes
Vous pouvez également déployer une ressource Microsoft Graph et configurer certaines de ses propriétés à l’aide des paramètres d’une ressource existante. Par exemple, vous souhaitez 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. Dans ce cas, vous utilisez le mot clé pour référencer le existing
groupe #2 et le principal de service #2 et obtenir leurs ID, que vous ajoutez ensuite à la collection de membres du groupe #1.
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 :
- Mettez à jour la propriété uniqueName pour un groupe et une application existants à l’aide d’Azure CLI ou d’Azure PowerShell.
- Utilisez le
existing
mot clé dans un 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-20240817
existants sur et TestApp-20240817
, respectivement. Supposons que le groupe et l’application sont le groupe #2 et l’application parente du principal de service #2 à partir du scénario précédent.
# 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-20240817\"}' --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-20240817\"}' --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.
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.
Activez certaines fonctionnalités en préversion en configurant bicepconfig.json :
{ "experimentalFeaturesEnabled": { "extensibility": true } }
Dans main.bicep, ajoutez le code Bicep suivant.
extension microsoftGraph // TEMPLATE OVERVIEW: 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-20240817' } // existing SP #2 to be added as a member resource application 'Microsoft.Graph/applications@v1.0' existing = { uniqueName: 'TestApp-20240817' } 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] }
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.