はじめに
昨年末に以下の Issue が来ていたことに気付いて修正したのですが,リリース前に Keycloak を用いて haskell-oidc-client の動作確認をできないか試したところ,とても簡単に実施できました.
今回はその方法をまとめたものです.
方法
Keycloak は Docker イメージが公開されています. hub.docker.com
ですから pull して起動すれば,(テスト目的であれば) すぐに利用可能です.
docker pull jboss/keycloak docker run -d -p 8080:8080 -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=test jboss/keycloak
docker logs -f
を眺めながら起動完了を待った後,localhost:8080
にアクセスするとリダイレクト後に以下の画面が表示されます.Administrator Console からログインします.
これより下で設定手順を説明しますが,あくまでも動作確認を目的とした簡易なものになっているため注意してください.
ログイン後,Clients から Create ボタンを押して Client ID/Secret を発行します.Add Client 画面で項目を埋めて Save し,
Settings タブから Access Type を credential に変更,かつ Valid Redirect URIs を Relying Party のコールバック URL に変更します. 変更を保存すると Credentials タブが出現して Secret を取得できるようになります.
次に Users からログイン用のユーザーを作成します.Email や各種 Name フィールドは設定しておいた方がテストの時に躓きません.パスワードは Save 後の Credentials タブから設定可能です.
またデフォルトでは profile
スコープに name
が含まれていません.Client Scopes から profile を選択し,Mappers タブから name を追加します.
以上で最低限の IdP として動作します.デフォルトの状態で Issuer Location は http://localhost:8080/auth/realms/master です.テストコードに設定して動作確認を開始しましょう.
おわりに
今回の実験でずいぶんと簡単に試せることが分かりました.Admin REST API があるみたいなので,ライブラリの API 仕様テストを自動化できないか試行錯誤したいと思います.