我正在考虑如何将一个相当复杂的应用程序与多个客户端(一些基于web的应用程序,一些桌面应用程序-所有这些应用程序服务器通过.net远程处理)迁移到使用带有auth代码流的OIDC身份验证。
挑战之一是桌面客户端,以及如何弹出浏览器窗口以方便登录过程,并检索auth代码(然后可以从桌面客户端传递到服务器,并使用后台通道验证/交换ID令牌--假设我可以安全地执行此操作)。
https://connect2id.com/learn/openid-connect声明:
嵌入式web视图是不可信的,因为没有什么可以阻止应用程序窥探用户密码。用户身份验证必须始终在与应用程序分离的可信上下文中进行(例如,重新调整浏览器)。
(这是在谈论移动应用程序,但我认为这也适用于任何本地应用程序。)
允许windows桌面客户端(单独的服务器应用程序)使用auth代码流的推荐方法是启动浏览器弹出吗?如果是的话,推荐的方法是将web服务器嵌入到windows桌面应用程序中,并让OpenID提供程序使用本地主机的redirect_uri (即将浏览器重定向到嵌入在本机windows应用程序中的服务器上?)
在GitHub上的当前Identity Server 4 repos集合中,我看不到任何与我所要做的特别相似的示例/示例,但可能我遗漏了一些东西。
发布于 2018-01-08 19:12:29
https://github.com/IdentityModel/IdentityModel.OidcClient2上的库(由身份服务器的多米尼克·拜尔维护)似乎是最明显的解决方案。它确实是通过重定向回localhost来工作的,例如,https://github.com/IdentityModel/IdentityModel.OidcClient.Samples上的winforms示例将使用redirect_uri=http://localhost/winforms.client&response_mode=form_post
https://stackoverflow.com/questions/48153032
复制相似问题