Verweisen auf vorhandene Microsoft Graph-Ressourcen in Bicep-Vorlagen
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.
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.
Voraussetzungen
- Ein Azure-Abonnement Falls Sie noch kein Konto haben, können Sie ein kostenloses Konto erstellen.
- Verfügen Sie über die geringsten Berechtigungen oder Rollen, um entweder die vorhandene Ressource zu lesen oder zu aktualisieren, oder der Besitzer der Ressource. Konsultieren Sie die Rollen mit den geringsten Rechten nach Aufgabe und Standardbenutzerberechtigungen , um zu sehen, welche Rollen Sie zugewiesen werden müssen.
- Installieren Sie Bicep-Tools für die Erstellung und Bereitstellung. Diese Schnellstartanleitung verwendet VS Code mit der Bicep-Erweiterung für die Erstellung und Azure CLI für die Bereitstellung. Beispiele werden auch für Azure PowerShell bereitgestellt.
- Sie können die Bicep-Dateien interaktiv oder über die Zero-Touch-Bereitstellung (nur App) bereitstellen.
Lesen von Eigenschaften einer vorhandenen Microsoft Graph-Ressource
Die folgenden Schritte zeigen, wie Sie auf eine vorhandene Gruppe und Anwendung anhand ihres eindeutigen Namens in einer Bicep-Datei verweisen.
Starten Sie VS Code, und erstellen Sie zwei neue Dateien, main.bicep und bicepconfig.json, um sicherzustellen, dass sie sich im selben Ordner befinden.
Aktivieren Sie einige Vorschaufeatures, indem Sie bicepconfig.json konfigurieren:
{ "experimentalFeaturesEnabled": { "extensibility": true } }
Fügen Sie in "main.bicep" den folgenden Bicep-Code hinzu, der das
existing
Schlüsselwort verwendet, um auf die Gruppe anhand ihres eindeutigen NamensTestGroup-20240816
und der Anwendung zu verweisen.TestApp-20240816
In diesem Schritt wird davon ausgegangen, dass die Gruppe und Anwendung mit den angegebenen eindeutigen Namen bereits vorhanden ist.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
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
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"
Sie verwenden die ID der Gruppe im nächsten Abschnitt.
Aktualisieren oder Erstellen einer Microsoft Graph-Ressource mithilfe von Einstellungen aus vorhandenen Ressourcen
Möglicherweise möchten Sie auch eine Microsoft Graph-Ressource bereitstellen und einige seiner Eigenschaften mithilfe der Einstellungen aus einer vorhandenen Ressource konfigurieren. Sie möchten z. B. eine Sicherheitsgruppe Nr. 1 (neue Bereitstellung oder erneute Bereitstellung) mit einer vorhandenen Gruppe #2 und dem Dienstprinzipal #2 als Mitglieder bereitstellen. In diesem Fall verwenden Sie das existing
Schlüsselwort, um auf die Gruppe #2 und den Dienstprinzipal #2 zu verweisen und deren IDs abzurufen, die Sie dann der Mitgliederauflistung der Gruppe #1 hinzufügen.
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:
- Aktualisieren Sie die uniqueName-Eigenschaft für eine vorhandene Gruppe und Anwendung mithilfe von Azure CLI oder Azure PowerShell.
- Verwenden Sie das
existing
Schlüsselwort in einer Bicep-Datei, um die ID einer vorhandenen Gruppe und eines vorhandenen Dienstprinzipals abzurufen. - 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-20240817
auf bzw TestApp-20240817
. diese fest. Gehen Sie davon aus, dass die Gruppe und Anwendung "Gruppe 2" und die übergeordnete App des Dienstprinzipals "#2" aus dem vorherigen Szenario sind.
# 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"
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.
Starten Sie VS Code, und erstellen Sie zwei neue Dateien, main.bicep und bicepconfig.json, um sicherzustellen, dass sie sich im selben Ordner befinden.
Aktivieren Sie einige Vorschaufeatures, indem Sie bicepconfig.json konfigurieren:
{ "experimentalFeaturesEnabled": { "extensibility": true } }
Fügen Sie in "main.bicep" den folgenden Bicep-Code hinzu.
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] }
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.