我在这里阅读过OAuth2:http : //aaronparecki.com/articles/2012/07/29/1/oauth2-simplified,在授权部分中,它指出OAuth根据使用情况具有不同的模式。
提到的两个用例是基于浏览器的应用程序和Web服务器应用程序。我的第一个问题是Web服务器应用程序和基于浏览器的应用程序之间有什么区别?我认为网络服务器应用程序是在运行某种HTTP服务器并处理GET / POST请求的服务器上运行的应用程序。与基于浏览器的应用程序有何不同?我的第二个问题是,为什么OAuth会区分两者?
这两种模式的不同之处在于,请求和处理OAuth交换的实际逻辑位于何处,以及OAuth授权服务器和客户端之间的交换复杂性。
对于Web服务器应用程序(授权代码授予),用户通常通过浏览器请求OAuth操作,但是执行所有重定向并处理/验证来自授权服务器的响应的是应用程序的后端(或至少是服务器端)。在基于浏览器的应用程序(隐式授予)中,它是完成所有工作的应用程序的前端(通常是在网页内运行的JavaScript)。
这些模式在安全性方面也有所不同。在第一个中,OAuth服务器正在对客户端应用程序进行身份验证(=确保它知道向其发送令牌的对象)。第二种方法应尽可能简单(以简化JavaScript中的处理),并且不执行客户端验证。也不允许使用后一种方法发送刷新令牌。后一种方法的另一个安全问题是,它有更大的机会将令牌暴露给攻击者(令牌是作为URL中的一个片段发送的,而不是将授权代码交换为访问令牌)。
您可以在OAuth 2.0威胁模型和安全注意事项中找到更多详细信息。
OAuth 2框架包括隐式授权的原因是为某些类的应用程序提供一种简化且易于实现的OAuth方法。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句