使用Spring为Web /本机应用程序托管自己的sso Oauth2服务的最佳方式



我想要:

  • 中央 OAuth2 服务器,将保存所有用户帐户,并为用户帐户管理提供平台
  • 多个服务将连接到中央 OAuth2 服务器以验证用户。每项服务都将具有Web和移动应用程序(iOS,Android)

我遵循了 spring-boot-oauth 教程,并让客户端使用重定向连接到服务器以获取凭据。这适用于浏览器,但我希望能够直接在本机应用程序中登录。我认为使用 grant_type=password 应该可以解决问题,但我找不到如何处理这个问题的好描述。

  1. 我应该将令牌请求直接发送到中央服务器以获取刷新令牌,还是应该通过每个应用程序服务代理它?
  2. 如果用户已经从设备登录到中央服务器,或者我是否总是需要发送登录名/密码,有什么方法可以检查本机应用程序?我知道我可以开发单独的应用程序,我将用户重定向到该应用程序进行验证,但出于用户体验和省时的原因,我想避免它。

如果您正在考虑在 Android 和 iOS 上使用原生移动应用程序,那么我建议您查看这些库......

https://openid.github.io/AppAuth-iOS/

https://openid.github.io/AppAuth-Android/

这些库允许您使用隐式或代码授权流,避免使用 grant_type=password 流,这会使单点登录变得更加困难。

最新更新