OpenID Connect (OIDC)
OpenID Connect (OIDC) is a simple identity layer on top of the OAuth 2.0 protocol. Bytebase supports using OIDC for configuring Single Sign-On (SSO).
Configuration
info
- 
Please make sure the --external-urlis configured correctly for the Bytebase instance.If your start Bytebase with --external-url https://bytebase.example.com, then your application redirect URL should behttps://bytebase.example.com/oidc/callback.
- 
If you're unsure about the Issuer of your IdP, you can always use the OpenID Connect Discovery endpoint to find the correct value, e.g. https://acme.okta.com/.well-known/openid-configuration.
Basic information:
- Name: the display name shown to your users (e.g. Googlewill be shown asSign in with Google)
- Identity Provider ID: a human-readable unique string, only lower-case alphabets and hyphens are allowed (e.g. google)
- Domain: the domain name to scope associated users (e.g. google.com, optional)
Identity provider information:
- Issuer: the issuer of the response (e.g. https://accounts.google.com)
- Client ID: the client ID of your application
- Client secret: the client secret of your application
User information field mapping:
- Email: the claims field to be used as the Bytebase user email address (e.g. email)
- Display name: the claims field to be used as the Bytebase user display name (e.g. name, optional)
- Phone: the claims field to be used as the Bytebase user phone number (e.g. phone, optional)
- Follow the Google OpenID Connect documentation to create a new OAuth client ID with "Web application" as the Application type.
- Configure the Authorized redirect URIs to be {EXTERNAL_URL}/oidc/callback.
- In Bytebase, go to Settings > SSO to create a new OIDC provider (all values are examples):
- Name: Google
- Identity Provider ID: google
- Domain: google.com
- Issuer: https://accounts.google.com
- Client ID: the client ID of your application
- Client secret: the client secret of your application
- Email: email
- Display name: name
 
- Name: 
GitLab
- Follow the documentation of configure GitLab as an OAuth 2.0 authentication identity provider to create a new OAuth application:
- Configure the Scopes to include openid,profileandemail.
- Configure the Redirect URI to be {EXTERNAL_URL}/oidc/callback.
 
- Configure the Scopes to include 
- In Bytebase, go to Settings > SSO to create a new OIDC provider (all values are examples):
- Name: GitLab
- Identity Provider ID: gitlab
- Domain: gitlab.acme.com
- Issuer: https://gitlab.acme.com
- Client ID: the application ID of your application
- Client secret: the secret of your application
- Email: email
- Display name: name
 
- Name: 
info
In some GitLab self-hosted setups, the Issuer is http://gitlab.acme.com (HTTP) instead of https://gitlab.acme.com (HTTPS) despite the latter being the URL used to access the instance.
Okta
- Follow the Okta create OIDC app integrations documentation to create a new OIDC app integration with "Web Application" as the Application type.
- Configure the Sign-in redirect URIs to be {EXTERNAL_URL}/oidc/callback.
- Configure the Assignments > Controlled access to be Allow everyone in your organization to access.
 
- Configure the Sign-in redirect URIs to be 
- In Bytebase, go to Settings > SSO to create a new OIDC provider (all values are examples):
- Name: Okta
- Identity Provider ID: okta
- Domain: acme.okta.com
- Issuer: https://acme.okta.com
- Client ID: the client ID of your application
- Client secret: the client secret of your application
- Email: email
- Display name: name
 
- Name: 
Keycloak
- Follow the Keycloak create OIDC provider documentation to create a new "OpenID Connect" client.
- Configure the Client ID to be bytebase.
- Configure the Valid redirect URIs to be {EXTERNAL_URL}/oidc/callback.
- Turn on the Capability config > Client authentication for the Credentials tab to be available (which will generate and display the client secret).
- In some older versions, configure Access Type to "confidential" instead.
 
 
- Configure the Client ID to be 
- In Bytebase, go to Settings > SSO to create a new OIDC provider (all values are examples):
- Name: Keycloak
- Identity Provider ID: keycloak
- Domain: keycloak.acme.com
- Issuer: https://keycloak.acme.com/auth/realms/master
- Client ID: bytebase
- Client secret: the client secret of your application
- Email: email
- Display name: name
 
- Name: 
Casdoor
- Follow the Casdoor Casdoor documentation to create a new application.
- Configure the Client ID and Client secret to be bytebase.
- Configure the Valid redirect URIs to be {EXTERNAL_URL}/oidc/callback.
 
- Configure the Client ID and Client secret to be 
- In Bytebase, go to Settings > SSO to create a new OIDC provider (all values are examples):
- Name: Casdoor
- Identity Provider ID: casdoor
- Domain: <your casdoor host>
- Issuer: <your casdoor host>
- Client ID: the client id of your application
- Client secret: the client secret of your application
- Email: email
- Display name: name
 
- Name: 
Authing
- Follow the Authing 创建自建应用 to create a new "标准 Web 应用" as "自建应用".
- In 应用配置, configure the 登录回调 URL to be {EXTERNAL_URL}/oidc/callback.
- In 协议配置, configure the id_token 签名算法 to be RS256.
 
- In 应用配置, configure the 登录回调 URL to be 
- In Bytebase, go to Settings > SSO to create a new OIDC provider (all values are examples):
- Name: Authing
- Identity Provider ID: authing
- Domain: acme.authing.cn
- Issuer: https://acme.authing.cn/oidc
- Client ID: the app ID of your application
- Client secret: the app secret of your application
- Email: email
- Display name: name
 
- Name: 
