【问题标题】:Windows Authentication Between React and ASP.NET Back-endReact 和 ASP.NET 后端之间的 Windows 身份验证
【发布时间】:2019-10-07 07:55:51
【问题描述】:

我有一个使用 2 个 NET Core ASP.NET 层的多层应用程序。

  • 01 层
    • 通过 ASP.NET Core 托管的 React JS
  • 02 层
    • 后端 HTTP 休息

Tier 01 使用 NTLM,因此当用户打开浏览器时,ASP.NET Core 会加载 React SPA,并且我可以从 ASP.NET Core 获取当前 Windows 用户的 IPrincipal。不幸的是,后端始终在 App Pool 服务帐户的上下文中运行。

在这种情况下,从 React 使用运行应用程序的 Windows 帐户调用后端的正确方法是什么?有没有办法在前端NET Core主机中生成一个Token,比如OAuth,然后传给后端?

注意

我确实有架构要求,我不能使用用户名和密码,我不能使用基本身份验证。前端必须使用 NTLM 打开并显示当前的 Windows 帐户(这部分正在工作

【问题讨论】:

  • 您的用户是否在 Azure Active Directory 中声明?还是本地部署的 Active Directory?
  • 公司 AD,我们没有在这种情况下使用 Azure
  • @Raffaeu,我有一个相同的场景,其中我有一个 react 应用程序(在 windows env 中)和用于后端的 spring boot REST API,我只希望每当用户打开我想要的 react 应用程序时在我的后端登录系统用户(总是windows)的用户名进行身份验证。你能推荐点什么吗?
  • 在 Spring 中最简单的方法是使用 Spring 操作来托管您的 React,以便在加载 React 客户端应用程序之前强制进行 Windows 身份验证要在 Spring 上使用 Windows 进行身份验证,您可以轻松使用 Waffle

标签: c# asp.net asp.net-core windows-authentication


【解决方案1】:

我认为您可以使用以下链接中提到的方法。 在第 01 层中,创建一个需要 Windows 身份验证的 API 端点。从身份中获取用户信息并生成令牌。

Use Windows Authentication with OAuth 2.0

对于令牌生成,让我们使用 IdentityServer。 Generate access token with IdentityServer4 without password

【讨论】:

  • 很好,我没有考虑 Identity Server。这就是我的观点,如果我也可以从 Windows 身份验证中获得令牌
猜你喜欢
  • 2018-02-25
  • 1970-01-01
  • 1970-01-01
  • 2010-09-29
  • 1970-01-01
  • 2016-06-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多