jira python oauth: how to get the parameters for authentication?

浪子不回头ぞ 提交于 2019-12-03 02:35:37

I too am using jira-python. Since jira-python uses requests and requests-oauthlib I used those same libraries to implement the OAuth 1 dance necessary to get the tokens.

First, setup JIRA:

  1. Generate RSA public/private key pair (you end up with rsa.pub and rsa.pem files). Your Python code will need access to the private key rsa.pem.
  2. Configure a JIRA application (done in JIRA admin under "Application Links") with "Incoming Authentication" and use the public key generated above. This is where you specify the consumer_key needed by jira-python

Next, the OAuth dance. It's pretty simple with OAuth1Session from requests-oauthlib. Here is a simple example (CLI): JIRA Oauth in Python.

The workflow is described in the requests-oauthlib docs: OAuth 1 Workflow.

So, to summarize:

  • access_token - Obtained at the end of the OAuth 1 Workflow.
  • access_token_secret - Obtained at the end of the OAuth 1 Workflow.
  • consumer_key - Specified when you setup an "Application Link" in JIRA admin.
  • key_cert - The contents of the rsa.pem file (private key). The public key is also added when setting up the "Application Link" in JIRA admin.
Serge Broslavsky

First you need to add an application link to JIRA for your application: https://confluence.atlassian.com/display/JIRA060/Configuring+Application+Links

For the case when the application accessing JIRA is not a web application, you can use arbitrary URL as the application URL, but that url will be used to retrieve the application icon when it's displayed in the list of Application Links in administrative UI of JIRA.

Then you would need to do a so called "oauth dance" to get an OAuth token and its corresponding secret. Please take a look at Atlassian examples here: https://bitbucket.org/atlassian_tutorial/atlassian-oauth-examples/src

Those examples are mostly covering the dance itself, while the authentication using OAuth token+secret (which is received during the dance) is documented here: http://jira.readthedocs.io/en/latest/examples.html#oauth. I hope this helps.

At least it worked for me (also in Python for my case). :)

Unfortunately, other answers don't work with Python 3. I found that https://github.com/rkadam/jira-oauth-generator fully covers Jira OAuth in Python 3.

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!