【问题标题】:Which OAUTH2 flow for mobile access and SSO用于移动访问和 SSO 的 OAUTH2 流
【发布时间】:2012-05-29 13:45:32
【问题描述】:

我一直在研究 OAuth2 规范和大量支持材料,但无法决定哪种方法/流程适合我的用例。

我有一个 wep 应用程序,我的用户可以通过 SSO 机制访问它。这是一个足够基本的机制,但它涉及用户在自己的网络上授权自己,并向我发送一个包含用户信息的加密令牌。我处理这个并在我的网络应用程序上设置一个会话。

我现在有一组允许移动网络客户端(目前是 android)从我的网络应用程序中提取数据的 rest api。我想重新使用此 SSO 机制来生成一个 OAuth 令牌,移动客户端使用该令牌在每个休息请求中标识自己。理想情况下,流程是无缝的,即用户在手机上打开浏览器,在自己的系统上进行身份验证,然后使用 OAuth 令牌定向到移动 Web 客户端的主 URL。

从我所阅读的内容来看,所有 OAuth2 流程似乎都以另一种方式工作,即用户首先与我的授权服务器交谈,然后将被重定向到他们自己的身份验证系统,然后将被重定向回我的授权服务器并被发出令牌。我担心这种方式可能需要更改我的用户在本地授权的方式。

我错过了什么吗?

【问题讨论】:

  • 您应该提供有关答案的反馈。请至少评论他们!谢谢。

标签: oauth-2.0


【解决方案1】:

如果我正确理解了您的问题,那就没那么复杂了。您的方案应使用为移动应用程序设计的隐式授权消息流 (https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-26#section-4.2)。所以你的消息流将是:

  1. 当移动应用程序启动时,它会向 OAuth 服务器发送一个令牌请求。服务器响应重定向到您的 Web 应用程序。结果页面显示给用户。
  2. 用户登录(手动或使用 SSO),阅读授权请求的详细信息并希望批准它。批准将发送到 OAuth 服务器。
  3. OAuth 服务器生成一个令牌并返回一个重定向,其中包含 URL 片段中的令牌信息。
  4. 您的移动应用程序从片段中提取令牌并使用它来访问受保护的资源。

要实现这一点,您的移动设备需要一个 OAuth 客户端、一个 OAuth 服务器 Web 应用程序和 Web 应用程序中的一个批准页面来支持该场景。如果 OAuth 服务器紧密集成到您的 Web 应用程序中,您可能不需要服务器和应用程序之间的重定向。

【讨论】:

  • 我可以使用授权码授予并在移动应用程序中实现 SSO
猜你喜欢
  • 2020-11-14
  • 2021-11-14
  • 1970-01-01
  • 2018-07-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-08
相关资源
最近更新 更多