【问题标题】:OIDC, Redirect URL and wildcardOIDC、重定向 URL 和通配符
【发布时间】:2018-10-10 16:51:47
【问题描述】:

我相信3.1.2.1。 the specification 的 Authentication Request 部分说我们不能,但我觉得这太不可思议了,我想我会在这里询问一下。

在我的用户通过 OIDC 提供商成功登录后,有没有办法将我的用户重定向到我的域名的 any URL?

我的用例是:

  1. 用户访问我的应用并四处游荡
  2. 她发现了一些有趣的事情要做并且想要互动,例如,评论她觉得有趣的帖子
  3. 应用程序邀请她登录,她被重定向到 OIDC 提供商

由于我无法提前知道我的用户将在第 3 步访问的 URL,因此我希望将她重定向到那里,无论该 URL 可能是什么。

这可行吗? 我是否正确理解规范所说的不是? 如果规范确实说 no,您是否知道任何允许这种用户体验的解决方法?

【问题讨论】:

  • 您使用的是商业 OIDC 提供商,还是您自己的?如果它是您自己的,则重定向到受信任域的通配符 URL 没有安全问题。您只是不想重定向到恶意域。
  • 我正在使用“我自己的”OIDC 提供程序,基于this Django lib。谢谢你的回答

标签: openid openid-connect


【解决方案1】:

您可以使用state 参数来实现这一点,而不会偏离规范。

state 参数与要在客户端执行的页面/操作相关联。

  1. 用户访问我的应用并四处游荡
  2. 她发现了一些有趣的事情要做并且想要互动,例如,评论她觉得有趣的帖子
  3. 应用生成一个状态值并将该值与要执行的交互相关联
  4. 应用程序邀请她登录,她被重定向到 OIDC 提供商,查询字符串中的 state 参数
  5. 同意后,用户被重定向到应用回调
  6. 获取属于查询/片段一部分的状态(取决于响应模式/类型)。
  7. 根据状态值,将用户重定向到预期的页面/操作。

【讨论】:

  • 确实 state 旨在满足您在此处描述的用例;拥有固定的重定向 URI 可防止将授权代码发送到“随机”URL
猜你喜欢
  • 1970-01-01
  • 2022-11-24
  • 2011-08-25
  • 2020-09-28
  • 2011-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多