Integrando o GitHub Enterprise com o Azure AD

Usuários de GitHub Enterprise Cloud podem integrar suas organizações ao Azure AD, para obter uma experiência de single sign-on similar à existente no Azure DevOps. Veja neste post como fazer.

Por que integrar o GitHub Enterprise Cloud ao Azure AD?

O GitHub Enterprise Cloud (GHEC) é a versão SaaS do GitHub Enterprise que roda em nuvem, usada por empresas que desejam ter um controle maior sobre seus repositórios e dados sem precisar provisionar e manter sua própria infraestrutura.

Por ser uma ferramenta voltada tipicamente para empresas, preocupações com acesso ao código tornam-se especialmente relevantes. Nesse sentido, é importante que os usuários tenham uma experiência de login única, para que não seja necessário se lembrar de várias senhas diferentes e, acima de tudo, para que sejam usadas contas corporativas para acesso aos repositórios - e não as tradicionais contas pessoais do GitHub.

Quando você integra o GHEC a um provedor de identidade/autenticação, passa a contar com uma experiência de login única, que permite que os usuários se autentiquem usando suas contas corporativas. Dentre as diversas opções de provedores de autenticação suportadas pelo GHEC, destacamos o Azure AD:

O Azure AD é um serviço de identidade e acesso gerenciado na nuvem, que permite que organizações gerenciem usuários e grupos, além de fornecer suporte a várias formas de autenticação, como senhas, multifator e SSO. É bastante comum ver o Azure AD integrado com os diversos serviços da Microsoft, como o Azure DevOps, o Microsoft 365 e o Power Platform. Agora, você vai ver como acrescentar o GHEC a essa lista.

Integrar o GitHub Enterprise Cloud ao Azure AD pode trazer vários benefícios, tais como:

  1. Gerenciamento centralizado de usuários: Ao integrar o GitHub Enterprise Cloud ao Azure AD, é possível gerenciar o acesso dos usuários a partir de um único local centralizado. Isso significa que as equipes de TI podem adicionar ou remover usuários, definir permissões e controlar o acesso a recursos em ambas as plataformas.
  2. Melhor segurança: A integração entre o GitHub Enterprise Cloud e o Azure AD permite que as organizações usem recursos de autenticação e segurança do Azure AD, como a autenticação multifator e o controle de acesso baseado em função (RBAC). Isso ajuda a garantir que somente os usuários autorizados tenham acesso aos recursos e que as informações confidenciais estejam protegidas.
  3. Sincronização de usuários: A integração também permite que as informações de usuário do Azure AD sejam sincronizadas automaticamente com o GitHub Enterprise Cloud, garantindo que os usuários tenham acesso às ferramentas e recursos necessários sem precisar gerenciar várias contas.
  4. Gerenciamento simplificado de acesso: Com a integração, os administradores de TI podem definir regras de acesso e permissões com base em grupos do Azure AD, em vez de precisar gerenciar permissões individuais para cada usuário no GitHub Enterprise Cloud. Isso torna mais fácil e eficiente gerenciar o acesso a recursos e projetos.

E o que muda para o desenvolvedor?

Uma imagem vale mais que mil palavras, certo? Então veja este exemplo:

Isto é o que acontece quando alguém da CloudMotion tenta acessar nossa instância corporativa de GHEC, que está integrada ao nosso Azure AD:

Usuário se autenticando no GitHub Enterprise utilizando o single sign-on do Azure AD
Usuário se autenticando no GitHub Enterprise utilizando o single sign-on do Azure AD (clique para ampliar)

IMPORTANTE: Quando você configura o Single Sign-On no GitHub, ele serve para se autenticar em uma organização específica no GitHub, não substituindo a autenticação do GitHub em si. Em outras palavras, você ainda precisa ter uma conta no GitHub para poder se autenticar no github.com.

Imagine o seguinte: Uma pessoa de sua equipe acessa o GitHub e clica em Sign In. Neste momento, o login será feito com a conta pessoal do GitHub dessa pessoa. Uma vez que ela esteja autenticada no GitHub, decide acessar a página da sua organização no GHEC (por exemplo, github.com/<minha-empresa>). É só neste momento que essa pessoa será redirecionada para o Azure AD para se autenticar a fim de acessar o conteúdo restrito da sua organização.

Ou seja, no fim das contas você terá dois logins: um para o GitHub de forma geral, e outro para a organização. Como parte do processo de configuração, será feito um mapeamento entre o usuário do GitHub e o seu correspondente no Azure AD.

Configurando a integração do GHEC com o Azure AD

Para configurar a integração do GitHub ao Azure AD, você irá iniciar o processo a partir do Portal do Azure. Para isso, acesse o portal com um usuário que tenha a permissão de Global Administrator e navegue até o recurso Azure Active Directory.

Agora, clique em Enterprise Applications (1), All Applications (2) e então New application (3):

Criando uma nova aplicação empresarial no Azure AD
Criando uma nova aplicação empresarial no Azure AD (clique para ampliar)

Na tela seguinte, pesquise por “github” (1) e selecione o resultado “GitHub Enterprise Cloud - Organization” (2). Aguarde alguns instantes enquanto o Azure AD cria a aplicação.

Criando uma aplicação empresarial do tipo "GitHub Enterprise Cloud - Organization"
Criando uma aplicação empresarial do tipo "GitHub Enterprise Cloud - Organization" (clique para ampliar)

Com o aplicativo do GitHub criado no Azure AD, é hora de configurar a integração. Para isso, você precisará:

  1. Configurar o SSO do Azure AD
    • Criar um usuário de testes do Azure AD
    • Atribuir o usuário de testes do Azure AD
  2. Configurar o SSO do GitHub
    • Criar um usuário de testes do GitHub
  3. Testar o SSO

O passo-a-passo detalhado para essa configuração está disponível neste artigo no site Microsoft Learn.

IMPORTANTE: Você deve seguir o tutorial acima à risca - em especial o processo de teste da configuração. Não se apresse! Fazer uma besteira aqui pode te deixar “trancado para fora” da sua instância do GHEC.

Conclusão

Como o github.com é uma plataforma pública, que hospeda no mesmo lugar repositórios públicos e privados, o primeiro acesso sempre vai se dar através de uma conta pessoal do GitHub. Entretanto, uma empresa que utiliza o GHEC pode integrar o seu ambiente com o Azure AD, exigindo que os usuários se re-autentiquem usando suas contas corporativas para acessar seus repositórios privados.

Se um colaborador se desligar da empresa, continua com sua conta pessoal e portanto não perde acesso aos projetos open-source nem a seus repositórios pessoais. Mas perde a conta corporativa e, portanto, não terá mais acesso aos repositórios privados da empresa. É ou não é o melhor de dois mundos?!

E aí, o que achou da integração do GHEC com o Azure AD? Você já usou (ou deseja usar) essa integração? Não se esqueça de deixar seu comentário.

Um abraço e até a próxima!



27/02/2023 | Por Igor Abade V. Leite | Em Técnico | Tempo de leitura: 5 mins.

Postagens relacionadas