OAuth为什么要区分Web服务器应用程序和基于浏览器的应用程序?

Shmoopy

我在这里阅读过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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

无法在Rails中区分应用程序服务器和Web服务器

什么是应用程序服务器?

Google Oauth2应用程序类型Web服务器与桌面应用程序?

从基于移动或浏览器的应用程序连接MongoDB

对于基于服务器的应用程序,我需要在浏览器客户端上使用MVC模型的原因是什么?

什么是适用于Web应用程序的最佳应用程序服务器?

网络服务器浏览器应用程序

如何在Node Js中区分来自移动应用程序和Web浏览器的呼叫?

在基于浏览器的应用程序中使用OAuth“客户端凭据”

区分移动应用程序和桌面浏览器对会话管理的请求

Java或PHP服务器端Web应用程序,为什么?

为什么Java应用程序需要应用程序服务器,而.Net仅需要IIS Web服务器?

Web服务器,Web容器和应用程序服务器之间的区别

从Web浏览器运行应用程序

Web浏览器如何与FastCGI应用程序通信?

glassfish应用程序服务器中的Web服务器是什么?

Web服务器和应用程序服务器Ruby on Rails

基于iOS服务器的应用程序

基于服务器的应用程序的pam /广告问题

模拟浏览器以运行Web应用程序的Android应用程序

通过Web应用程序(浏览器)管理ASP.NET Windows服务

阻止浏览器显示来自azure应用程序服务的javascript和CSS文件

使用Ubuntu Web应用程序浏览器有什么优势?

管理服务器应用程序

如何将推送通知发送到Web应用程序和浏览器?

如何使用Meteor为移动应用程序和Web浏览器构建不同的UI

如何在 Windows 和 macOS 上从 Web 浏览器启动应用程序?

跨服务器同步Web应用程序

从MFC表单应用程序调用Web服务器