Spring SecurityのOAuth 2.0 Login でログインしても UserInfo Endpoint にアクセスしてくれない
   1 min read

Spring Security OAuth 2.0 Login を利用してログインしたのですが、通常ログイン後 UserInfo Endpoint へアクセスしてくれるはずなのにこの処理がスキップされてしまうような事象に出会いました。

調査したところ次のissueも同じ事象を説明していて、解決策としては、 setAccessibleScopes() で自分が取得したいscopeを設定する、あるいは、空の設定を行う、ということでした。

この事象の解説も上記issueに記載されているのですが、特に何もしなくてもUserInfo Endpointへアクセスする条件は

  • profile, email, address, phone scopeのいずれかをIdPが提供しており、かつ、取得できる権限を持っている

場合のようです。

この4scopeを置き換えるのが setAccessibleScopes() ということです。