【发布时间】:2021-08-12 23:14:35
【问题描述】:
我的任务是更新现有 WPF 应用程序以支持 OIDC 到 Okta 实例。我计划保持这个 IdP 独立,所以我不使用 Okta 的 SSO 库。
桌面应用程序检索一个授权密钥(这只是一个加密的表单身份验证票),我们使用它来生成用于 API 的令牌。我们希望避免改变目前的工作方式,争取 MVP。
我的第一次尝试是使用IdentityModel.OidcClient。使用手动模式,我启动浏览器并按预期从 Okta 取回身份。不幸的是,我的应用程序需要来自我们系统的用户,而不是 OIDC 用户。
此时,我可以将访问令牌发送到服务器,对其进行验证,然后使用我们当前的方法生成授权密钥以返回,这样桌面的更改就会最小。
但在这一点上,桌面本身甚至调用 Okta 是否有意义?
一项提案仍在启动浏览器,但让我们的网站(支持桌面客户端的网站)向 Okta 发起挑战。该站点也将支持 OIDC 到 Okta。然后该站点将收到回调。在那个回调端点中,我们可以验证用户,然后生成一个授权密钥(我们已经在桌面客户端中使用的那个)。然后重定向到 localhost(就像我们在第一次 stab 中使用 OIDC 客户端一样),并通过查询字符串获取授权密钥。
这是错误的方法吗?
不知道在这里做什么。
【问题讨论】:
标签: wpf oauth-2.0 openid-connect