認証されたユーザーが、組織によって公開された API で使用するOAuth2 ベアラー トークンを作成できるようにするアプリケーションを作成しようとしています。アイデアは、GitHub のPersonal API tokensと同様に、ユーザーがそのようなトークンを自己生成/取り消しできるようにすることです。その後、ユーザーは発行されたトークンを使用して、同じ組織によって公開されている保護されたリソースへのプログラムによるアクセスを取得できます。
このアプリケーションには次が必要です。
- ユーザーを認証し、ユーザーがトークンを生成および取り消すことができるようにする UI
- ユーザー認証とトークンの生成、取り消し、保存を可能にするサーバー側の RESTful API
理想的には、このアプリケーションはSPAを使用して、ステートレスでセッションを必要としません。
実装に関するいくつかの質問:
- 公開された API は、 Resource Owner Password Credentials Grantタイプ
@EnableAuthorizationServer
/oauth/token
を使用するエンドポイントにする必要がありますか? もしそうなら、クライアント資格情報を UIに公開するのは安全ではありませんか? これは回避できますか? - API は、直接呼び出す新しい専用エンドポイントを公開する必要があります
AuthorizationServerTokenServices
か? もしそうなら、これはどのように達成されますか? - Spring Boot と Spring Security OAuth2 を使用した参照実装はありますか?
任意の提案や参照をいただければ幸いです。