Angular 2 - Windows 身份验证 - 没有 .NET - Node JS API

Angular 2 - Windows Authentication - without .NET - Node JS API

我的应用程序是一个 Angular 2+ SPA,它使用 Azure Active Directory,后端 API 在 Node JS 中实现。目前,当用户尝试登录时,会出现一个 Azure 弹出窗口,用户输入 login/password 将在 AD 中进行身份验证,AD returns 一个我用来验证 Node JS 的持有者令牌 API.

我的要求是使用集成 Windows 身份验证 (IWA)。前端应使用 Windows 身份验证从 AD 获取承载令牌,而不是要求用户输入 login/password。我怎样才能做到这一点?无论我看到什么文章,都在谈论 IIS 和基于 .Net 的应用程序。我是否应该始终使用基于 .NET 的 API 来使用 Windows 身份验证?任何提示将不胜感激。

请注意,API 是托管在云中的企业应用程序。所有用户都是公司内部员工,并在 AD 中注册。

鉴于您已经设置了 Azure AD 同步,以下内容可能会有用。 AAD Connect 允许您使用 SSO 无缝登录: https://docs.microsoft.com/en-us/azure/active-directory/connect/active-directory-aadconnect-sso

Azure 服务不支持 Windows 身份验证,除非您使用 IIS 设置 VM。我根据您的要求假设“...获取不记名令牌而不是要求用户输入 login/password”意味着单点登录。也就是说,当用户在其 PC 上登录到域时,他们不必再次登录到您的应用程序。

根据您的 AD 配置,有几种方法可以解决这个问题,但通常您必须为您的组织 AD 配置 ADFS 以允许您的云应用程序对您进行身份验证。如果您已经登录,它只会重定向您,您的应用程序将收到不记名令牌。 https://azure.microsoft.com/en-au/resources/videos/configuring-ad-fs-for-user-sign-in-with-azure-ad-connect/

另一种选择是使用 Azure AD 同步将您的组织 AD 与 Azure AD 连接起来。以下 link 对此有所帮助。然后,您可以将您的应用配置为针对 Azure AD 进行身份验证(就像目前所做的那样)。 https://docs.microsoft.com/en-us/azure/architecture/reference-architectures/identity/azure-ad

AD配置不是简单的配置,