Tutorial: Usar a autenticação OIDC/FIC com o GitHub Actions para Microsoft Power Platform

Neste tutorial, você configura o GitHub OIDC e as credenciais de identidade federadas do Microsoft Entra (FIC) para que o GitHub Actions possa se autenticar no Power Platform sem armazenar um segredo do cliente.

Neste tutorial, você irá:

  • Configurar o OIDC em seu repositório GitHub
  • Criar um registro de aplicativo do Microsoft Entra e configurar o FIC
  • Conceder acesso ao aplicativo no Centro de administração do Power Platform
  • Criar um fluxo de trabalho do GitHub para executar ações do Power Platform

Etapa 1: Configurar o OIDC em seu repositório GitHub

Configuração do OIDC

  1. No GitHub, abra o repositório e verifique se o GitHub Actions está habilitado.

    Para habilitar o GitHub Actions no repositório, selecioneAções de > e, em Geral, você recebe uma opção para habilitar. Se você não vir Ações em Configurações, não terá a permissão de proteção de repositório necessária.

  2. Revisar as configurações do OIDC e as diretrizes de personalização da declaração de assunto. Consulte o OpenID Connect no GitHub Actions.

  3. Configurar o modelo de declaração de assunto OIDC como repository, workflow para este tutorial, conforme mostrado na figura acima. Ele cria uma declaração de assunto exclusiva para cada fluxo de trabalho em seu repositório, que você pode referenciar em sua configuração de credencial federada na ID do Microsoft Entra.

    O formato do assunto se resolve em valores como:

    • repo:MyOrg/MyRepo:workflow:MyWorkflow
  4. Salve a configuração do OIDC do repositório.

Etapa 2: Criar um registro de aplicativo do Microsoft Entra e adicionar FIC

  1. No portal do Azure, vá para Microsoft Entra ID>Registros de aplicativo>Novo registro.

  2. Crie o registro de aplicativo e copie os valores de ID do Aplicativo (cliente) e ID do Diretório (tenant).

  3. Abra as permissões de API>Adicionar uma permissão>Dynamics CRM e conceda permissão do Dataverse.

  4. Abra certificados &segredos (ou credenciais federadas, dependendo da experiência do portal) e selecione Other no cenário de credencial federada.

Configuração FIC

  1. Use este identificador de assunto explícito:

    repo:MyOrg/MyRepo:workflow:MyWorkflow

  2. Salve a credencial federada.

Note

A declaração de assunto no GitHub e o identificador do assunto em sua credencial federada devem corresponder exatamente.

Etapa 3: Conceder acesso ao aplicativo no Centro de administração do Power Platform

  1. Acesse o centro de administração da Power Platform..

  2. Adicione o registro do aplicativo Entra ID como um usuário do aplicativo e atribua funções de segurança necessárias em cada ambiente de destino.

  3. Para obter etapas detalhadas, consulte Gerenciar usuários de aplicativos no Centro de administração do Power Platform.

Etapa 4: Criar um fluxo de trabalho do GitHub para executar operações do Power Platform

  1. No repositório, crie ou atualize um fluxo de trabalho em .github/workflows/.

  2. Verifique se o fluxo de trabalho solicita permissões de token OIDC para o trabalho que executa ações do Power Platform.

  3. Configure as suas GitHub Actions do Power Platform para usar:

    • ID de locatário
    • ID do aplicativo (cliente)
    • URL do Ambiente
    • Parâmetros de autenticação baseados em OIDC/FIC compatíveis com a ação
  4. Cole o seu YAML de fluxo de trabalho de exemplo nesta seção e atualize as variáveis de ambiente para o seu contexto.

# https://docs.github.com/en/actions/how-tos/secure-your-work/security-harden-deployments/oidc-in-azure
name: fic-auth

on:
  # Allows you to run this workflow manually from the Actions tab
  workflow_dispatch:

jobs:
  who-am-i:

    runs-on: ubuntu-latest
    
    permissions:
      id-token: write # Grant permissions to the OIDC endpoint for federation
      contents: read
      
    steps:
    - name: Install Power Platform Tools
      uses: microsoft/powerplatform-actions/actions-install@v1
      with:
        pac-version-override: 2.4.1

    - name: WhoAmI
      uses: microsoft/powerplatform-actions/who-am-i@v1
      with:
        environment-url: https://MyOrg.crm.dynamics.com/
        app-id: 00000000-0000-0000-0000-000000000000 # Client (application) ID from your app registration
        tenant-id: 00000000-0000-0000-0000-000000000000 # Directory (tenant) ID from your app registration 

Quando o fluxo de trabalho é executado, o GitHub emite um token OIDC. O Microsoft Entra valida esse token contra sua credencial federada, e a ação autentica-se no Dataverse/Power Platform sem um segredo do cliente.

Consulte também