Configurando o OpenID Connect no Azure

Use OpenID Connect dentro dos seus fluxos de trabalho para efetuar a autenticação com o Azure.

Visão Geral

O OpenID Connect (OIDC) permite aos seus fluxos de trabalho de GitHub Actions acessar recursos no Azure, sem precisar armazenar as credenciais do Azure como segredos de GitHub de longa duração.

Este guia fornece uma visão geral de como configurar o Azure para confiar no OIDC de GitHub como uma identidade federada, e inclui um exemplo de fluxo de trabalho para o azure/login ação que usa tokens para efetuar a autenticação ao Azure e acessar recursos.

Pré-requisitos

  • To learn the basic concepts of how GitHub uses OpenID Connect (OIDC), and its architecture and benefits, see "About security hardening with OpenID Connect."

  • Before proceeding, you must plan your security strategy to ensure that access tokens are only allocated in a predictable way. To control how your cloud provider issues access tokens, you must define at least one condition, so that untrusted repositories can’t request access tokens for your cloud resources. For more information, see "Configuring the OIDC trust with the cloud."

Adicionando as credenciais federadas ao Azure

Provedor OIDC de GitHub funciona com a federação de identidade do Azure. Para uma visão geral, consulte a documentação da Microsoft em "Federação de identidade da carga".

Para configurar o provedor de identidade OIDC no Azure, você deverá definir a configuração a seguir. Para obter instruções sobre como fazer essas alterações, consulte a documentação do Azure.

  1. Cria um aplicativo Azure Active Directory e um diretor de serviço.
  2. Adicione ascredenciais federadas ao aplicativo Azure Active Directory.
  3. Crie segredos de GitHub para armazenar a configuração do Azure.

Orientação adicional para a configuração do provedor de identidade:

Atualizar o seu fluxo de trabalho de GitHub Actions

Para atualizar seus fluxos de trabalho para o OIDC, você deverá fazer duas alterações no seu YAML:

  1. Adicionar configurações de permissões para o token.
  2. Use a ação azure/login para trocar o token OIDC (JWT) para um token de acesso da nuvem.

Adicionando configurações de permissões

O fluxo de trabalho exigirá uma configuração permissões com um valor de id-token definido. If you only need to fetch an OIDC token for a single job, then this permission can be set within that job. Por exemplo:

YAML
permissions:
  id-token: write

Você pode precisar especificar permissões adicionais aqui, dependendo das necessidades do seu fluxo de trabalho.

Solicitando o token de acesso

A ação azure/login recebe um JWT do provedor OIDC GitHub e, em seguida, solicita um token de acesso do Azure. Para obter mais informações, consulte a documentação azure/login.

O exemplo a seguir troca um token de ID do OIDC com o Azure para receber um token de acesso, que pode, em seguida, ser usado para acessar os recursos da nuvem.

YAML
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@v1
        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

Esse documento ajudou você?

Política de Privacidade

Ajude-nos a tornar esses documentos ótimos!

Todos os documentos do GitHub são de código aberto. Você percebeu que algo que está errado ou não está claro? Envie um pull request.

Faça uma contribuição

Ou, aprenda como contribuir.