使 WPF 应用程序(带有节点后端)与 ADFS 一起工作?

Making WPF Application (with Node Backend) Work With ADFS?

我们的一个客户要求我们将我们的系统与 ADFS(活动目录联合服务)集成,而另一个客户要求我们与 Okta 集成。他们希望体验是这样的:最终用户打开 Windows 应用程序(在他们加入域的计算机上),并且能够通过其中一个身份提供者的隐式身份验证立即使用它。没有额外的点击或注册。如有必要,我愿意创建应用程序的多个副本并集成到这些不同的身份提供者中。

我们当前的设置使用 Node/Express 作为后端(托管在亚马逊网络服务上)并且所有流量都通过此 API 发送。我们的客户端界面是一个 wpf Windows 应用程序。这似乎是一个不太常见的设置。目前,用户必须使用电子邮件和密码注册,并且必须使用相同的电子邮件和密码登录才能开始使用该应用程序。

这个问题有 3 个部分让我非常困惑(我是一名知识有限的实习生,所以如果可能的话请像我 5 岁一样解释)。另一方面,我相信我对单点登录在概念上的工作原理有深入的了解(我们是服务提供商,ADFS/Okta 是身份提供商)。如果您能回答部分问题,我将不胜感激!

  1. 我必须对我们的 API 后端做什么(如果有的话)?我假设一切都只需要通过 windows 客户端完成,对吧?但是后来我看到了护照 saml package 但我不确定我是否需要它来完成这项任务。

  2. 我必须对我们的前端做什么?我已经尝试了 auth0's sample windows application 之一,但似乎一切仍在通过登录屏幕进行。至少对于任何社交媒体连接。我们希望在没有登录屏幕的情况下理想地执行此操作,并且希望没有像 Auth0 这样的专有软件(因为我们已经管理了自己的用户数据库)。我们只是想要一些东西,以便在我们的 wpf 应用程序启动时,应用程序查询用户信息(通过 ADFS 或 Okta),然后在所有幕后,用户自动登录。这里有什么指示吗?

  3. 我必须在 'main' 活动目录 Windows 服务器端(这将在客户的企业网络上)做什么?我看到了设置回调 URL、证书、元数据等的提示,但我不确定所有这些都是什么。很多问题只是参考,但没有解释需要什么或为什么需要它?

最后,如果有任何问题含糊不清,我深表歉意,我已尝试进行研究,但似乎所有内容都太高级或不适用于我的设置。感谢您的时间!

ADFS 等依赖于 WS-Fed 和 SAML 2.0 等联合协议,因此 IDP 行为由协议决定。

没有基于浏览器的功能,只能让您登录。

您将始终被带到 IDP 登录屏幕。一旦您通过身份验证,同一 IDP 上的其他应用程序将不需要身份验证。他们可以根据 cookie 无缝登录。

您无法查询用户信息。直到你知道用户是谁。

在 ADFS 端,您可以手动配置 RP(您的应用程序)。