Condividi tramite


Integrare le risorse esistenti di Microsoft Graph per l'utilizzo nei template Bicep

È possibile fare riferimento alle risorse esistenti di Microsoft Graph nei modelli Bicep tramite la proprietà chiave fornita e supportata dal client. Le risorse create tramite HTTP POST potrebbero non avere questa proprietà impostata e richiedere un aggiornamento dati una tantum.

Una volta impostata, la proprietà chiave fornita dal client consente di dichiarare la risorsa in un file Bicep per la ridistribuzione. Per leggere le proprietà della risorsa senza ridistribuire, usare la parola chiave esistente.

Questo articolo illustra come usare la existing parola chiave e la chiave fornita dal client per leggere le proprietà delle risorse di Microsoft Graph esistenti.

Importante

Microsoft Graph Bicep è attualmente in anteprima. Vedere le condizioni per l'utilizzo supplementari per le anteprime di Microsoft Azure per termini legali aggiuntivi che si applicano a funzionalità di Azure in versione beta, in anteprima o in altro modo non ancora disponibili a livello generale.

Bicep consente di leggere le risorse esistenti usando la parola chiave esistente . Per le risorse di Microsoft Graph, le risorse devono essere identificate in modo univoco da una proprietà chiave fornita dal client.

Prerequisiti

Integrare le risorse esistenti di Microsoft Graph e usare tali risorse in un file Bicep

In questo esempio potrebbero essere presenti alcune risorse di Microsoft Graph che non sono state create tramite una distribuzione di file Bicep, che ora è necessario usare o gestire in un file Bicep. Ad esempio, si vuole aggiornare un'applicazione esistente o distribuire il gruppo di sicurezza #1 (nuova distribuzione o ridistribuzione) insieme al gruppo esistente #2 e all'entità servizio #2 come membri.

Per fare riferimento al gruppo esistente n. 2 in un file Bicep, è necessario che la proprietà uniqueName sia impostata. Per fare riferimento all'entità servizio esistente n. 2 se non si conosce il relativo appId, l'applicazione padre deve avere la proprietà uniqueName impostata.

In questa sezione verrà illustrato come:

  • Aggiungere la proprietà uniqueName per un gruppo e un'applicazione esistenti usando la CLI di Azure o Azure PowerShell.
  • Aggiornare un'applicazione esistente in un file Bicep.
  • Usare la parola chiave existing nello stesso file Bicep per ottenere l'ID di un gruppo e di un'entità servizio esistenti.
  • Nel file Bicep configurare le impostazioni per distribuire un gruppo di sicurezza con un gruppo esistente e un'entità servizio come membri e l'entità servizio come proprietario.
  • Distribuire il file Bicep.

Passaggio 1: Impostare la proprietà uniqueName per il gruppo e l'applicazione

La richiesta seguente imposta rispettivamente il valore uniqueName per un gruppo e un'applicazione esistente su TestGroup-20241202 e TestApp-20241202.

Importante

La proprietà chiave fornita dal client uniqueName non può essere modificata una volta impostata.

# 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"

Passaggio 2: Aggiungere un gruppo e un'entità servizio esistenti ai membri e ai proprietari di un altro gruppo

È ora possibile usare la existing parola chiave per fare riferimento al gruppo esistente #2 e all'entità servizio #2, ottenere i relativi ID e aggiungerli alle raccolte proprietari e membri di un altro gruppo.

  1. Avviare VS Code e creare due nuovi file, main.bicep e bicepconfig.json, assicurandosi che si trovino nella stessa cartella.

  2. Abilitare alcune funzionalità di anteprima configurando bicepconfig.json:

    {
      "experimentalFeaturesEnabled": {
          "extensibility": true
      }
    }
    
  3. In main.bicep aggiungere il codice Bicep seguente.

    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. Distribuire il file Bicep usando l'interfaccia della riga di comando di Azure o 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
    

Al termine della distribuzione, visualizzerai un messaggio che indica che la distribuzione è stata completata.