我有一个 Visual Studio 解决方案,其中在 IIS 中部署了多个 ASP.NET MVC Web 项目 (.NET 4.8)。在“home”项目(即启动项目)中添加了 Azure AD 身份验证,工作正常。
如果尝试访问其他项目的页面,我会收到身份验证错误。
如何实现所有项目的统一认证?所有项目都在同一个域名下。
要对所有 .NET Framework 应用程序使用通用 Azure AD,您需要确保所有应用程序都使用相同的凭据。
web.config
文件中完成相同的配置。根据此MSDoc,
单点登录是一种身份验证方法,允许用户使用一组凭据登录多个独立的软件系统。
通过 SSO,用户可以访问所有需要的应用程序,而无需使用不同的凭据进行身份验证。
要实现通用身份验证,您需要在Web应用程序之间使用共享身份验证cookie。
网站通常由协同工作的各个网络应用程序组成。为了提供单点登录 (SSO) 体验,站点内的 Web 应用程序必须共享身份验证 cookie。请参阅此博客来配置
使用 Microsoft Azure AD 进行单点登录 (SSO)
共享Cookie设置:
安装以下 NuGet 包
Microsoft.Owin;
Microsoft.Owin.Security.Cookies;
Microsoft.Owin.Security;
Microsoft.AspNetCore.DataProtection;
Microsoft.Owin.Security.DataProtection;
Microsoft.Owin.Security.Interop;
Microsoft.AspNetCore.Identity;
[assembly: OwinStartup(typeof(WebApplication3.Startup))]
namespace WebApplication3
{
public class Startup
{
public void Config(IAppBuilder app)
{
ConfigureAuth(app);
}
public void ConfigureAuth(IAppBuilder app)
{
---
---
}
}
}