1

我设置了 Thinktecture IdentityServer,我有两个受信任的客户端应用程序,一个 WinForms 应用程序和一个 Web 应用程序,我想在它们之间实现 SSO。

用户将首先打开桌面应用程序,该应用程序具有一个通过身份服务器进行身份验证的登录页面。

桌面应用程序将包含一些生成的 Web 链接,单击这些链接会打开一个新的浏览器窗口到需要身份验证的 Web 应用程序的安全区域,但是,单击这些链接后,我不希望用户必须再次登录,因为他们有已经通过桌面应用程序进行了一次身份验证。

我正在努力看看哪些流程可以实现这一点。

OpenID connect 或 Thinktecture IdentityServer 提供了哪些机制(如果有)可以促进这个过程?

4

1 回答 1

1

没有任何开箱即用的机制,因为 SSO 是通过在用户代理 (UA) 中设置 cookie 来实现的。因此,如果用户在您的 winforms 应用程序的 web 视图中进行身份验证,然后它会像这样启动浏览器

System.Diagnostics.Process.Start("http://www.website.com");

为了打开网络应用程序,它显然不会工作,因为它不是同一个UA。

不过,如果您使用相同的 webview 打开您的 web 应用程序,您可以实现这一点。

于 2016-06-23T13:57:53.823 回答