首页 文章

外部OAuth2与自己的OAuth2 spring服务器集成

提问于
浏览
1

我正在尝试将Facebook OAuth2身份验证与我自己的OAuth2服务器集成 . 只是要明确这个场景如下:

  • 我有一个OAuth2服务器,负责验证我们的用户 . 我实现了一个自定义AuthenticationProvider,它检查提供的凭据,并在成功时构建UserDetails对象 .

  • 我还有一个rest-api,它也是一个ResourceServer(在不同的应用程序中运行) . 因此,用户在经过身份验证后可以访问我们的rest-api,从而提供令牌 .

使用JDBC共享令牌信息 .

一切都按预期工作正常,但现在我想添加外部身份验证提供程序,如Facebook .

我的问题是:最好的方法是什么?什么是预期的流量?从我的头脑中,我会想象:

  • 用户通过Facebook验证

  • Facebook提供令牌

  • 用户将令牌发送到我们的OAuth2服务器

  • 我用facebook检查令牌有效性

  • 我使用身份验证提供程序对用户进行身份验证

  • 服务器使用我的OAuth2服务器发出的新令牌返回给用户,用户将从现在开始使用该令牌来请求资源

这是正确的吗?如果是这样,我如何将facebook令牌发送到我的OAuth2服务器?有某种标准吗?我应该为此制作新的参数吗?例如,我需要一些方法来区分Facebook身份验证和用户/密码身份验证 .

我想使用我自己的AuthenticationProvider来验证这个Facebook用户吗?看起来很奇怪,然后返回一个没有密码的UserDetails对象......

另外,如何注册用户并自动登录?我是否必须公开自己的 endpoints ,或者是否也有一些OAuth2魔法?

有什么想法吗?

1 回答

相关问题