unhurried

コンピュータ関連ネタがほとんど、ときどき趣味も…

Open ID Connect クライアント

Java(Play framework)でOpen ID Connect Relying Party(クライアント側)を実装しました。ひとまずCore - Authorization Code Flowと、Session Management - RP initiated Logoutのみ対応しています。

github.com

ライブラリはNimbus OAuth 2.0 SDK with OpenID Connect extensions | Connect2idを使っています。ドキュメントやサンプルコードがあまり充実していないので、使い方が間違っているかもしれません…。

ライブラリを使ってみた感想

  • クラス構成がシンプルで使い方を推測しやすい。
  • 認証エラー解析にキャストが必要なI/Fは微妙。
    • AuthenticationResponseからAuthenticationErrorResponseへのキャストが発生する。
  • RP initiated Logoutのコールバックを受け取る機能が存在しない。
    • stateの検証くらいだが、統一感を出すためにもあると良い。