A partir da versão 2.8.92, o Semaphore suporta autenticação via OpenID. Neste artigo, exploraremos 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 provedor em si, que neste caso é o GitLab.

1. Crie um aplicativo no GitLab

Para habilitar a autenticação através do GitLab, você precisa criar um aplicativo nas configurações da sua conta do GitLab.

  1. Acesse a seção Aplicativos 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.
    • Scopes: openid, profile, email.

    criação de aplicativo gitlab

  3. Após clicar em Salvar aplicativo, você verá a seguinte tela:
  4. configuração de aplicativo gitlab
  5. Copie e salve a chave secreta em algum lugar (ela será necessária para configurar o Semaphore) e clique em Continuar.
  6. Aplicativo pronto.
  7. lista de aplicativos gitlab

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

Como você sabe, as configurações do Semaphore são armazenadas no 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": "ID do Aplicativo",
       "client_secret": "Segredo",
       "redirect_url": "http://localhost:4000/api/auth/oidc/gitlab/redirect"
   }
}

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

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

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

tela de login do semaphore