Pular para o conteúdo principal

GitLab

This guide configures a self-hosted GitLab instance to use Casdoor as the OIDC provider.

cuidado

As the GitLab docs state, GitLab only works with OpenID providers that use HTTPS, deploy Casdoor over HTTPS (e.g. behind an NGINX reverse proxy with SSL). O próprio Casdoor só escuta na porta 8000 por padrão via HTTP e não possui funcionalidade relacionada ao HTTPS.

A seguir estão alguns dos nomes mencionados na configuração:

CASDOOR_HOSTNAME: O nome de domínio ou IP onde o servidor Casdoor está implantado, por exemplo, https://door.casbin.com.

GITLAB_HOSTNAME: O nome de domínio ou IP onde o GitLab está implantado, por exemplo, https://gitlab.com.

Passo 1: Implantar Casdoor e GitLab

Deploy Casdoor and GitLab. After deployment, ensure:

  1. O Casdoor pode ser acessado e usado normalmente.
  2. Defina o valor de origin do Casdoor (conf/app.conf) para CASDOOR_HOSTNAME. Configuração do Casdoor

Passo 2: Configurar aplicação Casdoor

  1. Crie ou use uma aplicação Casdoor existente.
  2. Adicione uma URL de redirecionamento: http://GITLAB_HOSTNAME/users/auth/openid_connect/callback.
  3. Adicione o provedor que deseja e complemente outras configurações.

Application Setting On the application settings page, note Client ID and Client secret (see the picture above); use them in the next step.

OIDC discovery: http://<CASDOOR_HOSTNAME>/.well-known/openid-configuration.

Passo 3: Configurar GitLab

Follow the steps below, or adapt from GitLab OIDC docs (e.g. for source installs).

  1. No seu servidor GitLab, abra o arquivo de configuração.

    sudo editor /etc/gitlab/gitlab.rb
  2. Adicione a configuração do provedor. (A URL HOSTNAME deve incluir http ou https)

    gitlab_rails['omniauth_providers'] = [
    {
    name: "openid_connect",
    label: "Casdoor", # optional label for the login button, defaults to "Openid Connect"
    args: {
    name: "openid_connect",
    scope: ["openid", "profile", "email"],
    response_type: "code",
    issuer: "<CASDOOR_HOSTNAME>",
    client_auth_method: "query",
    discovery: true,
    uid_field: "preferred_username",
    client_options: {
    identifier: "<YOUR CLIENT ID>",
    secret: "<YOUR CLIENT SECRET>",
    redirect_uri: "<GITLAB_HOSTNAME>/users/auth/openid_connect/callback"
    }
    }
    }
    ]
  3. Reinicie o seu servidor GitLab.

  4. Cada usuário registrado pode abrir GITLAB_HOSTNAME/-/profile/account e conectar a conta Casdoor. Conexão GitLab

  5. Concluir. You can now log in to your GitLab instance via Casdoor. Login GitLab