我正在尝试创建一个应用程序,该应用程序允许经过身份验证的用户创建OAuth2 不记名令牌以与组织发布的 API 一起使用。这个想法是允许用户自行生成/撤销此类令牌,类似于 GitHub 的Personal API 令牌。然后,用户可以使用已发行的令牌以编程方式访问同一组织公开的受保护资源。
此应用程序需要:
- 用于对用户进行身份验证并允许用户生成和撤销令牌的 UI
- 允许用户身份验证和令牌生成、撤销和存储的服务器端 RESTful API
理想情况下,此应用程序将是无状态的,并且不需要会话,使用SPA。
围绕实施的一些问题:
- 公开的 API 是否应该是使用资源所有者密码凭证授予类型的
@EnableAuthorizationServer
/oauth/token
端点?如果是这样,将客户端凭据暴露给 UI 是否不安全?这可以避免吗? - API 是否应该公开一个直接调用的新的专用端点
AuthorizationServerTokenServices
?如果是这样,如何实现? - 是否有使用 Spring Boot 和 Spring Security OAuth2 的参考实现?
任何建议或参考将不胜感激。