OIDC 動作確認手順

Step1: Keycloak を起動し、管理画面にアクセス

  1. Docker container を立ち上げる
    コンテナが起動しない、またはすぐに落ちてしまう場合はコマンドが古くなっている可能性があるので、公式ドキュメント external_linkを見ること。
$ docker run -p 8080:8080 -e KEYCLOAK_ADMIN=admin -e KEYCLOAK_ADMIN_PASSWORD=admin --name keycloak quay.io/keycloak/keycloak:25.0.2 start-dev
  1. ngrok で localhost:8080 を公開する

    • ngrok http 8080 --region jp
    • growi container と browser 両方からみえるようにするため
  2. http://localhost:8080/auth/admin/ external_link にアクセスし、管理者でログイン

    • Username: admin
    • Password: admin

Step2: Keycloak設定

2-1 Realm を作成する

  1. 初期設定は Master になっているので、 サイドバーから 「Add realm」 を押す

Screen Shot 2022-09-22 at 14.57.43.png

  • Name: growi-dev
  • Enabled: ON

で Create ボタンを押す

2-2 クライアント作成

  1. サイドバーで Clients を選択
  2. table の右端のCreate ボタンを押下
    • Client ID: growi-client (任意)
    • Name: growi-client (任意)
    • Client Protocol: openid-connect
    • Access Type: confidential
    • Root URL: http://localhost:3030/
    • Valid Redirect URIs: http://localhost:3030/*
  3. save ボタンを押す

2-3 Keycloak User 作成

  1. Users から作る
  2. そのユーザーの詳細ページの Credentials からパスワードを登録

Step3: GROWI の OIDC 設定

画像のように設定。任意設定値は keycloak の設定に合わせること

Screen Shot 2022-12-26 at 14.53.34.png

Screen Shot 2022-12-26 at 14.54.12.png

Realm Settings > General > Endpoints > OpenId Endpoint Configuration external_link のリンクをクリックすればJSONが表示されます。
Client Seacret は > Clients > growi-dev > Credencials の secret に表示されている値を記載

※ localhost:3030 の部分は各自の GROWI を公開しているポート番号になります ※ 下のチェック2つはオプショナルです

保存して、サーバーのログにエラー出てなければ OK

Step4: Login できるか確認

  1. Login 画面に行く
  2. External Auth で OIDC を選択
  3. Keycloak の画面に行くのでさっき作った User の ID/Pass でログイン
  4. GROWI にリダイレクトされて、ログイン状態になる

以上です! 🐱 🎉