Onboarding vorhandener Microsoft Graph-Ressourcen in Bicep-Vorlagen

Möglicherweise müssen Sie auf Microsoft Graph-Ressourcen verweisen und verwalten, die außerhalb Ihrer Bicep-Vorlagen erstellt wurden. In diesem Artikel erfahren Sie, wie Sie:

Prerequisites

Damit Sie die Anweisungen in diesem Artikel ausführen können, benötigen Sie Folgendes:

Onboarding vorhandener Microsoft Graph-Ressourcen für die Verwendung in einer Bicep-Datei

Wenn Sie über Microsoft Graph-Ressourcen verfügen, die nicht mit Bicep erstellt wurden, integrieren Sie sie für die Verwaltung in Bicep-Dateien. Sie können z. B. eine vorhandene Anwendung aktualisieren oder eine Sicherheitsgruppe bereitstellen, die eine vorhandene Gruppe und einen Vorhandenen Dienstprinzipal als Mitglieder enthält.

Um auf eine vorhandene Gruppe in einer Bicep-Datei zu verweisen, legen Sie die uniqueName-Eigenschaft fest. Um auf einen vorhandenen Dienstprinzipal zu verweisen, wenn Sie die ID oder appId nicht kennen, muss die übergeordnete Anwendung über den eindeutigen Eigenschaftssatz verfügen.

Inhalt dieses Abschnitts:

  • Hinzufügen der uniqueName-Eigenschaft zu einer vorhandenen Gruppe und Anwendung mit Azure CLI oder Azure PowerShell
  • Aktualisieren der vorhandenen Anwendung in einer Bicep-Datei
  • Verwenden Sie das existing Schlüsselwort in der Bicep-Datei, um die ID einer vorhandenen Gruppe und eines vorhandenen Dienstprinzipals abzurufen.
  • Konfigurieren einer Sicherheitsgruppe in der Bicep-Datei mit dem vorhandenen Gruppen- und Dienstprinzipal als Mitglieder und dem Dienstprinzipal als Besitzer
  • Bereitstellen der Bicep-Datei

Schritt 1: Festlegen der uniqueName-Eigenschaft für die Gruppe und Anwendung

Legen Sie die uniqueName-Eigenschaft für eine vorhandene Gruppe und Anwendung fest, z. B. auf TestGroup-20241202 und TestApp-20241202, wie in der folgenden Anforderung dargestellt.

Important

Sie können die Eigenschaft nach dem uniqueName Festlegen nicht mehr ändern.

# 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
# Replace the IDs with your group and application IDs
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"

Schritt 2: Hinzufügen vorhandener Gruppen- und Dienstprinzipal als Mitglieder und Besitzer einer anderen Gruppe

Verwenden Sie nun das existing Schlüsselwort, um auf den vorhandenen Gruppen- und Dienstprinzipal zu verweisen, ihre IDs abzurufen und sie den Besitzer- und Mitgliedersammlungen einer anderen Gruppe hinzuzufügen.

  1. Erstellen Sie in VS Code zwei Dateien im selben Ordner: main.bicep und bicepconfig.json.

  2. Fügen Sie den folgenden Code zu "main.bicep" hinzu:

    extension 'br:mcr.microsoft.com/bicep/extensions/microsoftgraph/v1.0:1.0.0
    
    // Reference existing group
    resource group 'Microsoft.Graph/groups@v1.0' existing = {
      uniqueName: 'TestGroup-20241202'
    }
    
    // Update existing application and reference its service principal
    resource application 'Microsoft.Graph/applications@v1.0' = {
      uniqueName: 'TestApp-20241202'
      displayName: 'Updating the displayName to something new'
    }
    resource servicePrincipal '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: [group.id, servicePrincipal.id]
      owners: [servicePrincipal.id]
    }
    
  3. Stellen Sie die Bicep-Datei mit Azure CLI oder Azure PowerShell bereit.

    # 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
    

Nach der Bereitstellung wird eine Meldung angezeigt, dass die Bereitstellung erfolgreich war.