使用WPF客户端和Active Directory ADFS对Cloud NodeJS后端进行身份验证

时间:2018-12-12 01:26:11

标签: c# node.js wpf saml adfs

我过去曾问过类似的问题:Understanding ADFS Login With Windows Native WPF Client,而且我似乎对如何在WPF本机Windows应用程序上使用活动目录ADFS进行身份验证有更好的理解(我可以使用ADAL库),但是我仍然不知道如何将身份验证转移到远程服务器(NodeJS服务器)

我还发现我可以执行以下操作,以便本机WPF应用程序找到当前登录的用户,并且使用此功能,WPF知道用户是合法用户,因为他们已经登录到他们的Windows帐户。

var context = new PrincipalContext(ContextType.Domain, DOMAINNAME); var user = UserPrincipal.FindByIdentity(context, IdentityType.SamAccountName, Environment.UserName);

但是,我不知道如何将身份验证转移到我们的远程NodeJS服务器(没有UI,WPF应用程序是UI)。我可以发送远程应用程序详细信息,例如samAccountName为this,但是任何人都可以发送到我们的远程服务器并声明其samAccountName为this。 WPF知道用户是合法的,但是我们的NodeJS应用程序无法验证这一点。如果我将私有证书添加到WPF应用程序以供NodeJS服务器进行验证,则可以将WPF应用程序反编译以获取证书。我该如何解决?

1 个答案:

答案 0 :(得分:1)

您正在考虑在错误的上下文中进行身份验证。例如由于节点服务器为您提供服务,因此每个客户端都应向节点服务器标识自己,以便使用节点服务。 在您的实现中,您正在从AD验证wpf,这是可以的,但是WPF应用程序充当Node服务器的客户端,因此应该进行另一次验证,以声明有效的wpf客户端已连接到服务器。

现在,您要从AD对WPF客户端+节点服务器进行身份验证。在这种情况下,实际上您正在从某个来源(即AD)对这两个应用程序进行身份验证。为此,您需要一些中间件,该中间件可以验证两个应用程序。

这种情况的答案是Microsoft Identity Server。请访问一些教程,希望它可以解决您的要求。

相关问题