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

时间:2015-03-06 17:12:12

标签: c# oauth-2.0 openid thinktecture-ident-server openid-connect

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

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

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

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

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

1 个答案:

答案 0 :(得分:0)

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

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

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

尽管如此,如果您使用相同的webview打开您的网络应用程序,您可以实现此目的。