問題
RFC 7009の仕様に従ってOAuth2トークンを失効させるためのパブリックREST APIメソッドを提供したい https://datatracker.ietf.org/doc/html/rfc7009#section-2.1
Liferayはこの機能を提供していますか?
Environment
- Liferay DXP 7.3
- Liferay DXP 7.4
解決策
残念ながら、LiferayはOAuth2トークンを失効させるためのREST APIメソッドを提供しません。
RFC 7009はOAuth2のコア仕様を拡張したものなので、実装が必須というわけではありません:
- OAuth 2.0 コア仕様 [RFC6749] では、クライアントがリフレッシュトークンやアクセストークンを取得するためのいくつかの方法が定義されています。
- RFC 7009 は、両方のタイプのトークンを取り消すメカニズムでコア仕様 を補足しています。
この機能要求を追跡するために、内部の OAUTH2-27 issue が開設されていますが、短期間での実装は予定されていないようです。
トークンを失効させる方法は、公式ドキュメントで説明されているように、ユーザーインターフェイスを使用することのみです:
回避策として、トークンを失効させるためにLiferay APIを使用したカスタム開発で、失効APIを実装することができます:
- ここに、認可を取り消すことができる公開APIがあります: https://github.com/liferay/liferay-portal/blob/29b73b9b896c7d44fb5d1800a402698c303d1cf6/modules/apps/oauth2-provider/oauth2-provider-api/src/main/java/com/liferay/oauth2/provider/service/OAuth2AuthorizationService.java#L79
- ここでは、トークンを使って認証記録を取得できる内部APIをいくつか紹介します。 https://github.com/liferay/liferay-portal/blob/29b73b9b896c7d44fb5d1800a402698c303d1cf6/modules/apps/oauth2-provider/oauth2-provider-api/src/main/java/com/liferay/oauth2/provider/service/OAuth2AuthorizationLocalService.java#L263-L269
追加情報