Implementar políticas personalizadas com GitHub Actions

GitHub Actions permite-lhe criar fluxos de trabalho de integração contínua (CI) e implementação contínua (CD) personalizados diretamente no seu repositório do GitHub. Este artigo descreve como automatizar a implementação de políticas personalizadas do Azure Active Directory B2C (Azure AD B2C) com GitHub Actions.

Para automatizar o processo de implementação de políticas personalizadas, utilize o GitHub Action para implementar políticas personalizadas Azure AD B2C. Esta Ação do GitHub foi desenvolvida pelo Azure AD comunidade B2C.

Esta ação implementa Azure AD políticas personalizadas B2C no inquilino do Azure AD B2C com o microsoft Graph API. Se a política ainda não existir no seu inquilino, será criada. Caso contrário, será substituído.

Importante

A gestão Azure AD políticas personalizadas B2C com o Azure Pipelines utiliza atualmente operações de pré-visualização disponíveis no ponto final do Microsoft Graph API/beta. A utilização destas APIs em aplicações de produção não é suportada. Para obter mais informações, veja Referência do ponto final beta da API REST do Microsoft Graph.

Pré-requisitos

Selecionar uma pasta de políticas personalizadas

O seu repositório do GitHub pode conter todos os seus Azure AD ficheiros de política B2C e outros recursos. No diretório de raiz do seu repositório, crie ou escolha uma pasta existente que contenha as suas políticas personalizadas.

Por exemplo, selecione uma pasta com o nome políticas. Adicione os seus Azure AD ficheiros de política personalizada B2C à pasta de políticas. Em seguida, consolide as alterações.

Não Emita as alterações. Irá fazê-lo mais tarde, depois de configurar o fluxo de trabalho de implementação.

Registar uma aplicação do Microsoft Graph

Para permitir que o GitHub Action interaja com o Microsoft Graph API, crie um registo de aplicação no seu inquilino Azure AD B2C. Se ainda não o fez, registe uma aplicação do Microsoft Graph.

Para que o GitHub Action aceda a dados no Microsoft Graph, conceda à aplicação registada as permissões de aplicação relevantes. Conceda a permissão Política dePolítica> do MicrosoftGraph.ReadWrite.TrustFramework> nas Permissões de API do registo da aplicação.

Criar um segredo encriptado do GitHub

Os segredos do GitHub são variáveis de ambiente encriptadas que cria num ambiente de organização, repositório ou repositório. Neste passo, vai armazenar o segredo da aplicação para a aplicação que registou anteriormente no passo Registar uma aplicação do MS Graph .

A Ação do GitHub para implementar políticas personalizadas Azure AD B2C utiliza o segredo para adquirir um token de acesso que é utilizado para interagir com o microsoft Graph API. Para obter mais informações, veja Creating encrypted secrets for a repository (Criar segredos encriptados para um repositório).

Para criar um segredo do GitHub, siga estes passos:

  1. No GitHub, navegue para a página principal do repositório.
  2. Por baixo do nome do repositório, selecione Definições.
  3. Na barra lateral esquerda, selecione Segredos.
  4. Selecione Novo segredo do repositório.
  5. Em Nome, escreva ClientSecret.
  6. Para o Valor, introduza o segredo da aplicação que criou anteriormente.
  7. Selecione Add secret (Adicionar segredo).

Criar um fluxo de trabalho do GitHub

O fluxo de trabalho do GitHub é um procedimento automatizado que adiciona ao seu repositório. Os fluxos de trabalho são compostos por uma ou mais tarefas e podem ser agendados ou acionados por um evento. Neste passo, vai criar um fluxo de trabalho que implementa a sua política personalizada.

Para criar um fluxo de trabalho, siga estes passos:

  1. No GitHub, navegue para a página principal do seu repositório.

  2. Por baixo do nome do repositório, selecione Ações.

    Captura de ecrã a mostrar o separador GitHub Actions

  3. Se não tiver configurado um fluxo de trabalho anteriormente, selecione configurar um fluxo de trabalho manualmente. Caso contrário, selecione Novo Fluxo de Trabalho.

    Captura de ecrã a mostrar como criar um novo fluxo de trabalho

  4. O GitHub oferece-se para criar um ficheiro de fluxo de trabalho com o .github/workflows nome main.yml na pasta . Este ficheiro contém informações sobre o fluxo de trabalho, incluindo o seu ambiente Azure AD B2C e as políticas personalizadas a implementar. No editor Web do GitHub, adicione o seguinte 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. Atualize as seguintes propriedades do ficheiro YAML:

    Section Name Valor
    env clientId ID da aplicação (cliente) da aplicação que registou no passo Registar uma aplicação do MS Graph.
    env tenant O nome do inquilino Azure AD B2C (por exemplo, contoso.onmicrosoft.com).
    with folder Uma pasta onde os ficheiros de políticas personalizadas são armazenados, por exemplo, ./Policies.
    with files Lista delimitada por vírgulas de ficheiros de política a implementar, por exemplo, TrustFrameworkBase.xml,TrustFrameworkLocalization.xml,TrustFrameworkExtensions.xml,SignUpOrSignin.xml.

    Importante

    Ao executar os agentes e carregar os ficheiros de política, certifique-se de que são carregados pela ordem correta:

    1. TrustFrameworkBase.xml
    2. TrustFrameworkLocalization.xml
    3. TrustFrameworkExtensions.xml
    4. SignUpOrSignin.xml
    5. ProfileEdit.xml
    6. PasswordReset.xml
  6. Selecione Start commit (Iniciar consolidação).

  7. Abaixo dos campos da mensagem de consolidação, indique se pretende adicionar a consolidação ao ramo atual ou a um novo ramo. Selecione Consolidar novo ficheiro ou Propor novo ficheiro para criar um pedido Pull.

Testar o fluxo de trabalho

Para testar o fluxo de trabalho que criou, emita as alterações da política personalizada. Assim que a sua tarefa começar a ser executada, pode ver um gráfico de visualização do progresso da execução e ver a atividade de cada passo no GitHub.

  1. No GitHub, navegue para a página principal do seu repositório.

  2. Por baixo do nome do repositório, selecione Ações.

  3. Na barra lateral esquerda, selecione o fluxo de trabalho que criou.

  4. Em Execuções de fluxo de trabalho, selecione o nome da execução que pretende ver.

    Captura de ecrã a mostrar como selecionar a atividade do fluxo de trabalho

  5. Em Tarefas ou no gráfico de visualização, selecione a tarefa que pretende ver.

  6. Ver os resultados de cada passo. A captura de ecrã seguinte demonstra o registo do passo Carregar política personalizada .

    O registo de passos da política personalizada de carregamento

Opcional: Agendar o fluxo de trabalho

O fluxo de trabalho que criou é acionado pelo evento push . Se preferir, pode escolher outro evento para acionar o fluxo de trabalho, por exemplo, um pedido Pull.

Também pode agendar um fluxo de trabalho para ser executado em horas UTC específicas com a sintaxe cron posix. O evento schedule permite-lhe acionar um fluxo de trabalho numa hora agendada. Para obter mais informações, veja Scheduled events (Eventos agendados).

O exemplo seguinte aciona o fluxo de trabalho todos os dias às 5:30 e às 17:30 UTC:

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

Para editar o fluxo de trabalho:

  1. No GitHub, navegue para a página principal do seu repositório.

  2. Por baixo do nome do repositório, selecione Ações.

  3. Na barra lateral esquerda, selecione o fluxo de trabalho que criou.

  4. Em Execuções de fluxo de trabalho, selecione o nome da execução que pretende ver.

  5. No menu, selecione os três pontos ...e, em seguida, selecione Ver o ficheiro de fluxo de trabalho.

    Captura de ecrã a mostrar como ver o ficheiro de fluxo de trabalho

  6. No editor Web do GitHub, selecione Editar.

  7. Altere on: push para o exemplo acima.

  8. Consolide as suas alterações.

Passos seguintes