Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ten przewodnik Szybki start przeprowadzi Cię do wdrożenia pliku Bicep z zasobami programu Microsoft Graph przy użyciu uwierzytelniania tylko aplikacji (uwierzytelnianie nieinteraktywne). Takie podejście umożliwia bezproblemową integrację z potokami ciągłej integracji/ciągłego wdrażania dla wdrożeń bezobsługowych.
Aby uzyskać informacje na temat delegowanego lub interakcyjnego uwierzytelniania, zobacz Tworzenie pliku Bicep z zasobami programu Microsoft Graph.
Prerequisites
- Utwórz plik Bicep z sekcji Tworzenie pliku Bicep z zasobami programu Microsoft Graph.
- Posiada subskrypcję platformy Azure.
- Być administratorem ról uprzywilejowanych w celu przypisania ról aplikacji programu Microsoft Graph do jednostki usługi.
Utwórz jednostkę usługi i przypisz rolę platformy Azure
Zaloguj się do interfejsu wiersza polecenia platformy Azure i utwórz jednostkę usługi na potrzeby wdrażania pliku Bicep.
W tym przykładzie użyto hasła aplikacji (klucza tajnego klienta) tylko do uproszczenia i testowania. Przypisz jednostkę usługi rolę Współautor tożsamości zarządzanej o zakresie do grupy zasobów.
Caution
Unikaj używania haseł aplikacji w środowiskach produkcyjnych.
# 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"
}
password Skopiuj wartość — nie można jej pobrać później.
Przypisz uprawnienia Microsoft Graph do głównej usługi
Przyznaj jednostce usługi uprawnienie Group.ReadWrite.All tylko do aplikacji przy użyciu programu Microsoft Graph PowerShell. Rola Administrator ról uprzywilejowanych umożliwia przypisanie wymaganych uprawnień AppRoleAssignment.ReadWrite.All i Application.Read.All .
Caution
Ogranicz dostęp do aplikacji, którym udzielono uprawnień AppRoleAssignment.ReadWrite.All . Aby uzyskać szczegółowe informacje, zobacz 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"
Zaloguj się jako jednostka usługi, aby wdrożyć plik Bicep
Zaloguj się przy użyciu utworzonej wcześniej jednostki usługi.
# 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
Aby uniknąć wyświetlania hasła w konsoli podczas korzystania az login interakcyjnego read -s , użyj polecenia w pliku bash.
read -sp "Azure password: " AZ_PASS && echo && az login --service-principal -u <app-id> -p $AZ_PASS --tenant <tenant>
Wdróż plik Bicep
Wdróż plik Bicep przy użyciu zakresu grupy zasobów.
az deployment group create --resource-group exampleRG --template-file main.bicep
Note
Wdrożenie może zakończyć się niepowodzeniem z powodu opóźnień replikacji podczas dodawania tożsamości usługi zarządzanej (MSI) jako właściciela grupy firmy Microsoft Entra. Poczekaj i ponów próbę wdrożenia.
Czyszczenie zasobów
Użyj interfejsu wiersza polecenia platformy Azure lub programu Azure PowerShell, aby usunąć zasoby platformy Azure i zasoby programu Microsoft Graph, gdy nie będą już potrzebne.
Note
Grupy zasobów są koncepcją platformy Azure i nie mają wpływu na zasoby programu Microsoft Graph. Zasoby programu Microsoft Graph muszą zostać wyczyszczone przy użyciu innego żądania do programu Microsoft Graph. W tym celu możesz użyć interfejsu wiersza polecenia platformy Azure lub programu Azure PowerShell albo programu Microsoft Graph PowerShell.
W poniższych przykładach pokazano polecenia umożliwiające najpierw usunięcie zasobu platformy Azure, a następnie zasobów programu Microsoft Graph przy użyciu interfejsu wiersza polecenia platformy Azure i programu 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