security - 为什么我们需要在 oauth 协议中从客户端应用程序传递grant_type?
问题描述
为什么我们在使用 oauth 协议时需要从客户端应用程序传递授权类型?
有时,当我使用错误的授权类型时,它会说不正确的授权类型,所以如果我只能传递支持的值,那么传递这个值是多余的。服务器可以简单地选择支持的一个。客户端应用程序不必通过它。
如果客户端应用程序可以通过多个授权类型,那么客户端不能简单地通过限制最少的授权类型吗?为什么客户应该关心什么是最合适的授权类型。客户是否必须遵守某些标准或法律问题?
解决方案
授权类型是 Oauth2 规范rfc6749的一部分,它旨在用于告诉授权服务器您打算使用哪种类型的授权。每种授权类型都适用于不同的用例。
- 在 Web 服务器上运行的应用程序、基于浏览器的应用程序和移动应用程序的授权代码
- 使用用户名和密码登录的密码(仅适用于第一方应用程序)
- 在没有用户的情况下用于应用程序访问的客户端凭据
- 以前建议没有秘密的客户使用隐式,但已通过使用授权码授权和 PKCE 取代。
要求授权猜测您要使用哪种类型的授权将是 IMO 的一大安全风险。有问题的开发人员最好直接告诉授权服务器他们正在尝试使用哪种授权类型。这样,授权服务器就可以验证您所做的事情是否正确。
推荐阅读
- angular - 在表单 Array Angular 8 中添加 2 个表单控件
- python - Discord bot python DM消息在踢之前
- sql-server - SSIS 导入 CSV 部分结构化部分非结构化
- node.js - 我在使用 tsc 构建时遇到此错误
- android - 即使会话处于活动状态,启动器活动也会立即显示
- r - 为什么 Adam 优化无法在线性回归中收敛?
- python - 如果 Python 切片复制引用,为什么我不能用它来修改原始列表?
- discord.js - 我无法访问存储在表 sqlite3 中的值,它给出了未定义的错误
- php - PHP update query value always string 'NULL' instead of NULL
- azure - Azure Web App Service 和 Azure Web App Service Plan 消失,但 Web App 仍然存在