概要
Gitlab のログインに onelogin の OpenIDConnect (OIDC) を使ってログインする方法を紹介します
ちなみに onelogin の OIDC は有料プランでないと使えないので注意しましょう
環境
- Gitlab-ee 15.6.7
- Onelogin 2023/03/01 時点
Onelogin側のOIDCアプリの設定
1. 認証情報の確認
作成した OIDC アプリの「SSO」メニューで連携に必要な情報を確認できます
このページ内の
- Client ID
- Client secret
- Issuer URL
はメモしておきましょう
また画面にはないですが少し下に「Token Endpoint」という項目があるのでそこが「Basic」になっていることを確認しておきましょう
2. リダイレクトURLの設定
認証後のリダイレクト URL を設定します
これは Gitlab 側から指定された URL があるのでそれを指定します
Gitlab の URL + /users/auth/openid_connect/callback
を指定すれば OK です
またこの URL は gitlab.rb 編集時にも使います
OneLogin側のOIDCアプリへログインさせるユーザの追加
OIDC アプリを使って認証させるユーザは個別に追加する必要があります
ユーザ個別でも追加できますしロール単位でも追加できるので認証させたいユーザを追加しましょう
動作確認のログイン時に Could not authenticate you from OpenIDConnect because "End-user does not have access to this application".
が表示される場合はこのユーザの追加がうまく行っているか確認してみてください
gitlab.rb の編集
あとは gitlab.rb を編集します
gitlab_rails['omniauth_allow_single_sign_on'] = ['openid_connect']
gitlab_rails['omniauth_block_auto_created_users'] = false
gitlab_rails['omniauth_auto_link_saml_user'] = false
gitlab_rails['omniauth_providers'] = [
{
name: "openid_connect",
label: "Onelogin OIDC",
args: {
name: "openid_connect",
scope: ["openid", "profile", "email"],
response_type: "code",
issuer: "https://xxxxxx.onelogin.com/oidc/2",
discovery: true,
client_auth_method: "basic",
send_scope_to_token_endpoint: "true",
client_options: {
identifier: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
secret: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
redirect_uri: "https://your.gitlab.com/users/auth/openid_connect/callback"
}
}
}
]
Onelogin の OIDC の SSO ページを確認しながら自分で入力する項目は
- args.issuer
- args.client_options.identifier
- args.client_options.secret
- args.client.options.redirect_uri
になります
icon, uid_field, pkce は省略しています
特に何も特別なことはしていないのでこれがデフォルトの設定になるかなと思います
動作確認
gitlab を reconfigure してログインページを確認しましょう
設定した OIDC のラベル名でログインボタンが表示されれば OK です
最後に
Gitlab + OIDC のログイン設定方法を紹介しました
今回は Onelogin を使いましたが Onelogin 以外の OIDC でも同じような感じで設定できると思います
0 件のコメント:
コメントを投稿