使用api密钥访问JIRA API,无需用户名和密码

时间:2015-01-28 13:22:23

标签: authentication jira jira-rest-api

目前,我正在使用用户名和密码访问C#.Net应用程序中的JIRA API。但是我需要访问JIRA API而不输入用户名和密码,即使没有哈希的用户名和密码也是如此。有没有办法创建API密钥并使用它来访问JIRA API?

3 个答案:

答案 0 :(得分:2)

是的,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库。

答案 1 :(得分:1)

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

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

然后,您可以将[user-email]:[auth-token]用作基本auth的用户/密码。例子:

卷曲

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'
  }
)

答案 2 :(得分:0)

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

对我而言,端点以下与基本身份验证一起工作:

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