在 IIS 的自定义网站中托管时,Azure SSO(示例代码)无法正常工作

Azure SSO (sample code) not working while hosting in custom website in IIS

我正在试用 Microsoft 身份平台的示例代码来为 Web 应用程序添加身份验证和授权。 来自 link (https://github.com/Azure-Samples/ms-identity-aspnet-webapp-openidconnect) 的示例在 IIS Express 中运行良好。 当我尝试在 IIS 中使用自定义网站托管相同内容时,它没有按预期工作。我所遵循的步骤和出现的问题如下所述。

在 IIS EXPRESS 中托管

  1. 示例代码的索引页有使用 Microsoft 登录按钮

  2. 单击使用 Microsoft 登录 时,它会提示输入用户名和密码。

  3. 输入凭据后,索引页面会更新为登录的用户名

在自定义 IIS 网站中托管

  1. 同一应用程序托管在 IIS 的自定义网站中。这里同样在单击 使用 Microsoft 登录 时,它会提示输入用户名和密码

  2. 输入用户名和密码后,正在重定向到索引页面。

  3. 但出现的问题是用户名未更新,并再次显示 Sign in with Microsoft 作为 ClaimsPrincipal class 无法获取用户名

我不明白为什么在同一个应用程序在 IIS Express 中运行良好的同时会发生这种情况。 请帮我解决这个问题。 谢谢。

在 Microsoft azure dev 支持的帮助下,我找到了根本原因。 我们必须在 redirect-uri 值的末尾添加斜杠 (/),如下所示。

<add key="ida:RedirectUri" value="https://localhost/AppTest/" />

在您的 AD 的 Azure 门户中,您应该为相应的应用程序设置相同的 redirect-uri 值。