Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Diese Schnellstartanleitung führt Sie zum Bereitstellen einer Bicep-Datei mit Microsoft Graph-Ressourcen mithilfe der nur-App-Authentifizierung (nichtinteraktive Authentifizierung). Dieser Ansatz ermöglicht eine nahtlose Integration in CI/CD-Pipelines für Zero-Touch-Bereitstellungen.
Informationen zur delegierten oder interaktiven Authentifizierung finden Sie unter Erstellen einer Bicep-Datei mit Microsoft Graph-Ressourcen.
Prerequisites
- Verwenden Sie eine Bicep-Datei aus " Erstellen einer Bicep-Datei mit Microsoft Graph-Ressourcen".
- Besitzen Sie ein Azure-Abonnement.
- Als Administrator für privilegierte Rollen können Sie einem Dienstprinzipal Microsoft Graph-App-Rollen zuweisen.
Erstellen eines Dienstprinzipals und Zuweisen eine Azure-Rolle
Melden Sie sich bei Azure CLI an, und erstellen Sie einen Dienstprinzipal für die Bereitstellung der Bicep-Datei.
In diesem Beispiel wird nur ein Anwendungskennwort (geheimer Clientschlüssel) verwendet. Weisen Sie dem Dienstprinzipal die Rolle "Managed Identity Contributor " zu, die auf eine Ressourcengruppe festgelegt ist.
Caution
Vermeiden Sie anwendungsbezogene Kennwörter in Produktionsumgebungen.
# Create a resource group
az group create --name exampleRG --location eastus
# Create a service principal with the Managed Identity Contributor role. Replace {myServicePrincipalName}, {mySubscriptionId}, and {myResourceGroupName} with your values.
az ad sp create-for-rbac --name {myServicePrincipalName} --role "Managed Identity Contributor" --scopes "/subscriptions/{mySubscriptionId}/resourceGroups/{myResourceGroupName}"
Output:
{
"appId": "myServicePrincipalId",
"displayName": "myServicePrincipalName",
"password": "myServicePrincipalPassword",
"tenant": "myOrganizationTenantId"
}
Kopieren Sie den password Wert , der später nicht abgerufen werden kann.
Microsoft Graph-Berechtigungen dem Service Principal zuweisen
Erteilen Sie dem Dienstprinzipal die Berechtigung "Group.ReadWrite.All " mit Microsoft Graph PowerShell. Mit der Rolle "Privileged Role Administrator" können Sie die erforderlichen Berechtigungen "AppRoleAssignment.ReadWrite.All " und "Application.Read.All " zuweisen.
Caution
Beschränken Sie den Zugriff auf Apps, die der AppRoleAssignment.ReadWrite.All-Berechtigung gewährt wurden. Weitere Informationen finden Sie unter AppRoleAssignment.ReadWrite.All .
# Authenticate to Microsoft Graph
Connect-MgGraph -Scopes "AppRoleAssignment.ReadWrite.All","Application.Read.All"
# Find the service principal created earlier
$mySP = Get-MgServicePrincipalByAppId -AppId "myServicePrincipalId"
# Find the Microsoft Graph service principal
$graphSP = Get-MgServicePrincipalByAppId -AppId "00000003-0000-0000-c000-000000000000"
# Assign Group.ReadWrite.All app-only permission
New-MgServicePrincipalAppRoleAssignedTo -ResourceId $graphSP.Id -ServicePrincipalId $graphSP.Id -PrincipalId $mySP.Id -AppRoleId "62a82d76-70ea-41e2-9197-370581804d09"
Anmelden als Dienstprinzipal zum Bereitstellen der Bicep-Datei
Melden Sie sich mit dem zuvor erstellten Dienstprinzipal an.
# Sign in with the service principal. This sample uses the Bash console.
spID=$(az ad sp list --display-name myServicePrincipalName --query "[].{spID:appId}" --output tsv)
tenantID=$(az ad sp list --display-name myServicePrincipalName --query "[].{tenantID:appOwnerOrganizationId}" --output tsv)
echo "Using appId $spID in tenant $tenantID"
az login --service-principal --username $spID --password {paste your SP password here} --tenant $tenantID
Important
Um zu vermeiden, dass Ihr Kennwort bei interaktiver Verwendung az login auf der Konsole angezeigt wird, verwenden Sie den read -s Befehl in bash.
read -sp "Azure password: " AZ_PASS && echo && az login --service-principal -u <app-id> -p $AZ_PASS --tenant <tenant>
Bereitstellen der Bicep-Datei
Stellen Sie die Bicep-Datei mithilfe des Bereichs der Ressourcengruppe bereit.
az deployment group create --resource-group exampleRG --template-file main.bicep
Note
Die Bereitstellung kann aufgrund von Replikationsverzögerungen fehlschlagen, wenn die verwaltete Dienstidentität (MSI) als Besitzer der Microsoft Entra-Gruppe hinzugefügt wird. Warten Sie, und wiederholen Sie die Bereitstellung.
Bereinigen von Ressourcen
Verwenden Sie Azure CLI oder Azure PowerShell, um die Azure-Ressourcen und Microsoft Graph-Ressourcen zu löschen, wenn sie nicht mehr benötigt werden.
Note
Ressourcengruppen sind ein Azure-Konzept und haben keine Auswirkungen auf Microsoft Graph-Ressourcen. Microsoft Graph-Ressourcen müssen mit einer anderen Anforderung an Microsoft Graph bereinigt werden. Hierfür können Sie Azure CLI oder Azure PowerShell oder Microsoft Graph PowerShell verwenden.
Die folgenden Beispiele zeigen Befehle zum Löschen der Azure-Ressource und dann der Microsoft Graph-Ressourcen mit Azure CLI und Azure PowerShell.
# Delete the resource group
az group delete --name exampleRG
# Delete the Microsoft Graph group
az rest --method delete --url 'https://graph.microsoft.com/v1.0/groups%28uniqueName=%27myExampleGroup%27%29'
# Delete the client service principal
spID=$(az ad sp list --display-name myServicePrincipalName --query "[].{spID:id}" --output tsv)
az ad sp delete --id $spID