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

ASP.NET Core公网站点如何通过内网站点新增用户的方案咨询

原有思路的问题分析

  • 仅依赖CORS限制API访问的方案完全不可行:CORS只是浏览器层面的同源策略限制,无法阻挡curl、Postman等非浏览器客户端直接调用接口,根本达不到防护效果,必然无法通过渗透测试。
  • 直接通过EF操作AspNetUsers表的方案不推荐:不符合ASP.NET Identity的设计规范,手动改表很容易遗漏用户角色、声明、密码哈希规则等关联逻辑,后续Identity原生API调用会出现兼容性问题,同时公网数据库直接向内网开放写入权限也会大幅扩大攻击面,不符合安全规范。

推荐解决方案

方案1:API+服务级认证(改造成本最低)

站点A的用户创建接口不面向普通用户开放,仅针对站点B做专门的服务级认证,防护措施包括:

  • 给站点B单独生成高复杂度的专属API Key,存储在双方的安全配置项中(禁止硬编码),站点B请求接口时在Header中携带API Key,站点A通过中间件统一校验Key的合法性
  • 额外增加站点B出口IP的白名单限制,仅允许白名单IP访问该接口
  • 可选增加请求签名、请求有效期校验,避免重放攻击
    该方案安全性足够通过渗透测试,且改造成本极低。如果需要更高安全等级,可以把API Key替换为双向TLS客户端证书认证。

方案2:内网同步服务(安全性最高)

如果不想在公网站点暴露任何管理类API,可以在内网部署独立的用户同步服务:

  • 同步服务同时对接站点B的AD和站点A的Identity数据库,数据库账号仅授予用户创建相关的最小权限
  • 所有用户创建逻辑调用ASP.NET Identity原生的UserManager.CreateAsync方法实现,不直接操作数据表,保证数据完整性
  • 触发方式可选择站点B创建用户后主动触发同步,或者定时拉取AD新增用户同步到站点A
    全程公网不需要暴露额外接口,适合安全要求极高的场景。

注意事项

不要跨网络传输明文密码,若需要同步账号密码,可选择两边哈希算法对齐,或者引导用户首次登录站点A时重置密码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 10:51:00