使用 winforms 和 identityserver4 在网站上进行 SSO
Sso on website using winforms and identityserver4
对于我的公司,我们需要针对以下简单场景的解决方案:
我们有一个 winforms 应用程序,我们在本地登录。
在此 winforms 应用程序中,有一个帮助按钮,按下此按钮后,网络浏览器应打开,用户在帮助站点中进行身份验证,而无需再次输入凭据。
帮助站点使用 OpenId-connect 进行授权。
我们想使用 Identityserver 作为基础。
我研究了这个例子:https://github.com/IdentityServer/IdentityServer4/tree/main/samples/Quickstarts/3_AspNetCoreAndApis
这里的步骤(对于 openid 连接)是:
帮助站点上的 1 个访问授权页面
2 个站点重定向到身份服务器登录页面
3 用户登录,identiyserver 使用授权码重定向到重定向页面
4 帮助站点获取此授权码并将其交换为有效令牌。
5 用户已通过身份验证
我明白重定向原理,但是让用户重新登录很烦人。
所以我想做的(我认为)是:
1 登录 identityserver 令牌端点并在 winforms 应用程序
中以编程方式使用 clientid/client 秘密获取令牌
2 以某种方式获得授权码以跳过步骤 2 的登录过程和
3 使用 url 和步骤 3 中的代码打开浏览器。
这有可能吗?
更新我已经得出结论,openid connect 不适合我的情况
正如 Mackie 在上一条评论中所说,openid connect 不是正确的解决方案。我正在研究其他技术,例如一次性密码 link 来实现我们的需求。谢谢麦基
对于我的公司,我们需要针对以下简单场景的解决方案: 我们有一个 winforms 应用程序,我们在本地登录。 在此 winforms 应用程序中,有一个帮助按钮,按下此按钮后,网络浏览器应打开,用户在帮助站点中进行身份验证,而无需再次输入凭据。 帮助站点使用 OpenId-connect 进行授权。
我们想使用 Identityserver 作为基础。
我研究了这个例子:https://github.com/IdentityServer/IdentityServer4/tree/main/samples/Quickstarts/3_AspNetCoreAndApis
这里的步骤(对于 openid 连接)是:
帮助站点上的 1 个访问授权页面
2 个站点重定向到身份服务器登录页面
3 用户登录,identiyserver 使用授权码重定向到重定向页面
4 帮助站点获取此授权码并将其交换为有效令牌。
5 用户已通过身份验证
我明白重定向原理,但是让用户重新登录很烦人。
所以我想做的(我认为)是:
1 登录 identityserver 令牌端点并在 winforms 应用程序
中以编程方式使用 clientid/client 秘密获取令牌
2 以某种方式获得授权码以跳过步骤 2 的登录过程和
3 使用 url 和步骤 3 中的代码打开浏览器。
这有可能吗?
更新我已经得出结论,openid connect 不适合我的情况
正如 Mackie 在上一条评论中所说,openid connect 不是正确的解决方案。我正在研究其他技术,例如一次性密码 link 来实现我们的需求。谢谢麦基