【问题标题】:Angular 2 - Windows Authentication - without .NET - Node JS APIAngular 2 - Windows 身份验证 - 没有 .NET - Node JS API
【发布时间】:2018-07-07 18:14:31
【问题描述】:

我的应用程序是 Angular 2+ SPA,它使用 Azure Active Directory,后端 API 在 Node JS 中实现。目前,当用户尝试登录时,会出现一个 Azure 弹出窗口,用户输入登录名/密码,这将在 AD 中进行身份验证,AD 返回一个承载令牌,我使用它来验证 Node JS API。

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

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

【问题讨论】:

  • 用户是使用 Azure AD 还是您的组织 AD 登录?
  • 他们使用组织 AD,但组织 AD 和 Azure AD 是同步的。
  • 添加了一些细节,希望对您有所帮助。

标签: node.js angular authentication azure-active-directory windows-authentication


【解决方案1】:

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

Azure 服务不支持 Windows 身份验证,除非您使用 IIS 设置 VM。我根据您的要求假设“......获取不记名令牌而不是要求用户输入登录名/密码”意味着单点登录。也就是说,当用户在其 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 连接起来。以下链接对此有所帮助。然后,您将配置您的应用程序以针对 Azure AD 进行身份验证(就像当前所做的那样)。 https://docs.microsoft.com/en-us/azure/architecture/reference-architectures/identity/azure-ad

AD配置不是简单的配置,

【讨论】:

  • 非常感谢。这真的很有帮助。虽然我还不能配置和测试,但我现在知道我需要往哪个方向走。
猜你喜欢
  • 2017-07-27
  • 2013-08-02
  • 2018-11-24
  • 2014-06-04
  • 1970-01-01
  • 2017-04-03
  • 2017-12-13
  • 1970-01-01
  • 2017-08-10
相关资源
最近更新 更多