node.js - Angular 2 - Windows 身份验证 - 无 .NET - Node JS API

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

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

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

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

最佳答案

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

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

有几种方法可以根据您的 AD 配置来解决此问题,但通常您必须为您的组织 AD 配置 ADFS,以允许您的云应用程序对您进行身份验证。如果您已经登录,它只会重定向您,您的应用程序将收到不记名 token 。 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://learn.microsoft.com/en-us/azure/architecture/reference-architectures/identity/azure-ad

AD配置不是简单的配置,

关于node.js - Angular 2 - Windows 身份验证 - 无 .NET - Node JS API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48494679/

相关文章:

angular - 如何找到哪个异步操作触发 ngZone(导致更改检测)?

node.js - Angular 6 和 Node Js AWS S3 文件上传进度条

angular - PrimeNG TreeTable 无法获取行索引

jakarta-ee - EJB 3.1 中的简单例份验证

c# - HTTP 错误 401.0 - 未经授权

javascript - 如何限制 ng-repeat 中重复的项目数。 Angular ?

javascript - 如何读取 JSON 文件,并更改一些值并将 json 写入 NodeJS 中的新文件

django - 删除从组继承的用户的权限 - Django

javascript - 在 Express 中加载 CSS 和 JS 文件

node.js - Mongoose - 从 ref 查询中检索对象