概要
- KeycloakとGitBucketの連携方法をまとめる。
- Keycloakのアカウントを使ってGitBucketにログインできるようにする。
前提
- Keycloakが構築済み
- レルム作成済み (本稿ではレルム名を "
demo
"とします) - レルムに一般ユーザアカウント作成済み
- GitBucketを構築済み
- GitBucketにユーザアカウント作成済み
- OpenID Connectを使って連携する
手順
1. keycloakの設定
新しいクライアントを作成する
- Client ID
"gitbucket"
- Client Protocol
- "openid-connect"
- Access Type
- "confidential"
- Valid Redirect URIs
例)"https://gitbucket.example.co.jp/signin/oidc"
2. Gitbucketの設定
管理者権限を持つ(UserTypeがAdministratorの)アカウントでGitbucketにログインする
アカウントメニュー(画面右上のプロフィール写真が表示されている箇所)の「SystemAdministration」> 「SystemSettings」> 「Authentication」タブを開く
OpenID Connectを有効にして、以下のように入力
- Issuer
例)"http://keycloak-example.com:8080/auth/realms/demo"
- Client ID
gitbucket
- Client secret
- ※「1. keycloakの設定」の手順で作成したクライアントのCledentialsタブに表示されるsecretの値
- Expected signature algorithm
- "RS256"
3. GitBucketの既存アカウントとKeycloakアカウントの紐づけ
先にKeycloakでアカウントを作成しておく
管理者権限を持つアカウントでgitbucketにログインする
アカウントメニューの「SystemAdministration」> 「Database viewer」 を開く
コンソールが表示されるので、そこで以下のようなSQL文を入力する
insert into ACCOUNT_FEDERATION(issuer, subject, user_name) values( '<issuer_url>', '<keycloack_id>', '<gitbucket_username>' )
このSQLの<>で囲まれた箇所は、以下の通り読み替えてください
- <issuer_url>
- Gitbucketの設定で設定したIssuerのURLを指定する
- <keycloack_id>
- KeycloakのアカウントのIDを指定する
※IDは、Keycloakの管理画面で、レルム > Users > View all usersボタン押下 の手順で表示されるIDのことです。usernameではありません
- KeycloakのアカウントのIDを指定する
- <gitbucket_user_name>
- GitBucketのアカウントを指定する
TODO↓
たとえば、KeycloakのIDが「12345678-90abcdef1-2345-67890abcdef1」で、GitBucketのアカウントが「yamada」のアカウントを紐付ける場合は次のようになります
insert into ACCOUNT_FEDERATION(issuer, subject, user_name) values( 'http://keycloak-example.com:8080/auth/realms/demo', '12345678-90abcdef1-2345-67890abcdef1', 'yamada' )
Run query ボタンを押下する
4. 動作確認
Gitbucketのログイン画面を開いて、「Sign in with OpenID Connect」ボタンを押下
Keycloakのログイン画面でユーザ名とパスワードを入力
Gitbucketのログイン後の画面が表示される
参考資料
参考資料
OpenID Connect Settings
- 閲覧数 754
コメントを追加