Recursos integrados do Microsoft Graph existentes para uso em modelos Bicep
Você pode fazer referência aos recursos existentes do Microsoft Graph em modelos Bicep pela propriedade de chave com suporte fornecida pelo cliente. Os recursos criados via HTTP POST podem não ter essa propriedade definida e exigem um backfill único.
Uma vez definida, a propriedade de chave fornecida pelo cliente permite que o recurso seja declarado em um arquivo Bicep para reimplantação. Para ler as propriedades do recurso sem reimplantar, use a palavra-chave existente.
Neste artigo, você aprenderá a usar a existing
palavra-chave e a chave fornecida pelo cliente para ler as propriedades dos recursos existentes do Microsoft Graph.
Importante
O Microsoft Graph Bicep está atualmente em versão prévia. Veja os Termos de Uso Complementares para Versões Prévias do Microsoft Azure para obter termos legais que se aplicam aos recursos do Azure que estão em versão beta, versão prévia ou que, de outra forma, ainda não foram lançados em disponibilidade geral.
O Bicep permite que você leia os recursos existentes usando a palavra-chave existente . Para recursos do Microsoft Graph, os recursos devem primeiro ser identificados exclusivamente por uma propriedade de chave fornecida pelo cliente.
Pré-requisitos
- Tenho uma assinatura do Azure. Se você não tiver uma, poderá criar uma conta gratuita.
- Ter as permissões ou funções menos privilegiadas para ler ou atualizar o recurso existente ou ser o proprietário do recurso. Consulte Funções com privilégios mínimos por tarefa e Permissões de usuário padrão para ver quais funções você precisa receber.
- Instale as ferramentas do Bicep para criação e implantação. Este início rápido usa o VS Code com a extensão Bicep para criação e a CLI do Azure para implantação. Exemplos também são fornecidos para o Azure PowerShell.
- Você pode implantar os arquivos Bicep interativamente ou por meio da implantação sem toque (somente aplicativo).
Integrar recursos existentes do Microsoft Graph e usar esses recursos em um arquivo Bicep
Neste exemplo, você pode ter alguns recursos do Microsoft Graph que não foram criados por meio de uma implantação de arquivo Bicep, que agora você precisa usar ou gerenciar em um arquivo Bicep. Por exemplo, você deseja atualizar um aplicativo existente ou implantar o grupo de segurança nº 1 (nova implantação ou reimplantação) com o grupo existente nº 2 e a entidade de serviço nº 2 como membros.
Para fazer referência ao grupo #2 existente em um arquivo Bicep, ele deve ter sua propriedade uniqueName definida. Para fazer referência à entidade de serviço #2 existente, se você não souber seu appId, seu aplicativo pai deverá ter sua propriedade uniqueName definida.
Nesta seção, você:
- Adicione a propriedade uniqueName para um grupo e aplicativo existentes usando a CLI do Azure ou o Azure PowerShell.
- Atualize o aplicativo existente em um arquivo Bicep.
- Use a palavra-chave
existing
no mesmo arquivo Bicep para obter a ID de um grupo e entidade de serviço existentes. - No arquivo Bicep, defina as configurações para implantar um grupo de segurança com um grupo existente e uma entidade de serviço como seus membros e a entidade de serviço como seu proprietário.
- Implante o arquivo Bicep.
Etapa 1: Definir a propriedade uniqueName para o grupo e o aplicativo
A solicitação a seguir define o uniqueName para um grupo e aplicativo existentes como TestGroup-20241202
e TestApp-20241202
, respectivamente.
Importante
A propriedade de chave fornecida pelo cliente uniqueName
não pode ser alterada uma vez definida.
# 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"
Etapa 2: Adicionar grupo e entidade de serviço existentes a membros e proprietários de outro grupo
Agora você pode usar a existing
palavra-chave para fazer referência ao grupo #2 e à entidade de serviço #2 existentes, obter suas IDs e adicioná-las às coleções de proprietários e membros de outro grupo.
Inicie o VS Code e crie dois novos arquivos, main.bicep e bicepconfig.json, certificando-se de que eles estejam na mesma pasta.
Habilite alguns recursos de visualização configurando bicepconfig.json:
{ "experimentalFeaturesEnabled": { "extensibility": true } }
Em main.bicep, adicione o seguinte código Bicep.
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] }
Implante o arquivo Bicep usando a CLI do Azure ou o Azure PowerShell.
## 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
Quando a implantação for concluída, você deverá ver uma mensagem indicando que ela foi bem-sucedida.