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

ASP.NET Core Web API与Azure SignalR服务的认证安全问题咨询

问题解答

关于模板自带控制器的处理

  • 直接删除模板自带的控制器是更干净的方案。你的API本来就不需要控制器功能,留着反而多了一个潜在攻击面。加[Authorize]虽然能限制接口访问,但不如直接删除彻底,避免后续因路由配置疏忽带来暴露风险。
  • 要是暂时不想删除,给控制器加[Authorize]确实能让这些接口只对授权用户开放,但前提是你已经正确配置了IWA认证管道,确保授权逻辑能正常运行。不过既然用不上控制器,删掉才是最省心的选择。

关于SignalR Hub的未授权防护

必须做防护。哪怕你删了控制器,SignalR Hub的连接端点依然对外暴露,任何人都能尝试发起连接。结合你的WinForms客户端用IWA认证的场景,建议这么做:

  1. 在Hub类上添加[Authorize]特性,确保只有通过IWA认证的用户才能建立连接。
  2. 还可以在Hub的具体方法上添加[Authorize],或者在方法内部校验用户的Claims信息,进一步限制合法用户才能调用Hub方法。
  3. 要确保ASP.NET Core项目正确配置了Windows身份验证,在Program.cs里启用相关中间件,示例代码如下:
builder.Services.AddAuthentication(NegotiateDefaults.AuthenticationScheme)
   .AddNegotiate();

builder.Services.AddAuthorization(options =>
{
    options.FallbackPolicy = new AuthorizationPolicyBuilder()
        .RequireAuthenticatedUser()
        .Build();
});

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

这样整个应用(包括SignalR Hub)都会强制要求用户认证,从根源上拦截未授权访问。

额外部署建议

部署到Azure后,还可以搭配这些安全措施:

  • 在Azure App Service中启用App Service身份验证,和IWA认证形成双重防护。
  • 配置网络规则,仅允许WinForms客户端所在的IP范围访问API,进一步缩小攻击面。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 14:35:54