2

在 Auth0 Redirect Users from rules的这篇文章之后,我们的应用程序中有以下场景:

  • 用户尝试登录
  • 对于某些特定标准,它们可能会被重定向到询问质询问题的端点
  • 如果回答正确,身份验证机制将使用提到的 url 恢复:

    domain/continue?state=STATE_GENERATED
    

我们构建了一个示例应用程序,可以很好地解决一个问题。用户可以看到 Auth0 生成的“状态”;无论是在重定向中还是在浏览器的网络选项卡中。

所以我们尝试了以下方法:

登录 -> 重定向到挑战问题(状态附加到 url)-> 我们没有继续,而是复制了状态并在浏览器中启动了简历 url:

https://DOMAIN.auth0.com/continue?state=THE_ORIGINAL_STATE

在同一个浏览器中,它使用令牌重定向到我们的应用程序。用户可以缓解这样的挑战问题。

在使用规则完成多因素身份验证并从规则重定向的类似流程中,保护“状态”的最佳实践/推荐方法是什么?

4

1 回答 1

2

用于在state身份验证中防止CSFR,您不能使用它来确保用户在您的“挑战问题”页面上完成了某些操作。您应该简单地通过状态。

您需要做的是使用共享密钥生成一个令牌,该令牌可以从质询问题页面传递到规则,以便对其进行验证。基本上,您可以做的是在用户正确回答问题后,您使用质询页面服务器和规则都知道的秘密生成 JWT 令牌。JWT 令牌可以是任何东西,例如它可以包含类似{ challenge_success: true }.

生成令牌后,您重定向回:

https://DOMAIN.auth0.com/continue?state=THE_ORIGINAL_STATE&token=GENERATED_JWT

然后在规则中阅读并验证token并检查声明是否符合您的预期。

您可以在此处查看其工作原理的完整示例:https ://auth0.com/docs/rules/current/redirect#how-to-securely-process-results

于 2017-09-07T19:18:48.397 回答