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

Azure Web App是否支持Windows身份验证?如何配置?

当然可行!我帮你梳理清楚整个流程,从可行性确认到具体操作步骤,一步步来:

可行性确认

完全没问题!不过有个前提:你的Web App必须是运行在Windows App Service计划上的——Linux计划的Web App不支持Windows身份验证。不管是普通多租户的Web App,还是部署在App Service Environment(ASE)里的,都能配置,只是ASE的场景支持更贴近本地AD的验证方式。

具体配置步骤

我分Portal操作和代码配置两部分来讲,你跟着做就行:

1. Azure Portal端启用身份验证

  • 登录Azure Portal,找到你的目标Web App
  • 左侧菜单里点Authentication(认证)选项
  • 在「身份提供商」区域,点击Add identity provider(添加身份提供商)
  • 选择Microsoft作为提供商,然后在「高级设置」里,「允许的令牌受众」可以留空,也可以填你Web App的客户端ID(如果有特定需求的话)
  • 往下滑到「认证设置」,把「当请求未认证时采取的操作」设为Log in with Microsoft
  • 保存设置,Azure会自动帮你配置基础的身份验证中间件

2. 应用代码侧配置(以.NET为例,这是Windows身份验证最常用的场景)

如果你用的是ASP.NET Core 3.1+

打开Program.cs,添加认证服务和中间件:

// 添加Windows身份验证服务
builder.Services.AddAuthentication(Microsoft.AspNetCore.Authentication.Negotiate.NegotiateDefaults.AuthenticationScheme)
    .AddNegotiate();

// 配置授权策略,确保未认证用户无法访问
builder.Services.AddAuthorization(options =>
{
    options.FallbackPolicy = options.DefaultPolicy;
});

// 启用认证和授权中间件(注意顺序要对,在UseRouting之后,UseEndpoints之前)
app.UseAuthentication();
app.UseAuthorization();

如果你用的是传统ASP.NET Framework

修改Web.config里的配置节点:

<system.web>
  <!-- 启用Windows身份验证 -->
  <authentication mode="Windows" />
  <!-- 拒绝未认证的匿名用户 -->
  <authorization>
    <deny users="?" />
  </authorization>
</system.web>

3. 验证配置是否生效

访问你的Web App,浏览器会自动弹出Windows身份验证的登录窗口(如果你是域内机器,可能会自动用当前登录账户完成验证)。登录成功后,你可以在应用里通过User.Identity.Name(.NET里)获取登录的用户名,确认身份验证生效。

额外注意事项
  • 多租户环境下的Windows身份验证依赖Azure AD,所以用户必须是Azure AD账户,或者本地AD同步到Azure AD的账户
  • 如果要直接用本地Active Directory的身份验证,得把Web App部署到加入了你的域的App Service Environment(ASE)里,这种场景下可以完全复用本地AD的验证体系
  • 一定要确保你的Web App启用了HTTPS,身份验证的敏感信息需要加密传输

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:55:34