Compartilhar via


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

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.

  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, que usa a existing palavra-chave para fazer referência ao grupo por seu nome TestGroup-20240816 exclusivo e ao aplicativo por TestApp-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
    
  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
    


  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.

  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 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]
    }
    
  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.