如何解决使用 SPA 的 Jira Server OAuth 1.0a 身份验证
我正在构建一个应用程序,该应用程序从 Jira 服务器 API 中提取信息以生成一些图形/数据摘要。该应用程序使用 React 前端和 nestJS 后端构建。应用程序的数据流是这样的,
-
经过身份验证的前端用户向后端请求特定 Jira 项目的图表。
-
后端 API 缓存了构建图表所需的大多数 Jira 问题数据,但会向 Jira API 发出请求,询问自上次在后端更新后的任何新问题或更新问题。
-
新的 Jira 问题数据在后端处理。
-
后端向前端返回完整的图表数据。
目前,由于我处于开发初期,对 Jira 的请求是使用具有 Jira 完全访问权限的临时用户发出的。我想将其切换到一个系统,每个用户将他们的 Jira 帐户“链接”到他们在应用程序中的帐户,以利用 Jira 中实现的访问控制,而不是依赖已发布的通用帐户。目前,应用程序的身份验证是在前端使用 AzureAD for Microsoft SSO 使用 msal-react 库完成的,然后后端使用passport-azure-ad 库的 BearerStrategy 对请求进行身份验证。
这就是我想弄清楚的问题。我需要使用 OAuth 1.0a 对 Jira 进行身份验证,因为不幸的是,这就是 Jira Server 版本支持的全部内容。根据我的研究,这只能在更传统的“客户端 服务器 Jira API”流程中实现。但由于后端服务器不托管前端,我的设置无法像那样工作。
Jira Application Link 中配置的回调 URL 不能作为前端,因为 OAuth 1.0a 标准要求使用私钥,而不能在前端处理。我想的是让回调 URL 由后端托管,以便前端的用户单击“与 Jira 链接”按钮,该按钮打开一个新选项卡,他们在其中使用 Jira 进行身份验证,然后 Jira 将令牌返回后端的端点。
此解决方案的一个问题是,我不确定如何将该令牌与系统中的正确用户相关联,因为来自 Jira 身份验证的信息不会有任何与系统用户 ID 关联的 ID,它只会包含此时我的系统不知道的 Jira 用户 ID。我也想知道是否有更好的方法来解决这个问题,这似乎是最有可能但不完整的解决方案。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。