Skip to main content

Enterprise Server 3.20 actualmente está disponible como versión candidata para lanzamiento.

Configuración de OpenID Connect en Azure

Use OpenID Connect en los flujos de trabajo para autenticarse con Azure.

Nota:

Actualmente los ejecutores hospedados por GitHub no se admiten en GitHub Enterprise Server.

Información general

OpenID Connect (OIDC) permite que tus flujos de trabajo de GitHub Actions accedan a los recursos en Azure, sin la necesidad de almacenar las credenciales de Azure como secretos de GitHub con vida larga.

En esta guía se proporciona información general sobre cómo configurar Azure para confiar en

  • Antes de proceder, debes planear tu estrategia de seguridad para garantizar que los tokens de acceso solo se asignen de forma predecible. Para controlar la forma en que el proveedor de servicios en la nube emite tokens de acceso, tendrá que definir al menos una condición, para que los repositorios no confiables no puedan solicitar tokens de acceso para los recursos en la nube. Para más información, consulta OpenID Connect.

  • Debes asegurarte de que el proveedor de nube puede acceder a los siguientes puntos de conexión OIDC:

    • https://HOSTNAME/_services/token/.well-known/openid-configuration
    • https://HOSTNAME/_services/token/.well-known/jwks

Nota:

Microsoft Entra ID (anteriormente conocido como Azure AD) no tiene intervalos IP fijos definidos para estos puntos de conexión.

  • Asegúrese de que el valor de la notificación del emisor que se incluye con json Web Token (JWT) está establecido en una dirección URL enrutable públicamente. Para más información, consulta OpenID Connect.

Adición de las credenciales federadas a Azure

El proveedor de OIDC de GitHub funciona con la federación de identidades de carga de trabajo de Azure. Para obtener información general, consulta la documentación de Microsoft en Federación de identidades de carga de trabajo.

Para configurar el proveedor de identidades OIDC en Azure, deberá realizar la siguiente configuración. Para obtener instrucciones sobre cómo realizar estos cambios, consulte la documentación de Azure.

  1. Crea una aplicación y una entidad de servicio de Entra ID.
  2. Agrega credenciales federadas para la aplicación Entra ID.
  3. Cree secretos de GitHub para almacenar la configuración de Azure.

Orientación adicional para configurar el proveedor de identidad:

  • Para incrementar la seguridad, asegúrate de haber consultado OpenID Connect. Para obtener un ejemplo, consulta OpenID Connect.
  • Para la configuración de audience, api://AzureADTokenExchange es el valor recomendado, pero también puede especificar otros valores aquí.

Actualizar tu flujo de trabajo de GitHub Actions

Para actualizar tus flujos de trabajo para ODIC, necesitarás hacer dos cambios a tu YAML:

  1. Agregar ajustes de permisos para el token.
  2. Use la acción azure/login para intercambiar el token OIDC (JWT) para un token de acceso en la nube.

Nota:

Cuando los entornos se usan en flujos de trabajo o en directivas de OIDC, se recomienda agregar reglas de protección al entorno para mayor seguridad. Por ejemplo, puedes configurar reglas de implementación en un entorno para restringir qué ramas y etiquetas se pueden implementar en el entorno o acceder a secretos del entorno. Para más información, consulta Administrar entornos para la implementación.

Agregar ajustes de permisos

La ejecución de un trabajo o flujo de trabajo requiere una configuración de permissions con id-token: write para permitir al proveedor OIDC de GitHub crear un JSON Web Token en cada ejecución.

Nota:

La configuración de id-token: write en los permisos del flujo de trabajo no otorga al flujo de trabajo permiso para modificar o escribir sobre ningún recurso. En su lugar, solo permite al flujo de trabajo solicitar (capturar) y usar (establecer) un token OIDC para una acción o paso. A continuación, este token se usa para autenticarse con servicios externos mediante un token de acceso de corta duración.

Para obtener información detallada sobre los permisos necesarios, ejemplos de configuración y escenarios avanzados, consulta Referencia de OpenID Connect.

Solicitar el token de acceso

La acción azure/login recibe un JWT del proveedor OIDC de GitHub y, a continuación, solicita un token de acceso a Azure. Para obtener más información, consulte la documentación azure/login.

En el ejemplo siguiente se intercambia un token de identificador de OIDC con Azure para recibir un token de acceso, que luego se puede usar para acceder a los recursos en la nube.

YAML
# Este flujo de trabajo usa acciones que no GitHub no certifica.
# Estas las proporcionan entidades terceras y las gobiernan
# condiciones de servicio, políticas de privacidad y documentación de soporte
# en línea.
name: Run Azure Login with OIDC
on: [push]

permissions:
  id-token: write
  contents: read
jobs:
  build-and-deploy:
    runs-on: ubuntu-latest
    steps:
      - name: 'Az CLI login'
        uses: azure/login@8c334a195cbb38e46038007b304988d888bf676a
        with:
          client-id: ${{ secrets.AZURE_CLIENT_ID }}
          tenant-id: ${{ secrets.AZURE_TENANT_ID }}
          subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}

      - name: 'Run az commands'
        run: |
          az account show
          az group list

Información adicional