Auth0应用程序重定向回Apache WebApp中的原始URL

时间:2017-01-05 04:26:10

标签: apache openid-connect auth0

注意:类似问题涉及Auth0 with Angularseveral years out of date并参考之前的版本。

我们正在使用Auth0为使用mod_auth_openidc在Apache上运行的一组应用程序提供身份验证。

唯一的自定义是mod_auth_openidc配置为通过以下方式检查用户是否有权访问特定应用程序:

<location /app1/>
    AuthType openid-connect
    Require claim valid_app1:true
</Location>

<location /app2/>
    AuthType openid-connect
    Require claim valid_app2:true
</Location>

Auth0设置(valid_app1或valid_app2等)中定义的用户元数据定义用户是否可以访问位于website.com/app1website.com/app2等的应用程序。

目前,当用户尝试访问任何应用程序时,用户正确重定向到Auth0登录页面,正确拒绝那些无权访问的用户该申请。

然而,在成功登录后,用户将被重定向到回调页面(定义为Auth0设置中的第一个回调和auth_openidc.conf中的OIDCRedirectURI,例如website.com/auth并且回到用户试图加载的应用程序。

如何使用Apache配置Auth0,以便用户返回到他们最初尝试加载的应用程序的URL而不是回调URL?

不可

  • website.com/app1 > AUTH0 login > website.com/app1
  • website.com/app2 > AUTH0 login > website.com/app2

  • website.com/app1 > AUTH0 login > website.com/auth

1 个答案:

答案 0 :(得分:0)

您可以通过几种不同的方法来实现这一目标:

  1. 您可以在Auth0中的客户端应用程序配置中注册多个回调/重定向URL,然后每个应用程序通过告知Auth0与其关联的重定向URL来启动登录过程。
  2. 您可以将您的应用程序表示为Auth0中的多个客户端应用程序,其中每个应用程序都有一个特定的回调重定向URL,并且每个应用程序都使用该重定向URL启动该过程。
  3. 您可以继续使用相同的回调网址,然后再次重定向到最终目的地。这意味着通过利用OAuth状态参数了解用户启动流程的位置(此参数也应用于CSRF保护,请参阅Using the State Parameter
  4. 选项 1。 2。非常相似,通常如果我们谈论概念上不同的应用程序,您可以选择 2 ,如果它是一个单一的应用程序,只想通过两种不同的方式处理回调,你可以选择 1。

    最后,选项 3 允许在第一个选项中执行类似的操作,也就是说,相同的应用程序可以在登录后有条件地将用户重定向到不同的位置,但是没有需要在Auth0端注册其他重定向URL。它是应用程序本身决定用户在回调URL处理登录后的去向。