我正在尝试创建一个应用程序,允许经过身份验证的用户创建OAuth2 bearer tokens以与组织发布的API一起使用 . 这个想法是允许用户自己生成/撤销这样的令牌,类似于GitHub的Personal API tokens . 然后,用户可以使用发布的令牌获得对同一组织公开的受保护资源的编程访问 .

此应用程序要求:

  • 用于对用户进行身份验证并允许用户生成和撤消令牌的UI

  • 服务器端RESTful API,允许用户身份验证和令牌生成,撤销和存储

理想情况下,此应用程序将是无状态的,并且不需要会话,使用SPA .

关于实施的一些问题:

  • 暴露的API是否应该是使用Resource Owner Password Credentials Grant类型的 @EnableAuthorizationServer /oauth/token endpoints ?如果是这样,将Client Credentials暴露给UI是否不安全?这可以避免吗?

  • API是否应公开一个直接调用 AuthorizationServerTokenServices 的新专用 endpoints ?如果是这样,这将如何实现?

  • 是否有使用Spring Boot和Spring Security OAuth2的参考实现?

任何建议或参考将不胜感激 .