【发布时间】:2017-07-20 23:05:45
【问题描述】:
我们的一位客户要求我们将我们的系统与 ADFS(Active Directory 联合服务)集成,而另一位客户则要求我们与 Okta 集成。他们希望体验是这样的:最终用户打开 Windows 应用程序(在他们加入域的计算机上)并能够通过其中一个身份提供者的隐式身份验证立即使用它。没有额外的点击或注册。如有必要,我愿意创建集成到这些不同身份提供者中的应用程序的多个副本。
我们当前的设置使用 Node/Express 作为后端(托管在亚马逊网络服务上),所有流量都通过此 API 发送。我们的客户端界面是一个 wpf Windows 应用程序。这似乎是一种不太常见的设置。目前,用户必须使用电子邮件和密码注册,并且必须使用相同的电子邮件和密码登录才能开始使用该应用程序。
我对这个问题的三个部分感到非常困惑(我是一名知识有限的实习生,所以请尽可能解释为我是 5 岁)。另一方面,我相信我对单点登录在概念上的工作原理有深刻的理解(我们是服务提供者,ADFS/Okta 是身份提供者)。即使您能回答部分问题,我也将非常感激!
我必须对我们的 API 后端做什么(如果有的话)?我假设一切都只需要通过 Windows 客户端完成,对吗?但后来我看到了一本护照saml package,但我不确定是否需要它来完成这项任务。
我必须对我们的前端做什么?我已经尝试过auth0's sample windows application 之一,但似乎一切仍在通过登录屏幕。至少对于任何社交媒体连接。理想情况下,我们希望在没有登录屏幕的情况下做到这一点,并且希望没有像 Auth0 这样的专有软件(因为我们已经管理了自己的用户数据库)。我们只是想要一些东西,以便在我们的 wpf 应用程序启动时,应用程序查询用户信息(通过 ADFS 或 Okta),然后在幕后,用户自动登录。这里有什么指点吗?
在“主”活动目录 Windows 服务器端(这将在客户端的企业网络上)我必须做什么?我已经看到了设置回调 url、证书、元数据等的提示,但我不确定所有这些是什么。很多问题只是参考,但没有解释什么或为什么需要它?
最后,如果有任何问题含糊不清,我深表歉意,我已尝试进行研究,但似乎所有部分都太高级或不适用于我的设置。感谢您的时间!
【问题讨论】:
-
您对后端 API 使用什么样的身份验证/授权?
-
后端目前使用简单认证。用户通过输入电子邮件和密码(以及其他信息)进行注册,然后我们将其(密码使用库散列)存储在我们的数据库中。当他们登录时,我们确认他们的密码,然后为他们生成一个 json Web 令牌。然后使用该 JWT 对所有其他请求进行身份验证。
标签: wpf single-sign-on saml adfs okta