REST API Authentication On Atlassian using Google Apps as OAuth Provider

REST API Authentication plugin, will let you authenticate the any application (Jira, Confluence, Bitbucket) APIs using any third party OAuth/OIDC provider or API Tokens. The app supports Azure AD, Keycloak, Okta, AWS Cognito, Google, Github, Slack, Gitlab, Facebook and any custom provider.

Atlassian provides REST APIs to perform a number of operations such as Create Page, Delete Page, Add Comment, Create Space, etc. However, it supports only two authentication methods for REST APIs:
  1. Basic Authentication
  2. Using OAuth 1.0
The REST API Authentication plugin allows you to use any third party OAuth 2.0 provider/ OpenID connect to authenticate REST APIs of any application (Jira, Confluence, Bitbucket). Here we will go through a guide to configure Azure AD as Provider.

Download And Installation

  • Log into your atlassian instance as admin.
  • Navigate to the settings menu and Click Manage Apps.
  • Click Find new apps or Find new add-ons from the left-hand side of the page.
  • Locate API Token/OAuth Authentication app.
  • Click Try free to begin a new trial or Buy now to purchase a license.
  • Enter your information and click Generate license when redirected to MyAtlassian.
  • Click Apply license.

Step 1: Configure the Google server:

  • Log in to the Google website for Developer Console.
  • Click on Select a project, and then click on NEW PROJECT, and enter a name for the project. Click Create. (If project is not created)
Rest API OAuth, API token, API Key authentication for Jira and Confluence Google Apps Rest API OAuth, API token, API Key authentication for Jira and Confluence Google Apps registration
  •  Select your project. On the Credentials page, click on Create credentials, and select  OAuth client ID.
Rest API OAuth, API token, API Key authentication for Jira and Confluence Google apps
  • You may be prompted to set a product name on the Consent screen; if so, click Configure consent screen, supply the requested information, and click Save to return to the Credentials screen.
  • Select Web Application. Enter application's base URL as callback and click Create.
  • Copy the client ID and client secret.
Rest API OAuth, API token, API Key authentication for Jira and Confluence Google Apps

Step 2: Fetch Access token through POSTMAN:

  • Open the Postman Application (Here is the link to download Postman Application).
  • Go to the Authorization tab.
  • From the dropdown select type as OAuth 2.0 and click on Get access token.
  • Add the following information from the table below.
  • Postman starts the authentication flow and prompts you to use the access token.
  • Select Add token to the header.
Field Value
Grant type Authorization Code or Client Credentials
Callback URL Enter the application's base URL if you dont have a callback URL
Auth URL  https://accounts.google.com/o/oauth2/auth
Access token URL  https://www.googleapis.com/oauth2/v3/token
Client ID Enter the Google Client ID
Client secret Enter the Google Client secret
Scope email
Client Authentication Send as Basic Auth Header
Rest API OAuth, API token, API Key authentication for Jira and Confluence Google Apps Access Token
  • Copy the Access Token or click on Use Token.
A sample access token from Google App's Provider looks like this.
e8ec210628306b1df26ff61e6b9b3195814a2d79d38a2c7c1dc5836f6ddd7143

Step 3: Fetch Username through Google Apps:

  • Choose the method type as "GET".
  • Enter the interoception Endpoint from the plugin to fetch the username in the Request URL. For Google APP's it is "https://www.googleapis.com/oauth2/v1/userinfo?alt=json&".
  • Go to the Authorization tab select the Bearer Token and enter the access token here.
  • Add the header "content-type: application/json" and click on Send.
Rest API OAuth, API token, API Key authentication for Jira and Confluence Google Apps Username
Request:
     curl 
     -X GET 
     -H "Authorization: Bearer <Access Token>" 
     -H "Content-type: application/json" 
     https://www.googleapis.com/oauth2/v1/userinfo?alt=json&
Copy the attribute value against the username, you will need to configure it in plugin. In this example, the value is "email".

Step 4:Configure the Rest API plugin:

Step 1: Enable Rest API Authentication:
  • After installing the app, click on Configure to configure plugin.
  • Select the Authentication type and navigate to Oauth/OIDC tab, then click on Configure.
  • From the drop down select Google as OAuth Provider.
  • Enter the attribute value against which we received the username in the Postman response.
  • Save the settings.
  • Now navigate to the Global Settings tab.
  • Here you will have to Enable the Authentication through Enable REST API Authentication and click on Save.
GoogleApp
Step 2: Disable Basic Authentication:
  • Disabling this will restrict all the REST API call made using Basic Authentication.

Step 5: User Restriction:

Step 1: Group Based Restriction:
  • Navigate to User Restriction Tab and then Group Based Restriction.
  • Check the Restrict Access to API.
  • Enter the Group to allow user to access Rest API.
  • Save the settings.
Step 2: IP Restriction:
  • Navigate to User Restriction Tab and then IP Restriction.
  • Check the Restrict Access to API by IP address.
  • Add IP Address or range to allow Rest API.
  • Save the settings.

Step 6: Test REST API using access token:

  • Call any REST API. Include the access token in the Authorization header. Here’s an example of fetching content from Jira.
  • Go to the Postman application select method type as GET and enter the Request URL. For eg. http://{Jira_Base_URL}/rest/api/2/project
  • In the Authorization tab select type as Bearer Token.
Rest API OAuth, API token, API Key authentication for Jira and Confluence Confluence-Rest-API-AzureAD B2C  
  • In the Header tab add the header “content-type: application/json and send the request.
Rest API OAuth, API token, API Key authentication for Jira and Confluence Confluence-Rest-API-AzureAD B2C
Request:
     curl 
     -X GET  
     -H "Authorization: Bearer <Access Token>" 
     -H "Content-type: application/json" 
     http://{jira_base_url}/rest/api/2/project
  • This will return all projects which are visible for the current userstatus 200.
  • If the token is invalid or missing, the call will return a 401 Unauthorized response
  • Call any REST API. Include the access token in the Authorization header. Here’s an example of fetching content from Confluence.
  • Go to the Postman application select method type as GET and enter the Request URL. For eg. http://{Confluence_Base_URL}/confluence/rest/api/content/
  • In the Authorization tab select type as Bearer Token.
Rest API OAuth, API token, API Key authentication for Jira and Confluence Google Apps  
  • In the Header tab add the header “content-type: application/json and send the request.
Rest API OAuth, API token, API Key authentication for Jira and Confluence Google Apps
Request:
     curl 
     -X GET  
     -H "Authorization: Bearer <Access Token>" 
     -H "Content-type: application/json" 
     http://{confluence_base_url}/confluence/rest/api/content/
  • This will show the content in Confluence and will return the status 200.
  • If the token is invalid or missing, the call will return a 401 Unauthorized response.
  • Call any REST API. Include the access token in the Authorization header. Here’s an example of fetching content from Bitbucket.
  • Go to the Postman application select method type as GET and enter the Request URL. For eg. http://{Bitbucket_Base_URL}/rest/api/1.0/dashboard/pull-requests
  • In the Authorization tab select type as Bearer Token.
Rest API OAuth, API token, API Key authentication for Jira and Confluence Confluence-Rest-API-AzureAD B2C  
  • In the Header tab add the header “content-type: application/json and send the request.
Rest API OAuth, API token, API Key authentication for Jira and Confluence Confluence-Rest-API-AzureAD B2C
Request:
     curl 
     -X GET  
     -H "Authorization: Bearer <Access Token>" 
     -H "Content-type: application/json" 
     http://{bitbucket_base_url}/rest/api/1.0/dashboard/pull-requests/
  • This will Retrieve a page of pull requests where the current authenticated user status 200.
  • If the token is invalid or missing, the call will return a 401 Unauthorized response


Our Other Apps: SAML SSO Apps | OAuth Apps | 2FA Apps | Crowd Apps | REST API Apps | Kerberos/NTLM Apps | User Sync Apps |
                             Bitbucket Git Authentication App

If you are looking for anything which you cannot find, please drop us an email on info@xecurify.com

Hello there!

Need Help? We are right here!

support
Contact miniOrange Support
success

Thanks for your inquiry.

If you dont hear from us within 24 hours, please feel free to send a follow up email to info@xecurify.com