A partir da versão 2.8.92, Semaphore oferece suporte à autenticação via OpenID. Neste artigo, vamos explorar como configurar o Ansible Semaphore para autenticar usuários via GitLab.

A configuração da autenticação via OpenID começa com a configuração do próprio provedor, no nosso caso, o GitLab.

1. Criar uma aplicação no GitLab

Para habilitar a autenticação pelo GitLab, você precisa criar uma aplicação nas configurações da sua conta do GitLab.

  1. Vá para a seção Applications nas configurações da sua conta do GitLab: https://gitlab.com/-/profile/applications
  2. Preencha os campos obrigatórios:
    • URL de redirecionamento: http://localhost:3000/api/auth/oidc/gitlab/redirect.
    • Escopos: openid, profile, email.

    criação de aplicação no GitLab

  3. Depois de clicar em Save application você verá a tela a seguir:
  4. configuração da aplicação no GitLab
  5. Copie e salve a chave secreta em algum lugar (ela será necessária para configurar o Semaphore) e clique em Continue.
  6. Aplicação pronta.
  7. lista de aplicações do GitLab

2. Adicione as configurações OpenID ao arquivo de configuração do Semaphore

Como você sabe, as configurações do Semaphore são armazenadas em um arquivo de configuração (geralmente config.json) em formato JSON.

Precisamos adicionar as seguintes configurações para que o Semaphore saiba como usar o GitLab como provedor OpenID:

"oidc_providers": {
   "gitlab": {
       "display_name": "GitLab",
       "provider_url": "https://gitlab.com",
       "client_id": "Application ID",
       "client_secret": "Secret",
       "redirect_url": "http://localhost:4000/api/auth/oidc/gitlab/redirect"
   }
}

3. Inicie o Semaphore com autenticação OpenID/GitLab

Depois de salvar as alterações no arquivo de configuração, inicie ou reinicie o Semaphore com as novas configurações.

Você encontrará um novo botão "GitLab" na página de login do Semaphore.

tela de login do Semaphore