微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 SPA 的 Jira Server OAuth 1.0a 身份验证

如何解决使用 SPA 的 Jira Server OAuth 1.0a 身份验证

我正在构建一个应用程序,该应用程序从 Jira 服务器 API 中提取信息以生成一些图形/数据摘​​要。该应用程序使用 React 前端和 nestJS 后端构建。应用程序的数据流是这样的,

  1. 经过身份验证的前端用户向后端请求特定 Jira 项目的图表。

  2. 后端 API 缓存了构建图表所需的大多数 Jira 问题数据,但会向 Jira API 发出请求,询问自上次在后端更新后的任何新问题或更新问题。

  3. 新的 Jira 问题数据在后端处理。

  4. 后端向前端返回完整的图表数据。

目前,由于我处于开发初期,对 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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?