使用带有Active Directory ADFS的WPF客户端对云NodeJS后端进行身份验证



我过去也问过类似的问题:了解使用Windows Native WPF客户端登录ADFS,我似乎对如何在WPF Native 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应用软件可能会被反编译以获得证书。我该如何解决这个问题?

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

现在说到点子上,你想从AD验证WPF客户端+节点服务器。在这种情况下,实际上你正在从某个来源(即AD(验证两个应用程序。要做到这一点,你需要一些中间软件,它可以验证这两个应用程序。

解决这种情况的方法是使用Microsoft Identity Server。请访问一些教程,希望它能解决您的需求。

最新更新