Compartilhar via


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

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.

  1. Inicie o VS Code e crie dois novos arquivos, main.bicep e bicepconfig.json, certificando-se de que eles estejam na mesma pasta.

  2. Habilite alguns recursos de visualização configurando bicepconfig.json:

    {
      "experimentalFeaturesEnabled": {
          "extensibility": true
      }
    }
    
  3. 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]
    }
    
  4. 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.