oauth-2.0 - 为什么oAuth2.0需要授权令牌
问题描述
+----------+
| Resource |
| Owner |
| |
+----------+
^
|
(B)
+----|-----+ Client Identifier +---------------+
| -+----(A)-- & Redirection URI ---->| |
| User- | | Authorization |
| Agent -+----(B)-- User authenticates --->| Server |
| | | |
| -+----(C)-- Authorization Code ---<| |
+-|----|---+ +---------------+
| | ^ v
(A) (C) | |
| | | |
^ v | |
+---------+ | |
| |>---(D)-- Authorization Code ---------' |
| Client | & Redirection URI |
| | |
| |<---(E)----- Access Token -------------------'
+---------+ (w/ Optional Refresh Token)
我理解上面的流程,但我的问题是中间的步骤 C,授权服务器是否有可能获取重定向 URI,然后使用 Post 请求 URI 并将访问令牌放入正文中。它会消除步骤D和E吗?感谢您的回复
解决方案
听起来您所描述的是隐式授予流程(步骤 A - C):
+----------+
| Resource |
| Owner |
| |
+----------+
^
|
(B)
+----|-----+ Client Identifier +---------------+
| -+----(A)-- & Redirection URI --->| |
| User- | | Authorization |
| Agent -|----(B)-- User authenticates -->| Server |
| | | |
| |<---(C)--- Redirection URI ----<| |
| | with Access Token +---------------+
| | in Fragment
| | +---------------+
| |----(D)--- Redirection URI ---->| Web-Hosted |
| | without Fragment | Client |
| | | Resource |
| (F) |<---(E)------- Script ---------<| |
| | +---------------+
+-|--------+
| |
(A) (G) Access Token
| |
^ v
+---------+
| |
| Client |
| |
+---------+
令牌在步骤 C 中直接返回,无需执行代码/令牌交换。但是,这有许多安全风险,不仅限于令牌注入和凭证泄漏。OAuth 工作组建议客户端不应该按照最佳安全实践使用此流程。
推荐阅读
- clojure - 使用 boot-cljs 生成生产版本
- asp.net-core-2.2 - Asp.Net 核心临时数据和重定向操作不起作用
- redux - 为什么在导入套接字时会出现此错误:“TypeError: _websocket_js__WEBPACK_IMPORTED_MODULE_0__.default.send is not a function”?
- typescript - 如何在打字稿的接口中指定回调但不必为其命名类型
- opencl - OpenCL 未列出 Intel 集成 GPU
- python - 如何复制 Excel 工作表的内容并将其粘贴到电子邮件正文中。(不是作为附件)使用 Python
- report - Oracle SQL 开发报告错误:ORA-00942 仅在从 CMD 时返回
- java - 无法解析 JSONParser
- sql - 在 Star Schema 日期表中查找缺失的日期
- vb.net - 打开窗口并移动到下一行代码不要等待关闭窗口