• futa-a さんの作成の手順をそのまま拝借しました。

Keycloak 側の準備

Keycloak の初期設定とユーザ/グループの作成

  1. https://www.keycloak.org/getting-started/getting-started-docker external_link の "Create a user" までを行う
  2. 1 の "Create a user" に従って、あと2 ~ 3個ユーザを myrealm 上に作っておく
  3. myrealm の Groups から親子関係のグループを作成する。ユーザを適当に所属させておく
  4. 3 のグループの Attributes に description という Key を追加し、グループの説明を適当に入力しておく

OIDC client の作成

  1. myrealm の Clients 上に growi-test-oidc という名前で client を作成する
  2. 以下の設定値を 1 の client に入力する

Admin API を叩くための client の設定

  1. myrealm の Clients にある admin-client の詳細画面を開く
  2. Settings の capability config で以下の設定をする
  • Client authentication: On
  • Authentication flow: Standard flow, Direct access, grants, Service account roles
  1. Service account roles のタブで、Assign role をクリック
  2. フィルタ設定を Filter by clients にする
  3. realm-management manage-users を assign する

GROWI 側の操作

  1. 管理者画面のセキュリティ設定 -> OIDC で以下の設定を入力する
  1. 必要に応じて自 PC の /etc/hosts に 127.0.0.1 localhost host.docker.internal の行を追加しておく (OIDC ログイン時にブラウザから host.docker.internal にアクセスしてしまうため)
  2. 管理者画面のグループ管理の 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
  1. 同期を実行し、同期完了後に同期されたグループがグループ管理画面に表示されることを確認
  2. 同期されたユーザでログインできることを確認し、グループに所属していることを確認