Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este guia de início rápido orienta você a implantar um arquivo Bicep com recursos do Microsoft Graph usando a autenticação somente aplicativo (autenticação não interativa). Essa abordagem permite a integração perfeita em pipelines de CI/CD para implantações de toque zero.
Para autenticação delegada ou interativa, consulte Criar um arquivo Bicep com recursos do Microsoft Graph.
Prerequisites
- Tenha um arquivo Bicep de Criar um arquivo Bicep com recursos do Microsoft Graph.
- Possua uma assinatura do Azure.
- Seja um Administrador de Funções Com Privilégios para atribuir funções de aplicativo do Microsoft Graph a uma entidade de serviço.
Criar um principal de serviço e atribuir uma função do Azure
Entre na CLI do Azure e crie uma entidade de serviço para implantar o arquivo Bicep.
Este exemplo usa uma senha de aplicativo (segredo do cliente) apenas para simplificar e testar. Atribua à entidade de serviço a função Colaborador de Identidade Gerenciada no escopo de um grupo de recursos.
Caution
Evite usar senhas de aplicativo em ambientes de produção.
# 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"
}
Copie o password valor – ele não pode ser recuperado mais tarde.
Atribuir permissões do Microsoft Graph ao service principal
Conceda a permissão Group.ReadWrite.All somente de aplicativo à entidade de serviço usando o Microsoft Graph PowerShell. A função administrador de função com privilégios permite atribuir as permissões AppRoleAssignment.ReadWrite.All e Application.Read.All necessárias.
Caution
Limite o acesso a aplicativos concedidos à permissão AppRoleAssignment.ReadWrite.All . Consulte AppRoleAssignment.ReadWrite.All para obter detalhes.
# 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"
Faça login como uma entidade de serviço para implantar o arquivo Bicep
Entre usando a entidade de serviço criada anteriormente.
# 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
Para evitar exibir sua senha no console ao usar az login interativamente, use o read -s comando em bash.
read -sp "Azure password: " AZ_PASS && echo && az login --service-principal -u <app-id> -p $AZ_PASS --tenant <tenant>
Implante o arquivo Bicep
Implante o arquivo Bicep usando o escopo do grupo de recursos.
az deployment group create --resource-group exampleRG --template-file main.bicep
Note
A implantação pode falhar devido a atrasos de replicação ao adicionar a MSI (identidade de serviço gerenciada) como proprietário do grupo Microsoft Entra. Aguarde e repita a implantação.
Limpar os recursos
Use a CLI do Azure ou o Azure PowerShell para excluir os recursos do Azure e os recursos do Microsoft Graph quando não forem mais necessários.
Note
Os grupos de recursos são um conceito do Azure e não têm nenhum efeito sobre os recursos do Microsoft Graph. Os recursos do Microsoft Graph precisam ser limpos com outra solicitação para o Microsoft Graph. Para isso, você pode usar a CLI do Azure ou o Azure PowerShell ou o Microsoft Graph PowerShell.
Os exemplos a seguir mostram comandos para excluir o recurso do Azure primeiro e, em seguida, os recursos do Microsoft Graph usando a CLI do Azure e o 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