为ASP添加用户.. NET Core从内部网站



对不起,这里没有代码,因为我正在寻找一个更好的主意,或者如果我在正确的轨道上?

我有两个网站,分别叫它们A和b。

A是一个暴露在互联网上的网站,只有拥有有效账户的用户才能访问。

B是一个内部(intranet)网站(使用Active directory进行Windows身份验证)。我希望应用B(内部网)为应用a创建用户

应用程序A正在使用内置的ASP。. NET JWT令牌认证

我的想法是在外联网网站(a)上公开一个Api,并让(B)访问这个Api。我可以使用CORS来确保只有(B)可以访问端点,但我不确定这是否足够好的保护?我们将从第三方公司执行安全渗透测试,所以这可能无法通过安全测试?

我可以使用实体框架手动更新AspnetUsers表。我不知道这样做是否可行,是否正确。

还有其他解决方案吗?

在我看来,不要将您的内部义务暴露给外部解决方案,如实现api等…

共享数据库通过这种方式,服务器管理是唯一的安全问题,没有人知道你是如何工作的。此外,如何实现每个用户身份验证(无论是Windows身份验证还是JWT)并拥有独立的基础设施并不重要。

对于这个问题有多种解决方案。然后它结束,这真的取决于你的具体标准。

可以这样写:

  • B(内部网)网站,进入数据库并根据需要创建用户。
  • 一个(internet)网站,有一个API暴露必要的端点来创建用户。
  • 一个(internet)网站,不时运行数据迁移以插入用户。

但人生总有起起落落,我试着给你讲讲。

API解决方案Ups:

  • 单一的责任,你只有一段代码接触这个数据库,这使得它更容易减轻副作用
  • 它是"面向未来的";使用这个api,你可以很容易地拥有更多的服务。

唐斯:

  • 攻击面增加,API是公开的,所以受到第三方试图玩它。
  • 在数据库模型更改时维护API(多一件要维护)
  • 不是最快的解决方案。

数据库直接访问

Ups:

  • 攻击面最小。
  • 快速开发

唐斯:

  • 数据库模型需要维护两次
  • 迁移和部署必须协调,难以维护。
  • 使系统更容易出错

发布时迁移

Ups:

  • 开发成本最低
  • 插件的最高性能

唐斯:

  • 不灵活的
  • 非常慢许多部署
  • 手工作业(随着时间的推移成本会增加)

在我看来,我建议您使用API,使用OAuth机制保护API访问。它OAuth太耗时,无法放置到位。也许你可以尝试一些更简单的认证协议。

最新更新