0

我们正在使用passport-azure-ad允许我们域中的用户使用他们的 Microsoft AD 凭据登录到内部节点应用程序。我让这个系统以前只使用 1 个节点应用程序,但现在我们正在尝试一个新系统,其中我们有 2 个独立的应用程序在本地运行 PM2,并通过 IIS 在相同的 URL 下提供它们,但您可以像这样访问每个应用程序: mywebsite。 com/app1mywebsite.com/app2

只有第二个应用程序需要身份验证。我遇到的问题是当您点击登录时,该passport.authenticate方法似乎正在尝试重定向到相对授权链接: mywebsite.com/{tenant}/oauth2/v2.0/authorize ,而不是实际的授权端点: https ://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize

有谁知道为什么会这样以及我可以做些什么来阻止护照将身份验证端点视为相对链接?这会在每次用户点击 /login 时导致 404,因为/{tenant}/oauth2/v2.0/authorize路由不存在。

4

1 回答 1

0

RIP 给任何在未来发现这个的人。

对我来说,解决方案如下:

  • 打开 IIS 并选择您的服务器(不是站点),然后在 IIS 下 打开应用程序请求路由缓存在此处输入图像描述
  • 在最右侧的“操作”窗格中,选择“代理”下的 “服务器代理设置... ”在此处输入图像描述
  • 取消选中代理设置下的响应标头中的反向重写主机复选框,并确保您点击右窗格上的应用! 在此处输入图像描述
  • 需要注意的是,我还必须更新我的入口点 app.js 以使用扩展 url encoding: app.use(express.urlencoded({ extended: true }));,以及更新身份验证路由中的重定向 URL。Azure 还需要知道您的重定向 URI。
于 2021-02-03T15:07:21.157 回答