You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

寻求指导:域外部署的.NET 6应用实现域内用户Azure AD免密登录

基于Azure AD实现域内用户免密访问域外.NET 6应用的方案指导

一、本地AD与Azure AD的轻量集成(最小改动)

无需大规模修改本地AD,通过以下两种模式即可实现本地域用户身份同步,对现有环境影响极小:

  • 密码哈希同步(PHS):仅同步本地AD用户的密码哈希到Azure AD,无需部署额外代理,适合不确定客户本地AD维护方式的场景
  • 传递身份验证(PTA):需在本地部署1-2台PTA代理服务器,用户登录时由本地AD验证凭据,Azure AD仅负责身份转发,同样无需改动本地AD核心配置

二、Azure AD代理(PTA代理)安装步骤

若选择传递身份验证模式,按以下流程安装代理:

  1. 在本地域内的Windows Server 2016+服务器上,登录Azure门户进入Azure AD Connect的传递身份验证配置页
  2. 下载Azure AD Connect Authentication Agent安装包
  3. 运行安装包,使用Azure AD全局管理员账号完成代理注册
  4. 安装完成后,代理会自动与Azure AD建立连接(默认使用443 outbound端口)
  5. 可部署多台代理实现高可用,避免单点故障

三、.NET 6应用的Azure AD认证配置

1. Azure AD应用注册配置

  • 在Azure门户创建应用注册,设置重定向URI为你的应用地址(例如https://your-app-domain/signin-oidc)
  • 启用ID令牌(用于OpenID Connect认证)
  • 在「API权限」中添加User.Read委派权限并授予管理员同意

2. 应用代码配置

在项目的Program.cs中添加认证逻辑:

var builder = WebApplication.CreateBuilder(args);

// 添加Azure AD认证服务
builder.Services.AddAuthentication(OpenIdConnectDefaults.AuthenticationScheme)
    .AddMicrosoftIdentityWebApp(builder.Configuration.GetSection("AzureAd"));

// 配置授权策略
builder.Services.AddAuthorization(options =>
{
    options.FallbackPolicy = options.DefaultPolicy;
});

builder.Services.AddRazorPages().AddMicrosoftIdentityUI();

var app = builder.Build();

// 启用认证与授权中间件
if (!app.Environment.IsDevelopment())
{
    app.UseHsts();
}

app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();

app.UseAuthentication();
app.UseAuthorization();

app.MapRazorPages();
app.MapControllers();

app.Run();

3. 配置文件(appsettings.json)

添加Azure AD相关参数:

"AzureAd": {
  "Instance": "https://login.microsoftonline.com/",
  "Domain": "your-azure-ad-domain.onmicrosoft.com",
  "TenantId": "your-tenant-id",
  "ClientId": "your-app-client-id",
  "CallbackPath": "/signin-oidc"
}

四、实现免密登录的关键设置

  • 在Azure AD的企业应用中,将单点登录模式设为OpenID Connect,并启用Seamless Single Sign-On(无缝SSO)
  • 确保域内用户的设备已加入本地AD域,且网络可访问Azure AD的443端口
  • 无缝SSO会自动调用用户当前的域登录凭据完成认证,无需手动输入账号密码

五、注意事项

  • 若客户本地AD无法直接访问互联网,需为PTA代理配置内网代理服务器以连接Azure AD
  • 密码哈希同步模式下,本地AD密码变更后会自动同步到Azure AD,同步延迟通常在几分钟内
  • 测试时可使用域内客户端设备,登录域账号后直接访问应用,验证自动认证效果

内容的提问来源于stack exchange,提问作者Prashant Zanjad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 17:40:28