OpenID Connect – 在WinForms和Web应用程序之间使用IdentityServer进行SSO

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

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

桌面应用程序将包含一些生成的Web链接,单击这些链接时会打开一个新的浏览器窗口,指向需要身份validation的Web应用程序的安全区域,但是,单击这些链接后,我不希望用户必须再次登录已通过桌面应用程序validation过一次。

我很难看到哪些流程可以实现这一目标。

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

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

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

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

然而,如果您使用相同的webview打开您的Web应用程序,您可以实现此目的。