---
title: Log in with ZITADEL on Gitlab OmniAuth Provider
---
import CreateApp from "../application/_application.mdx";
This guide shows how to enable login with ZITADEL on self-hosted Gitlab instances.
It covers how to:
- create and configure the application in your ZITADEL project
- create and configure the connection in a self-hosted Gitlab instance
Prerequisites:
- existing ZITADEL Instance, if not present follow [this guide](/guides/start/quickstart)
- existing ZITADEL Organization, if not present follow [this guide](/guides/manage/console/organizations-overview)
- existing ZITADEL project, if not present follow the first 3 steps [here](/guides/manage/console/projects-overview)
- running Gitlab instance see [installation guide](https://docs.gitlab.com/ee/install/)
## Gitlab configuration
Follow [this guide](https://docs.gitlab.com/ee/administration/auth/oidc.html) of gitlab to configure the omniauth provider. Following is an example configuration with redacted secrets.
Replace the values of the following fields:
- `args.client_options.identifier` with the `ClientId` generated by ZITADEL
- `args.client_options.secret` with the `ClientSecret` generated by ZITADEL
- `args.client_options.redirect_uri` with the proper URL to your gitlab instance and callback
```ruby
gitlab_rails['omniauth_providers'] = [
{
name: "openid_connect",
label: "ZITADEL",
icon: "https://${CUSTOM_DOMAIN}/ui/console/assets/icons/favicon-32x32.png",
args: {
name: "openid_connect",
scope: ["openid","profile","email"],
response_type: "code",
issuer: "https://${CUSTOM_DOMAIN}",
discovery: true,
client_options: {
identifier: "",
secret: "",
redirect_uri: "https:///users/auth/openid_connect/callback"
}
}
}
]
```