Pular para o conteúdo principal

GitLab

O Casdoor pode usar o protocolo OIDC para se conectar a um servidor GitLab auto-implantado, e este documento mostrará como fazer isso.

cuidado

Como os documentos do GitLab afirmam, o GitLab só funciona com provedores OpenID que usam HTTPS, então você precisa implantar o Casdoor com HTTPS, como colocar o Casdoor atrás de um proxy reverso NGINX com uma configuração de certificado 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

Primeiramente, Casdoor e GitLab devem ser implantados.

Após uma implantação bem-sucedida, você precisa garantir:

  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.

Configuração da Aplicação Notavelmente, você pode obter dois valores na página de configurações da aplicação: Client ID e Client secret (veja a imagem acima), e nós os usaremos na próxima etapa.

Abra seu navegador favorito e visite: http://CASDOOR_HOSTNAME/.well-known/openid-configuration, onde você verá a configuração OIDC do Casdoor.

Passo 3: Configurar GitLab

Você pode seguir os passos abaixo para configurar isso, ou fazer alterações personalizadas de acordo com este documento (por exemplo, se você está instalando o GitLab usando o código-fonte em vez do Omnibus).

  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. Agora, você pode fazer login no seu próprio GitLab usando Casdoor. Login GitLab