gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 08:08:00 25 4
gpt4 key购买 nike

我一直在这里阅读 OAuth2:http://aaronparecki.com/articles/2012/07/29/1/oauth2-simplified ,在授权部分,它说 OAuth 有不同的模式,具体取决于用例。

提到的两个用例是基于浏览器的应用程序和 Web 服务器应用程序。
我的第一个问题是网络服务器应用程序和基于浏览器的应用程序之间有什么区别?我认为 Web 服务器应用程序是在运行某种 HTTP 服务器并处理 GET/POST 请求的服务器上运行的应用程序。这与基于浏览器的应用程序有何不同?
我的第二个问题是为什么 OAuth 会区分这两者?

最佳答案

这两种模式的不同之处在于请求和处理 OAuth 交换的实际逻辑驻留在何处以及 OAuth 授权服务器和客户端之间交换的复杂性。

对于 Web 服务器应用程序(授权代码授予),用户通常通过浏览器请求 OAuth 操作,但它是应用程序的后端(或至少是服务器端)执行所有重定向并处理/验证来自授权服务器的响应。在基于浏览器的应用程序(隐式授权)中,它是应用程序的前端(通常是在网页内运行的 JavaScript)完成所有工作。

这些模式在安全方面也有所不同。在第一个中,OAuth 服务器正在对客户端应用程序进行身份验证(= 它确保它知道将 token 发送给谁)。第二种方法旨在尽可能简单(以简化 JavaScript 中的处理)并且不执行客户端验证。也不允许使用后一种方法发送刷新 token 。后一种方法的另一个安全问题是它有更大的机会将 token 暴露给攻击者( token 作为 URL 中的片段发送,而不是交换访问 token 的授权代码)。

您可以在 OAuth 2.0 Threat Model and Security Considerations 中找到更多详细信息.

OAuth 2 框架包含隐式授权的原因是为特定类别的应用程序提供一种简化且易于实现的 OAuth 方法。

关于oauth-2.0 - 为什么 OAuth 区分 Web 服务器应用程序和基于浏览器的应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24993713/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com