【发布时间】:2021-11-15 08:37:34
【问题描述】:
- 桌面客户端
- 受保护的资源服务器
- 授权服务器 (Google)
- 用户代理(浏览器)
-
Desktop Client生成 Pub/Priv 密钥对,并将带有webbrowser.open_new()的用户代理定向到Protected Resource ServerOAuth 启动页面,该页面将Public Key存储在 Auth_URI 重定向的State参数字段中。 - User-Agent 使用
Authorization Server成功进行身份验证,并在state参数字段中使用 Auth_Code 和Public Key重定向回Protected Resource Sever。 -
Protected Resource Server使用机密客户端密钥交换 Auth_Code 并验证 id_token。 - 如果 id_token 有效(发生服务器端处理),则它会在环回时重定向到侦听
Desktop Client,其中查询参数包含仅可由启动应用程序访问的加密值。
这是一个与 PKCE 非常相似的过程,但我让客户端机密在服务器上保持机密,而不是将其嵌入到 Desktop Client 中。
我担心一个恶意的第 3 方应用程序能够拦截初始 OAuth_URI 重定向并修改其值。一旦设备/浏览器受到威胁,这是否是可以减轻的威胁? PKCE 会遇到同样的问题,我没有看到任何解释提到我的担忧是一个特定的问题,所以我假设它很好。
【问题讨论】:
-
我投票结束这个问题或转向安全 SE,因为 1)它与安全有关,而不是与编程有关; 2) 这是security.stackexchange.com/questions/255459/…的交叉帖。
标签: python-3.x oauth-2.0 openid-connect pkce