Partilhar via


Integrar recursos existentes do Microsoft Graph para uso em modelos Bicep

Você pode fazer referência a recursos existentes do Microsoft Graph em modelos Bicep através da propriedade de chave suportada fornecida pelo cliente. Os recursos criados via HTTP POST podem não ter essa propriedade definida e exigir 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 pré-visualização. Veja Termos de Utilização Complementares da Pré-visualizações do Microsoft Azure para obter os termos legais que se aplicam às funcionalidades do Azure que estão na versão beta, na pré-visualização ou que ainda não foram lançadas para 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

  • Ter uma subscrição do Azure. Se 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 menos privilegiadas por tarefa e Permissões de usuário padrão para ver quais funções precisam ser atribuídas.
  • Instale as ferramentas do Bicep para criação e implantação. Este guia de 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 zero-touch (somente aplicativo).

Integre recursos existentes do Microsoft Graph e use esses recursos em um arquivo Bicep

Neste exemplo, poderá ter alguns recursos do Microsoft Graph que não foram criados através da implantação de um ficheiro Bicep, que agora precisas de utilizar ou gerir num ficheiro Bicep. Por exemplo, pretende atualizar uma aplicação existente ou implementar o grupo de segurança #1 (nova implementação ou reimplementação) juntamente com o grupo #2 existente e a entidade de serviço #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 deve ter sua propriedade uniqueName definida.

Nesta secção, pode:

  • Adicione a propriedade uniqueName para um grupo e aplicativo existentes usando a CLI do Azure ou o Azure PowerShell.
  • Atualize a aplicação existente em um arquivo Bicep.
  • Utilize a palavra-chave existing no mesmo ficheiro Bicep para obter o ID de um grupo e um principal de serviço existentes.
  • No arquivo Bicep, defina as configurações para implantar um grupo de segurança com um grupo e uma entidade de serviço existentes 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 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 existente e entidade de serviço a membros e proprietários de outro grupo

Agora você pode usar a existing palavra-chave para fazer referência ao grupo #2 existente e à entidade de serviço #2, 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 estão 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 terminar, você verá uma mensagem indicando que a implantação foi bem-sucedida.