使用没有用户名和密码的 api 密钥访问 JIRA API

Posted

技术标签:

【中文标题】使用没有用户名和密码的 api 密钥访问 JIRA API【英文标题】:Access JIRA API with api key without username and password 【发布时间】:2015-03-27 10:02:54 【问题描述】:

目前我正在使用用户名和密码在 C#.Net 应用程序中访问 JIRA API。但是即使没有散列的用户名和密码,我也需要在不输入用户名和密码的情况下访问 JIRA API。有什么方法可以创建 API 密钥并使用它访问 JIRA API?

【问题讨论】:

【参考方案1】:

是的,JIRA 为此支持 OAuth,请参阅:https://developer.atlassian.com/display/JIRADEV/JIRA+REST+API+Example+-+OAuth+authentication

很遗憾,没有提供 C# 示例代码,但您应该能够在此处从其他编程语言组装解决方案: https://bitbucket.org/atlassian_tutorial/atlassian-oauth-examples/src

无论如何,您都应该使用通用 OAuth 库。

【讨论】:

太棒了。我会检查这个。谢谢!! 我得到了 accesstoken 和 java -jar rest-oauth-client-1.0.one-jar.jar 请求 ACCESS_TOKEN JIRA_REST_URL 这些命令返回的值具有正确的值。如何使用 c# 实现这一目标 我为此***.com/questions/28214485/…创建了另一个问题【参考方案2】:

当您需要实际用户登录并且您处于浏览器的上下文中时,Oauth 非常适合。

但是,对于未链接到任何特定用户(例如 CI)的服务器到服务器通信,您可能需要在您的 jira 服务器上创建一个“机器人”帐户并使用 API 令牌进行身份验证。此处描述了令牌的创建:https://confluence.atlassian.com/cloud/api-tokens-938839638.html

然后您可以使用 [user-email]:[auth-token] 作为基本身份验证的用户/密码。例子:

卷曲

curl -u bot@company.com:AAABBBCCC https://[company].atlassian.net/rest/api/latest/issue/DEV-123

NodeJS 得到:

const issueContent = await gotService.get(
  'https://[company].atlassian.net/rest/api/latest/issue/DEV-123',
  
    auth: 'bot@company.com:AAABBBCCC'
  
)

【讨论】:

【参考方案3】:

最好的方法是阅读您正在使用的 JIRA 版本的文档,因为不同的版本可能有不同的方法来处理 Rest API。

对我来说,以下端点使用基本身份验证:

curl -u username:password -X GET -H "Content-Type: application/json" http://localhost:8080/rest/api/2/issue/createmeta

【讨论】:

以上是关于使用没有用户名和密码的 api 密钥访问 JIRA API的主要内容,如果未能解决你的问题,请参考以下文章

构建 API 密钥和访问令牌

Node-Red Watson“未经授权的访问”但API密钥字段已填写

使用明文密码访问 REST API 的最佳实践

API 密钥认证和用户认证最佳实践

为仅使用 ssh 密钥的用户创建密码

如何使用 Twitter API 获取用户访问令牌和访问密钥