我们想要编写一个Web应用程序(使用ASP.NET Core),通过自定义URL协议启动旧版Windows桌面应用程序。 Web应用程序必须使用授权服务器通过OAuth 2获取访问(承载)令牌,通过它可以通过ASP.NET Core Web API访问用户的资源。桌面应用程序也必须能够通过Web API访问用户的资源。桌面应用程序如何获取访问令牌?
我可以考虑以下选项:
我们不希望使用第一个和第二个选项,因为我们想要单点登录。
第三种选择似乎并不是一个好主意,因为用户台式PC上的恶意软件也可以获取和使用访问令牌。
第四个选项似乎是剩下的唯一选择。据我所知,授权码是临时(短期)一次性令牌。除此之外,您还需要知道获取访问令牌的客户端密钥。 任何人都可以确认选项四是要走的路吗?或者我忽略了什么?
此方案中是否有IdentityServer的示例?
答案 0 :(得分:0)
两个应用程序都应使用系统浏览器共享登录会话。这样,用户就可以在本机应用程序中获得SSO(反之亦然)。
规范描述了原生应用的最佳做法: https://tools.ietf.org/html/draft-ietf-oauth-native-apps-12