Freigeben über


Einbindung vorhandener Microsoft Graph-Ressourcen zur Verwendung in Bicep-Vorlagen

Sie können in Bicep-Vorlagen auf vorhandene Microsoft Graph-Ressourcen verweisen, indem Sie die vom Client bereitgestellte Schlüsseleigenschaft verwenden. Ressourcen, die über HTTP POST erstellt wurden, verfügen möglicherweise nicht über diesen Eigenschaftensatz und erfordern ein einmaliges Ausfüllen.

Die vom Kunden bereitgestellte Schlüsseleigenschaft ermöglicht es, die Ressource in einer Bicep-Datei zu deklarieren, um sie erneut bereitzustellen. Um die Eigenschaften der Ressource zu lesen, ohne sie erneut bereitzustellen, verwenden Sie die bestehende stichwort.

In diesem Artikel erfahren Sie, wie Sie das existing Schlüsselwort und den vom Client bereitgestellten Schlüssel verwenden, um die Eigenschaften vorhandener Microsoft Graph-Ressourcen zu lesen.

Wichtig

Microsoft Graph Bicep befindet sich derzeit in DER VORSCHAU. Die zusätzlichen Nutzungsbestimmungen für Microsoft Azure-Vorschauen enthalten rechtliche Bedingungen. Sie gelten für diejenigen Azure-Features, die sich in der Beta- oder Vorschauversion befinden oder aber anderweitig noch nicht zur allgemeinen Verfügbarkeit freigegeben sind.

Mit Bicep können Sie vorhandene Ressourcen mithilfe des vorhandenen Schlüsselworts lesen. Für Microsoft Graph-Ressourcen müssen die Ressourcen zuerst durch eine vom Client bereitgestellte Schlüsseleigenschaft eindeutig identifiziert werden.

Voraussetzungen

Einbindung vorhandener Microsoft Graph-Ressourcen und Verwendung dieser Ressourcen in einer Bicep-Datei

In diesem Beispiel könnten Sie einige Microsoft Graph-Ressourcen haben, die nicht durch eine Bicep-Datei-Bereitstellung erstellt wurden und die Sie nun in einer Bicep-Datei verwenden oder verwalten müssen. Sie möchten beispielsweise eine vorhandene Anwendung aktualisieren oder die Sicherheitsgruppe Nr. 1 (neue Bereitstellung oder erneute Bereitstellung) mit der vorhandenen Gruppe Nr. 2 und dem Dienstprinzipal Nr. 2 als deren Mitglieder bereitstellen.

Um auf die vorhandene Gruppe "#2" in einer Bicep-Datei zu verweisen, muss sie über den eindeutigen Eigenschaftssatz "uniqueName " verfügen. Um auf den vorhandenen Dienstprinzipal #2 zu verweisen, wenn Sie die appId nicht kennen, muss die übergeordnete Anwendung über den eindeutigen Eigenschaftssatz "uniqueName" verfügen.

In diesem Abschnitt führen Sie folgende Schritte aus:

  • Fügen Sie die eigenschaft uniqueName für eine vorhandene Gruppe und Anwendung mithilfe von Azure CLI oder Azure PowerShell hinzu.
  • Aktualisieren Sie die bestehende Anwendung in einer Bicep-Datei.
  • Verwenden Sie die existing Schlüsselwort in derselben Bicep-Datei, um die ID einer bestehenden Gruppe und eines Dienstherrn zu erhalten.
  • Konfigurieren Sie in der Datei "Bicep" die Einstellungen, um eine Sicherheitsgruppe mit einer vorhandenen Gruppe und einem vorhandenen Dienstprinzipal als Mitglieder und dem Dienstprinzipal als Besitzer bereitzustellen.
  • Stellen Sie die Bicep-Datei bereit.

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

Die folgende Anforderung legt den uniqueName für eine vorhandene Gruppe bzw. Anwendung TestGroup-20241202 auf bzw TestApp-20241202. diese fest.

Wichtig

Die vom Client bereitgestellte Schlüsseleigenschaft uniqueName kann nicht geändert werden, sobald sie festgelegt wurde.

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

Schritt 2: Hinzufügen eines vorhandenen Gruppen- und Dienstprinzipals zu Mitgliedern und Besitzern einer anderen Gruppe

Sie können nun das existing Schlüsselwort verwenden, um auf vorhandene Gruppe #2 und Dienstprinzipal #2 zu verweisen, ihre IDs abzurufen und sie den Besitzer- und Mitgliedersammlungen einer anderen Gruppe hinzuzufügen.

  1. Starten Sie VS Code, und erstellen Sie zwei neue Dateien, main.bicep und bicepconfig.json, um sicherzustellen, dass sie sich im selben Ordner befinden.

  2. Aktivieren Sie einige Vorschaufeatures, indem Sie bicepconfig.json konfigurieren:

    {
      "experimentalFeaturesEnabled": {
          "extensibility": true
      }
    }
    
  3. Fügen Sie in "main.bicep" den folgenden Bicep-Code hinzu.

    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. 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 Abschluss der Bereitstellung sollte eine Meldung mit dem Hinweis angezeigt werden, dass die Bereitstellung erfolgreich war.