哪个OAUTH2用于移动访问和SSO

时间:2012-05-29 13:45:33

标签: oauth-2.0

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

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

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

根据我的阅读,所有OAuth2流程似乎都以另一种方式工作,即用户首先与我的授权服务器通信,然后将重定向到他们自己的身份验证系统,然后将重定向回我的授权服务器并且发出一个令牌。我担心的是,这种方式可能需要改变我的用户在本地授权的方式。

我在这里错过了什么吗?

1 个答案:

答案 0 :(得分:1)

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

  1. 启动移动应用程序时,它会向OAuth服务器发送令牌请求。服务器响应重定向到您的Web应用程序。结果页面将显示给用户。
  2. 用户登录(手动或使用SSO),读取授权请求的详细信息并希望批准它。批准将发送到OAuth服务器。
  3. OAuth服务器生成一个令牌并返回一个重定向,其中包含URL片段中的令牌信息。
  4. 您的移动应用程序从片段中提取令牌并使用它来访问受保护的资源。
  5. 要实现此目标,您需要一个适用于您的移动设备的OAuth客户端,一个OAuth服务器Web应用程序和一个支持该方案的Web应用程序中的批准页面。如果OAuth服务器紧密集成到您的Web应用程序中,您可能不需要服务器和应用程序之间的重定向。