Compartir a través de


Hacer referencia a los recursos existentes de Microsoft Graph en plantillas de Bicep

Bicep le permite leer los recursos existentes mediante la palabra clave existente . En el caso de los recursos de Microsoft Graph, los recursos primero deben identificarse de forma única mediante una propiedad de clave proporcionada por el cliente.

En este artículo, aprenderá a usar la existing palabra clave y la clave proporcionada por el cliente para leer las propiedades de los recursos existentes de Microsoft Graph.

Importante

Microsoft Graph Bicep está actualmente en versión preliminar. Consulte Términos de uso complementarios para las versiones preliminares de Microsoft Azure para conocer los términos legales que se aplican a las características de Azure que se encuentran en la versión beta, en versión preliminar o que todavía no se han publicado para que estén disponibles con carácter general.

Requisitos previos

  • Tener una suscripción a Azure. En caso de no tener ninguna, puede crear una gratis.
  • Tener los permisos o roles con privilegios mínimos para leer o actualizar el recurso existente o ser el propietario del recurso. Consulte Roles con privilegios mínimos por tarea y Permisos de usuario predeterminados para ver qué roles debe asignar.
  • Instale las herramientas de Bicep para crear e implementar. En este inicio rápido se usa VS Code con la extensión de Bicep para la creación y la CLI de Azure para la implementación. También se proporcionan ejemplos para Azure PowerShell.
  • Puede implementar los archivos de Bicep de forma interactiva o a través de la implementación de solo aplicación (solo aplicación).

Leer las propiedades de un recurso de Microsoft Graph existente

En los pasos siguientes se muestra cómo hacer referencia a un grupo y una aplicación existentes por su nombre único en un archivo de Bicep.

  1. Inicie VS Code y cree dos archivos nuevos, main.bicep y bicepconfig.json, asegurándose de que están en la misma carpeta.

  2. Habilite algunas características en versión preliminar mediante la configuración de bicepconfig.json:

    {
        "experimentalFeaturesEnabled": {
            "extensibility": true
        }
    }
    
  3. En main.bicep, agregue el siguiente código de Bicep, que usa la existing palabra clave para hacer referencia al grupo por su nombre TestGroup-20240816 único y la aplicación por TestApp-20240816. En este paso se supone que el grupo y la aplicación con los nombres únicos especificados ya existen.

    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. Implemente el archivo de Bicep mediante la CLI de Azure 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"

Use el identificador del grupo en la sección siguiente.

Actualizar o crear un recurso de Microsoft Graph mediante la configuración de los recursos existentes

También puede implementar un recurso de Microsoft Graph y configurar algunas de sus propiedades mediante la configuración de un recurso existente. Por ejemplo, quiere implementar un grupo de seguridad n.º 1 (nueva implementación o reimplementación) con un grupo n.º 2 existente y una entidad de servicio n.º 2 como miembros. En este caso, usará la existing palabra clave para hacer referencia al grupo #2 y a la entidad de servicio #2 y obtendrá sus identificadores, que luego agregará a la colección de miembros del grupo #1.

Para hacer referencia al grupo n.º 2 existente en un archivo de Bicep, debe tener establecida su propiedad uniqueName . Para hacer referencia a la entidad de servicio existente n.º 2 si no conoce su appId, su aplicación primaria debe tener establecida su propiedad uniqueName .

En esta sección:

  • Actualice la propiedad uniqueName de un grupo y una aplicación existentes mediante la CLI de Azure o Azure PowerShell.
  • Use la existing palabra clave en un archivo de Bicep para obtener el identificador de un grupo y una entidad de servicio existentes.
  • En el archivo de Bicep, configure las opciones para implementar un grupo de seguridad con un grupo existente y una entidad de servicio como sus miembros y la entidad de servicio como propietario.
  • Implemente el archivo de Bicep.

Paso 1: Establecer la propiedad uniqueName para el grupo y la aplicación

La solicitud siguiente establece uniqueName para un grupo y una aplicación TestGroup-20240817 existentes en y TestApp-20240817, respectivamente. Supongamos que el grupo y la aplicación son el grupo 2 y la aplicación primaria de la entidad de servicio n.º 2 del escenario 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"

Paso 2: Agregar un grupo y una entidad de servicio existentes a los miembros y propietarios de otro grupo

Ahora puede usar la existing palabra clave para hacer referencia al grupo n.º 2 existente y a la entidad de servicio n.º 2, obtener sus identificadores y agregarlos a las colecciones de propietarios y miembros de otro grupo.

  1. Inicie VS Code y cree dos archivos nuevos, main.bicep y bicepconfig.json, asegurándose de que están en la misma carpeta.

  2. Habilite algunas características en versión preliminar mediante la configuración de bicepconfig.json:

    {
      "experimentalFeaturesEnabled": {
          "extensibility": true
      }
    }
    
  3. En main.bicep, agregue el siguiente código de 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. Implemente el archivo de Bicep mediante la CLI de Azure 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
    

Una vez finalizada la implementación, debería mostrarse un mensaje indicando que la implementación se realizó correctamente.