Implantar políticas personalizadas com o GitHub Actions

O GitHub Actions permite a criação de fluxos de trabalho de CI (integração contínua) e de CD (implantação contínua) diretamente no seu repositório do GitHub. Este artigo descreve como automatizar o processo de implantação das políticas personalizadas do Azure AD B2C (Azure Active Directory B2C) usando o GitHub Actions.

Para automatizar o processo de implantação de política personalizada, use a Ação do GitHub para implantar políticas personalizadas do Azure AD B2C. Esta ação do GitHub foi desenvolvida pela Comunidade do Azure AD B2C.

Essa ação implanta políticas personalizadas Azure AD B2C em seu locatário do Azure AD B2C usando a API do Microsoft Graph. Se a política ainda não existir em seu locatário, ela será criada. Caso contrário, ela será substituída.

Importante

Atualmente, o gerenciamento de políticas personalizadas do Azure AD B2C com o Azure Pipelines usa operações de versão prévia disponíveis no ponto de extremidade /beta da API do Microsoft Graph. Não há suporte para o uso dessas APIs em aplicativos de produção. Para obter mais informações, consulte a referência de ponto de extremidade beta da API REST do Microsoft Graph.

Pré-requisitos

Selecionar uma pasta de políticas personalizadas

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

Por exemplo, selecione uma pasta chamada políticas. Adicione os arquivos de política personalizados do Azure AD B2C à pasta de políticas. Confirme as alterações.

Não efetue push das alterações. Você fará isso mais tarde, depois de configurar o fluxo de trabalho de implantação.

Registrar um aplicativo Microsoft Graph

Para que a ação do GitHub possa interagir com a API do Microsoft Graph, crie um registro de aplicativo no seu locatário do Azure AD B2C. Se você ainda não fez isso, registre um aplicativo do Microsoft Graph.

Para que sua ação do GitHub acesse dados no Microsoft Graph, conceda ao aplicativo registrado as permissões de aplicativo relevantes. Conceda a permissão Microsoft Graph>Policy>Policy.ReadWrite.TrustFramework em Permissões de API do registro de aplicativo.

Criar um segredo criptografado do GitHub

Os segredos do GitHub são variáveis de ambiente criptografadas que você cria em uma organização, repositório ou ambiente de repositório. Nesta etapa, você armazena o segredo de aplicativo para o aplicativo registrado anteriormente na etapa Registrar um aplicativo do MS Graph.

A ação do GitHub para implantar políticas personalizadas do Azure AD B2C usa o segredo para adquirir um token de acesso que é então usado para interagir com a API do Microsoft Graph. Para obter mais informações, consulte Criar segredos criptografados para um repositório.

Para criar um segredo do GitHub, siga estas etapas:

  1. No GitHub, acesse a página principal do repositório.
  2. No nome do seu repositório, selecione Configurações.
  3. Clique em Segredos na barra lateral esquerda.
  4. Selecione Novo segredo de repositório.
  5. Em Nome, digite ClientSecret.
  6. Em Valor, insira o segredo do aplicativo que você criou anteriormente.
  7. Selecione Adicionar segredo.

Criar um fluxo de trabalho do GitHub

O fluxo de trabalho do GitHub é um processo automatizado que você adiciona ao seu repositório. Os fluxos de trabalho são formados por um ou mais trabalhos e podem ser agendados ou disparados por um evento. Nesta etapa, você vai criar um fluxo de trabalho para implantar a sua política personalizada.

Para criar um fluxo de trabalho, siga estas etapas:

  1. No GitHub, acesse a página principal do repositório.

  2. No nome do seu repositório, selecione Ações.

    Captura de tela mostrando a guia GitHub Actions

  3. Se você não tiver configurado um fluxo de trabalho anteriormente, selecione Configurar um fluxo de trabalho por conta própria. Caso contrário, selecione Novo fluxo de trabalho.

    Captura de tela mostrando como criar um fluxo de trabalho

  4. O GitHub oferece a opção de criar um arquivo de fluxo de trabalho com o nome de main.yml na pasta .github/workflows. Esse arquivo contém informações sobre o fluxo de trabalho, tais como o seu ambiente do Azure AD B2C e as políticas personalizadas a serem implantadas. 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 arquivo YAML:

    Seção Nome Valor
    env clientId ID do aplicativo (cliente) referente ao aplicativo registrado na etapa Registrar um aplicativo do MS Graph.
    env tenant Seu nome de locatário no Azure AD B2C (por exemplo, contoso.onmicrosoft.com).
    with folder Uma pasta onde os arquivos de políticas personalizadas estão armazenados, por exemplo, ./Policies.
    with files Lista delimitada por vírgulas de arquivos de política a serem implantados, por exemplo, TrustFrameworkBase.xml,TrustFrameworkLocalization.xml,TrustFrameworkExtensions.xml,SignUpOrSignin.xml.

    Importante

    Ao executar os agentes e carregar os arquivos de política, verifique se eles foram carregados na ordem correta:

    1. TrustFrameworkBase.xml
    2. TrustFrameworkLocalization.xml
    3. TrustFrameworkExtensions.xml
    4. SignUpOrSignin.xml
    5. ProfileEdit.xml
    6. PasswordReset.xml
  6. Selecione Confirmar início.

  7. Abaixo dos campos de mensagem de confirmação, indique se você quer adicionar a confirmação a uma ramificação atual ou a uma nova ramificação. Selecione Confirmar novo arquivo, ou Propor novo arquivo para criar uma solicitação de pull.

Testar seu fluxo de trabalho

Para testar o fluxo de trabalho que você criou, Efetue push nas mudanças da sua política personalizada. Depois que o trabalho começar a ser executado, você poderá ver um grafo de visualização do progresso da execução e exibir a atividade de cada etapa no GitHub.

  1. No GitHub, acesse a página principal do repositório.

  2. No nome do seu repositório, selecione Ações.

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

  4. Em Execuções de fluxos de trabalho, selecione o nome da execução que você deseja exibir.

    Captura de tela mostrando como selecionar a atividade de fluxo de trabalho

  5. Em Trabalhos ou no grafo de visualização, selecione o trabalho que você deseja exibir.

  6. Exiba os resultados detalhados de cada etapa. A captura de tela a seguir demonstra o log das etapas da Política personalizada de upload.

    Log de etapas da política personalizada de upload

Opcional: agendar seu fluxo de trabalho

O fluxo de trabalho que você criou é disparado por um evento push. Se preferir, você poderá escolher outro evento para disparar o fluxo de trabalho, por exemplo, uma solicitação de pull.

Você também pode agendar um fluxo de trabalho para ser executado em horários UTC específicos usando a sintaxe POSIX cron. O agendamento de eventos permite disparar um fluxo de trabalho em um horário agendado. Para saber mais, confira Eventos agendados.

O exemplo a seguir dispara o fluxo de trabalho todos os dias às 5:30 e 17:30 UTC:

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

Para editar seu fluxo de trabalho:

  1. No GitHub, acesse a página principal do repositório.

  2. No nome do seu repositório, selecione Ações.

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

  4. Em Execuções de fluxos de trabalho, selecione o nome da execução que você deseja exibir.

  5. No menu, selecione os três pontos ... e então selecione Exibir o arquivo do fluxo de trabalho.

    Captura de tela mostrando como exibir o arquivo do fluxo de trabalho

  6. No editor Web do GitHub, selecione Editar.

  7. Altere on: push para o exemplo acima.

  8. Confirme suas alterações.

Próximas etapas