我正在构建一个 OIDC/OAuth 服务器,它将提供一个 SDK,就像使用 Google 登录一样,成为移动应用程序的 IDP。我们想知道偏离协议以简化流程的风险。
流程是这样的:
- 为公司 A 设置了 OIDC 服务器。
- 用户使用 A 公司 OIDC SDK 打开 B 公司的应用程序,并输入电子邮件
- 发送到电子邮件的 Pin 挑战
- 在应用程序中输入密码,屏幕显示同意提示
- 好的,应用程序为用户获取 ID + Auth 令牌
应用程序可访问的令牌仅限于应用程序可访问的有限资源集,并且用户可以随时撤销。
这从正常的 PKCE+Auth 代码流中减少了几个步骤,我很难解释为什么这可能对安全性更不利(除了不遵循广泛接受的标准)。