GitLab
This guide configures a self-hosted GitLab instance to use Casdoor as the OIDC provider.
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:
- O Casdoor pode ser acessado e usado normalmente.
- Defina o valor de
origindo Casdoor (conf/app.conf) paraCASDOOR_HOSTNAME.
Passo 2: Configurar aplicação Casdoor
- Crie ou use uma aplicação Casdoor existente.
- Adicione uma URL de redirecionamento:
http://GITLAB_HOSTNAME/users/auth/openid_connect/callback. - Adicione o provedor que deseja e complemente outras configurações.
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).
-
No seu servidor GitLab, abra o arquivo de configuração.
sudo editor /etc/gitlab/gitlab.rb -
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"
}
}
}
] -
Reinicie o seu servidor GitLab.
-
Cada usuário registrado pode abrir
GITLAB_HOSTNAME/-/profile/account e conectar a conta Casdoor.
-
Concluir. You can now log in to your GitLab instance via Casdoor.
