Fazer referência a recursos existentes do Microsoft Graph em modelos Bicep
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.
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.
Pré-requisitos
- Tenho uma assinatura do Azure. Se você não tem uma, crie 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).
Ler propriedades de um recurso existente do Microsoft Graph
As etapas a seguir mostram como fazer referência a um grupo e aplicativo existentes por seu nome exclusivo em um arquivo Bicep.
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, que usa a
existing
palavra-chave para fazer referência ao grupo por seu nomeTestGroup-20240816
exclusivo e ao aplicativo porTestApp-20240816
. Esta etapa pressupõe que o grupo e o aplicativo com os nomes exclusivos especificados já existam.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
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
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"
Você usa a ID do grupo na próxima seção.
Atualizar ou criar um recurso do Microsoft Graph usando configurações de recursos existentes
Talvez você também queira implantar um recurso do Microsoft Graph e configurar algumas de suas propriedades usando as configurações de um recurso existente. Por exemplo, você deseja implantar um grupo de segurança #1 (nova implantação ou reimplantação) com um grupo #2 existente e uma entidade de serviço #2 como seus membros. Nesse caso, você usa a existing
palavra-chave para fazer referência ao grupo #2 e à entidade de serviço #2 e obter suas IDs, que você adiciona à coleção de membros do grupo #1.
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ê:
- Atualize a propriedade uniqueName para um grupo e aplicativo existentes usando a CLI do Azure ou o Azure PowerShell.
- Use a
existing
palavra-chave em um arquivo Bicep para obter a ID de um grupo existente e de uma entidade de serviço. - 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-20240817
e TestApp-20240817
, respectivamente. Suponha que o grupo e o aplicativo sejam o grupo #2 e o aplicativo pai da entidade de serviço #2 do cenário anterior.
# 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"
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 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] }
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.