- futa-a さんの作成の手順をそのまま拝借しました。
Keycloak 側の準備
Keycloak の初期設定とユーザ/グループの作成
- https://www.keycloak.org/getting-started/getting-started-docker external_link の "Create a user" までを行う
- 1 の "Create a user" に従って、あと2 ~ 3個ユーザを myrealm 上に作っておく
- myrealm の Groups から親子関係のグループを作成する。ユーザを適当に所属させておく
- 3 のグループの Attributes に description という Key を追加し、グループの説明を適当に入力しておく
OIDC client の作成
- myrealm の Clients 上に growi-test-oidc という名前で client を作成する
- 以下の設定値を 1 の client に入力する
Admin API を叩くための client の設定
- myrealm の Clients にある admin-client の詳細画面を開く
- Settings の capability config で以下の設定をする
- Client authentication: On
- Authentication flow: Standard flow, Direct access, grants, Service account roles
- Service account roles のタブで、Assign role をクリック
- フィルタ設定を Filter by clients にする
- realm-management manage-users を assign する
GROWI 側の操作
- 管理者画面のセキュリティ設定 -> OIDC で以下の設定を入力する
- 必要に応じて自 PC の /etc/hosts に
127.0.0.1 localhost host.docker.internal
の行を追加しておく (OIDC ログイン時にブラウザから host.docker.internal にアクセスしてしまうため)
- 管理者画面のグループ管理の Keycloak のタブで、以下の設定を入力する
- Host: http://host.docker.internal:8080 external_link
- Group Realm: myrealm
- Admin API にリクエストするための client がある realm: myrealm
- Client の ID: admin-cli
- Client の Secret: keycloak の admin-cli の詳細画面の Credentials のタブにある Client secret
- 作成されていない GROWI アカウントを自動生成する: true
- 説明: description
- 同期を実行し、同期完了後に同期されたグループがグループ管理画面に表示されることを確認
- 同期されたユーザでログインできることを確認し、グループに所属していることを確認