如果我的所有用户都有 AD 帐户,那么使用集成 Windows 身份验证来保护 .NET WebAPI 以供 JavaS

If all my users have AD accounts, what are the risks to using Integrated Windows Authentication to secure a .NET WebAPI for use by JavaScript clients?

本文关键字:身份验证 Windows 集成 保护 NET JavaS 以供 WebAPI 用户 我的 AD      更新时间:2023-09-26

我们有一个.NET WebAPI,我们希望允许域用户访问。我们希望支持构建 JavaScript 单页应用程序,以便从 WebAPI 获取和呈现数据。这些 JavaScript 应用程序应该能够在加入域的 PC 上的浏览器、网络外部的平板电脑、手机、非 IE 浏览器等中运行。本地客户端是潜在的未来目标,但并非完全需要。

假设我们已经弄清楚了授权端,因此这里的关键问题是针对本地活动目录对用户进行身份验证,以便我们可以在 WebAPI 中间件中看到他们的身份(域''用户(。

如果我们只在 WebAPI(和 IIS(中启用集成 Windows 身份验证,则对于 Intranet 方案来说似乎没问题。我看到很多关于将其用于互联网/域外场景的模糊警告。

具体来说,我看到了对使用 NTLM 的担忧,它不够安全,并且可以通过某些 Web 代理阻止 NTLM。总的来说,这是一种"老式"的方式。但细节不多。

谁能就这些问题向我提供更多细节,或者提出其他安全问题,使这种方法成为一个坏主意?

Kerberos 身份验证适用于 Intranet 中加入域的设备。但大多数手机和平板电脑都无法加入域。此外,要允许针对Active Directory进行身份验证,您必须将AD暴露给Internet,这是您的管理员肯定会反对的。

可以将 ADFS 与向 Internet 公开的代理一起使用,并使用基于令牌的身份验证。这将允许任何具有域凭据的人进行身份验证。ADFS 支持各种协议来获取安全令牌(SAML、WS 联合身份验证、WS-Trust 和 3.0 也支持 OAuth 2.0 代码流(。

ADFS 3.0 还支持自带设备 (BYOD(,它允许你注册将向其颁发令牌的设备。

或者,可以将 Active Directory 同步到 Azure Active Directory (AAD(,并将其用作身份验证提供程序。