我一直在研究OAuth2规范和大量支持材料,但无法决定在我的用例中使用哪种最佳方法/流程。
我有一个wep应用程序,我的用户可以通过SSO机制访问。它是一个足够基本的机制,但它涉及用户在自己的网络上授权自己,并向我发送包含用户信息的ecrypted令牌。我处理这个并在我的网络应用程序上设置会话。
我现在有一套休息api,允许移动网络客户端(目前是Android)从我的网络应用程序中提取数据。我想重新使用此SSO机制来生成OAuth令牌,移动客户端使用该令牌来标识每个休息请求。理想情况下,流程是无缝的,即用户在他们的手机上打开浏览器,在他们自己的系统上进行身份验证,并使用OAuth令牌指向移动Web客户端的主页。
根据我的阅读,所有OAuth2流程似乎都以另一种方式工作,即用户首先与我的授权服务器通信,然后将重定向到他们自己的身份验证系统,然后将重定向回我的授权服务器并且发出一个令牌。我担心的是,这种方式可能需要改变我的用户在本地授权的方式。
我在这里错过了什么吗?
答案 0 :(得分:1)
如果我理解你的问题,那就不那么复杂了。您的方案应使用为移动应用程序设计的隐式授权消息流(http://tools.ietf.org/html/draft-ietf-oauth-v2-26#section-4.2)。所以你的消息流将是:
要实现此目标,您需要一个适用于您的移动设备的OAuth客户端,一个OAuth服务器Web应用程序和一个支持该方案的Web应用程序中的批准页面。如果OAuth服务器紧密集成到您的Web应用程序中,您可能不需要服务器和应用程序之间的重定向。