结合SSO和API身份验证

时间:2018-09-19 01:18:52

标签: oauth-2.0 jwt single-sign-on

几个月前,我们与自己的内部SSO平台一起部署了Discourse(https://www.discourse.org)。当时,这是发布此应用程序的最快(不是最聪明)的方式。该平台依靠API(named CoreApi)对用户进行身份验证。我们有一个“ oAuth”身份验证端点,它接受用户名/密码并返回AccessToken(JWT)和RefreshToken。

现在,我们要“支持”另一个名为MyPage的网站。关于MyPage的有趣之处在于,它还依靠CoreApi来检索与用户或客户端相关的数据。

从我的角度来看,为了支持MyPage,我们的SSO平台需要返回一个“令牌”,以便网站可以对用户进行身份验证。这引起了几个问题:

  1. 使用HTTP Get请求传递令牌并不完全安全。拦截请求的任何人都可以查询我们的API。

  2. 听起来不是很自然。

    • 用户尝试访问MyPage
    • 如果未通过身份验证,它们将被重定向到我们的sso平台
    • 在我们的SSO中,如果未通过身份验证,它们将被重定向到登录页面
    • 如果身份验证成功,我们会将用户重定向到MyPage,并传递一个“令牌”(refreshToken,尚不确定新型令牌)。
    • 重定向后,MyPage将此令牌传递给我们的API,以再次登录(双重身份验证)
    • 用户可以使用网站

对我来说,就像我们没有朝正确的方向前进。

问题:

  1. 我们如何结合我们的SSO平台和MyPage中所需的API身份验证?是否有任何可遵循的工具/最佳实践?
  2. 我确定使用API​​和SSO的网站很多。他们如何实现这一目标?

注意:

  • 我们所有的网站都是以.net核心编写的

感谢您的帮助

0 个答案:

没有答案