Implementación de directivas personalizadas con Acciones de GitHub

Acciones de GitHub permite crear flujos de trabajo de integración continua (CI) e implementación continua (CD) personalizados directamente en el repositorio GitHub. En este artículo se describe cómo automatizar la implementación de las directivas personalizadas de Azure Active Directory B2C (Azure AD B2C) mediante Acciones de GitHub.

Para automatizar el proceso de implementación de directivas personalizadas, use GitHub Action para implementar directivas personalizadas de Azure AD B2C. Esta instancia de GitHub Action la ha desarrollado la comunidad de Azure AD B2C.

Esta acción implementa directivas personalizadas de Azure AD B2C en el inquilino de Azure AD B2C mediante Microsoft Graph API. Si la directiva aún no existe en el inquilino, se creará. De lo contrario, se reemplazará.

Importante

La administración de las directivas personalizadas de Azure AD B2C con Azure Pipelines usa actualmente la vista previa de las operaciones de disponibles en el punto de conexión /beta de Microsoft Graph API. No se admite su uso en aplicaciones de producción. Para obtener más información, consulte Referencia del punto de conexión de la API de REST Microsoft Graph beta.

Prerrequisitos

Selección de una carpeta de directivas personalizadas

El repositorio de GitHub puede contener todos los archivos de la directiva de Azure AD B2C y otros recursos. En el directorio raíz del repositorio, cree o elija una carpeta existente que contenga las directivas personalizadas.

Por ejemplo, seleccione una carpeta denominada policies. Agregue los archivos de la directiva personalizada de Azure AD B2C a la carpeta policies. Después, confirme los cambios.

No inserte los cambios. Lo hará más adelante, después de configurar el flujo de trabajo de implementación.

Registro de una aplicación de Microsoft Graph

Para que la instancia de GitHub Action pueda interactuar con Microsoft Graph API, cree un registro de aplicación en el inquilino de Azure AD B2C. Si aún no lo ha hecho, registre una aplicación de Microsoft Graph.

Para la instancia de GitHub Action tenga acceso a los datos de Microsoft Graph, conceda a la aplicación registrada los permisos de aplicación pertinentes. Se concede el permiso Microsoft Graph>Policy>Policy.ReadWrite.TrustFramework dentro de los permisos de API del registro de la aplicación.

Creación de un secreto cifrado de GitHub

Los secretos de GitHub son variables de entorno cifradas que se crean en una organización, repositorio o entorno del repositorio. En este paso, almacenará el secreto de aplicación para la aplicación que registró anteriormente en el paso Registrar una aplicación Graph MS.

La instancia de GitHub Action para implementar directivas personalizadas de Azure AD B2C usa el secreto para adquirir un token de acceso que se usa para interactuar con Microsoft Graph API. Para más información, consulte Creación de secretos cifrados para un repositorio.

Para crear un secreto de GitHub, siga estos pasos.

  1. En GitHub, vaya a la página principal del repositorio.
  2. En el nombre del repositorio, seleccione Configuración.
  3. En la barra lateral izquierda, haga clic en Secretos.
  4. Seleccione New repository secret (Nuevo secreto del repositorio).
  5. En Nombre, escriba ClientSecret.
  6. En Valor, escriba el secreto de aplicación que creó anteriormente.
  7. Seleccione Add secret (Agregar secreto).

Creación de un flujo de trabajo de GitHub

Un flujo de trabajo de GitHub es un procedimiento automatizado que se agrega al repositorio. Los flujos de trabajo están integrados por uno o varios trabajos y se pueden programar o desencadenar mediante un evento. En este paso, creará un flujo de trabajo que implementa la directiva personalizada.

Para crear un flujo de trabajo, siga estos pasos:

  1. En GitHub, vaya a la página principal del repositorio.

  2. En el nombre del repositorio, seleccione Acciones.

    Captura de pantalla que muestra la pestaña Acciones de GitHub

  3. Si no ha configurado un flujo de trabajo antes, configure un flujo de trabajo usted mismo. En caso contrario, seleccione un nuevo flujo de trabajo.

    Captura de pantalla que muestra cómo crear un flujo de trabao

  4. GitHub ofrece crear un archivo de flujo de trabajo denominado main.yml en la carpeta .github/workflows. Este archivo contiene información sobre el flujo de trabajo, incluido el entorno de Azure AD B2C y las directivas personalizadas que se implementarán. En el editor web de GitHub, agregue el siguiente código YAML:

    on: push
    
    env:
      clientId: 00000000-0000-0000-0000-000000000000
      tenant: your-tenant.onmicrosoft.com
    
    jobs:
      build-and-deploy:
        runs-on: ubuntu-latest
        steps:
        - uses: actions/checkout@v2
    
        - name: 'Upload TrustFrameworkBase Policy'
          uses: azure-ad-b2c/deploy-trustframework-policy@v3
          with:
            folder: "./Policies"
            files: "TrustFrameworkBase.xml,TrustFrameworkLocalization.xml,TrustFrameworkExtensions.xml,SignUpOrSignin.xml"
            tenant: ${{ env.tenant }}
            clientId: ${{ env.clientId }}
            clientSecret: ${{ secrets.clientSecret }}
    
  5. Actualice las siguientes propiedades del archivo YAML:

    Sección Nombre Value
    env clientId Id. de aplicación (cliente) de la aplicación que ha registrado en el paso Registrar una aplicación MS Graph.
    env tenant Su nombre de inquilino de Azure AD B2C (por ejemplo, contoso.onmicrosoft.com).
    with folder Carpeta donde se almacenan los archivos de directivas personalizadas, por ejemplo, ./Policies.
    with files Lista delimitada por comas de los archivos de directiva que se implementarán, por ejemplo, TrustFrameworkBase.xml,TrustFrameworkLocalization.xml,TrustFrameworkExtensions.xml,SignUpOrSignin.xml.

    Importante

    Al ejecutar los agentes y cargar los archivos de directivas, asegúrese de que se carguen en el orden correcto:

    1. TrustFrameworkBase.xml
    2. TrustFrameworkLocalization.xml
    3. TrustFrameworkExtensions.xml
    4. SignUpOrSignin.xml
    5. ProfileEdit.xml
    6. PasswordReset.xml
  6. Seleccione Start commit (Iniciar confirmación).

  7. Debajo de los campos de mensaje de confirmación, indique si desea agregar la confirmación a la rama actual o a una nueva. Seleccione Commit new file (Confirmar nuevo archivo) o Propose new file (Proponer nuevo archivo) para crear una solicitud de incorporación de cambios.

Prueba del flujo de trabajo

Para probar el flujo de trabajo que creó, inserte los cambios de la directiva personalizada. Cuando el trabajo haya empezado a ejecutarse, podrá ver un gráfico de visualización del progreso de la ejecución y ver la actividad de cada paso en GitHub.

  1. En GitHub, vaya a la página principal del repositorio.

  2. En el nombre del repositorio, seleccione Acciones.

  3. En la barra lateral izquierda, seleccione el flujo de trabajo que ha creado.

  4. En Workflow runs (Ejecuciones de flujo de trabajo), seleccione el nombre de la ejecución que desea ver.

    Captura de pantalla que muestra cómo seleccionar la actividad de flujo de trabajo

  5. En Jobs (Trabajos) o en el gráfico de visualización, seleccione el trabajo que desea ver.

  6. Vea los resultados de cada paso. En la captura de pantalla siguiente se muestra el registro del paso Cargar directiva personalizada.

    El registro de pasos de la directiva personalizada de carga

Opcional: Programación del flujo de trabajo

El flujo de trabajo que ha creado lo desencadena el evento de inserción. Si lo prefiere, puede elegir otro evento para desencadenar el flujo de trabajo, por ejemplo, una solicitud de incorporación de cambios.

También puede programar un flujo de trabajo para que se ejecute a horas UTC específicas mediante la sintaxis cron de POSIX. El evento de programación permite desencadenar un flujo de trabajo a una hora programada. Para obtener más información, consulte Eventos programados.

En el ejemplo siguiente se desencadena el flujo de trabajo todos los días a las 5:30 y 17:30 UTC:

on:
  schedule:
    # * is a special character in YAML so you have to quote this string
    - cron:  '30 5,17 * * *'

Para editar el flujo de trabajo:

  1. En GitHub, vaya a la página principal del repositorio.

  2. En el nombre del repositorio, seleccione Acciones.

  3. En la barra lateral izquierda, seleccione el flujo de trabajo que ha creado.

  4. En Workflow runs (Ejecuciones de flujo de trabajo), seleccione el nombre de la ejecución que desea ver.

  5. En el menú, seleccione los tres puntos ... y, a continuación, seleccione View the workflow file (Ver el archivo de flujo de trabajo).

    Captura de pantalla que muestra cómo ver el archivo de flujo de trabajo

  6. En el editor web de GitHub, seleccione Edit (Editar).

  7. En el ejemplo anterior, cambie on: push.

  8. Confirme los cambios.

Pasos siguientes