Merge branch '43512-add-support-for-omniauth-jwt-provider' into 'master'
Resolve "Add support for omniauth-jwt provider" Closes #43512 See merge request gitlab-org/gitlab-ce!17774
This commit is contained in:
commit
678af224a2
6 changed files with 105 additions and 1 deletions
1
Gemfile
1
Gemfile
|
@ -52,6 +52,7 @@ gem 'omniauth-shibboleth', '~> 1.2.0'
|
|||
gem 'omniauth-twitter', '~> 1.4'
|
||||
gem 'omniauth_crowd', '~> 2.2.0'
|
||||
gem 'omniauth-authentiq', '~> 0.3.1'
|
||||
gem 'omniauth-jwt', '~> 0.0.2'
|
||||
gem 'rack-oauth2', '~> 1.2.1'
|
||||
gem 'jwt', '~> 1.5.6'
|
||||
|
||||
|
|
|
@ -554,6 +554,9 @@ GEM
|
|||
multi_json (~> 1.3)
|
||||
omniauth (>= 1.1.1)
|
||||
omniauth-oauth2 (>= 1.3.1)
|
||||
omniauth-jwt (0.0.2)
|
||||
jwt
|
||||
omniauth (~> 1.1)
|
||||
omniauth-kerberos (0.3.0)
|
||||
omniauth-multipassword
|
||||
timfel-krb5-auth (~> 0.8)
|
||||
|
@ -1115,6 +1118,7 @@ DEPENDENCIES
|
|||
omniauth-github (~> 1.1.1)
|
||||
omniauth-gitlab (~> 1.0.2)
|
||||
omniauth-google-oauth2 (~> 0.5.2)
|
||||
omniauth-jwt (~> 0.0.2)
|
||||
omniauth-kerberos (~> 0.3.0)
|
||||
omniauth-oauth2-generic (~> 0.2.2)
|
||||
omniauth-saml (~> 1.10)
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: Adds support for OmniAuth JWT provider
|
||||
merge_request: 17774
|
||||
author:
|
||||
type: added
|
|
@ -518,7 +518,17 @@ production: &base
|
|||
# - { name: 'twitter',
|
||||
# app_id: 'YOUR_APP_ID',
|
||||
# app_secret: 'YOUR_APP_SECRET' }
|
||||
#
|
||||
# - { name: 'jwt',
|
||||
# app_secret: 'YOUR_APP_SECRET',
|
||||
# args: {
|
||||
# algorithm: 'HS256',
|
||||
# uid_claim: 'email',
|
||||
# required_claims: ["name", "email"],
|
||||
# info_map: { name: "name", email: "email" },
|
||||
# auth_url: 'https://example.com/',
|
||||
# valid_within: nil,
|
||||
# }
|
||||
# }
|
||||
# - { name: 'saml',
|
||||
# label: 'Our SAML Provider',
|
||||
# groups_attribute: 'Groups',
|
||||
|
@ -799,6 +809,17 @@ test:
|
|||
- { name: 'twitter',
|
||||
app_id: 'YOUR_APP_ID',
|
||||
app_secret: 'YOUR_APP_SECRET' }
|
||||
- { name: 'jwt',
|
||||
app_secret: 'YOUR_APP_SECRET',
|
||||
args: {
|
||||
algorithm: 'HS256',
|
||||
uid_claim: 'email',
|
||||
required_claims: ["name", "email"],
|
||||
info_map: { name: "name", email: "email" },
|
||||
auth_url: 'https://example.com/',
|
||||
valid_within: nil,
|
||||
}
|
||||
}
|
||||
- { name: 'auth0',
|
||||
args: {
|
||||
client_id: 'YOUR_AUTH0_CLIENT_ID',
|
||||
|
|
72
doc/administration/auth/jwt.md
Normal file
72
doc/administration/auth/jwt.md
Normal file
|
@ -0,0 +1,72 @@
|
|||
# JWT OmniAuth provider
|
||||
|
||||
To enable the JWT OmniAuth provider, you must register your application with JWT.
|
||||
JWT will provide you with a secret key for you to use.
|
||||
|
||||
1. On your GitLab server, open the configuration file.
|
||||
|
||||
For Omnibus GitLab:
|
||||
|
||||
```sh
|
||||
sudo editor /etc/gitlab/gitlab.rb
|
||||
```
|
||||
|
||||
For installations from source:
|
||||
|
||||
```sh
|
||||
cd /home/git/gitlab
|
||||
sudo -u git -H editor config/gitlab.yml
|
||||
```
|
||||
|
||||
1. See [Initial OmniAuth Configuration](../../integration/omniauth.md#initial-omniauth-configuration) for initial settings.
|
||||
1. Add the provider configuration.
|
||||
|
||||
For Omnibus GitLab:
|
||||
|
||||
```ruby
|
||||
gitlab_rails['omniauth_providers'] = [
|
||||
{ name: 'jwt',
|
||||
app_secret: 'YOUR_APP_SECRET',
|
||||
args: {
|
||||
algorithm: 'HS256',
|
||||
uid_claim: 'email',
|
||||
required_claims: ["name", "email"],
|
||||
info_maps: { name: "name", email: "email" },
|
||||
auth_url: 'https://example.com/',
|
||||
valid_within: nil,
|
||||
}
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
For installation from source:
|
||||
|
||||
```
|
||||
- { name: 'jwt',
|
||||
app_secret: 'YOUR_APP_SECRET',
|
||||
args: {
|
||||
algorithm: 'HS256',
|
||||
uid_claim: 'email',
|
||||
required_claims: ["name", "email"],
|
||||
info_map: { name: "name", email: "email" },
|
||||
auth_url: 'https://example.com/',
|
||||
valid_within: nil,
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
NOTE: **Note:** For more information on each configuration option refer to
|
||||
the [OmniAuth JWT usage documentation](https://github.com/mbleigh/omniauth-jwt#usage).
|
||||
|
||||
1. Change `YOUR_APP_SECRET` to the client secret and set `auth_url` to your redirect URL.
|
||||
1. Save the configuration file.
|
||||
1. [Reconfigure GitLab][] or [restart GitLab][] for the changes to take effect if you
|
||||
installed GitLab via Omnibus or from source respectively.
|
||||
|
||||
On the sign in page there should now be a JWT icon below the regular sign in form.
|
||||
Click the icon to begin the authentication process. JWT will ask the user to
|
||||
sign in and authorize the GitLab application. If everything goes well, the user
|
||||
will be redirected to GitLab and will be signed in.
|
||||
|
||||
[reconfigure GitLab]: ../restart_gitlab.md#omnibus-gitlab-reconfigure
|
||||
[restart GitLab]: ../restart_gitlab.md#installations-from-source
|
|
@ -32,6 +32,7 @@ contains some settings that are common for all providers.
|
|||
- [Auth0](auth0.md)
|
||||
- [Authentiq](../administration/auth/authentiq.md)
|
||||
- [OAuth2Generic](oauth2_generic.md)
|
||||
- [JWT](../administration/auth/jwt.md)
|
||||
|
||||
## Initial OmniAuth Configuration
|
||||
|
||||
|
|
Loading…
Reference in a new issue