Join our Newsletter — 33% off our NHI Course
Home› Guides› How to audit Jira and Confluence app links…
Guide SaaS & OAuth Integrations

How to audit Jira and Confluence app links and OAuth

← All guides
By NHI Mgmt Group, edited by Lalit Choda Updated 11 November 2026 12 min read
On this page

Application links and OAuth grants are how Jira and Confluence trust other systems, and most organisations have never reviewed the ones they created years ago. An application link holds a client ID and secret that let another product act against Jira or Confluence, and an OAuth 2.0 grant lets an external app read or change data with a user's rights until it is revoked. Both survive staff changes, product migrations and decommissioned servers. This runbook covers how to inventory and audit application links and OAuth 2.0 integrations in Jira and Confluence Data Center, and connected OAuth 2.0 (3LO) and Forge apps in Atlassian Cloud, then remove what is not needed with a rollback. It is for Atlassian administrators and identity or SaaS security engineers. Personal access tokens and API tokens are covered separately in How to find long-lived personal access tokens across Atlassian.

This is an independent guide from NHI Mgmt Group, based on Atlassian's public documentation as of November 2026. It is not sponsored or reviewed by Atlassian. Menu names and features differ between product versions and between Data Center and Cloud, so confirm against the documentation for your version.

Key takeaways

  • Two estates, two inventories. Data Center keeps application links in each product's Administration > Applications > Application links page; Cloud keeps third-party OAuth and Forge apps under Connected apps in Atlassian Administration.
  • Incoming links are the risk you own. An incoming link makes your Jira or Confluence the OAuth provider; whoever holds its client ID and secret can request access to your data.
  • Scope is capped by the user, not by the app. In Jira Data Center an OAuth 2.0 grant carries READ, WRITE, ADMIN or SYSTEM_ADMIN scope, but never more than the authorising user can already do, so grants made by administrators matter most.
  • Logging is not on by default for what you need. Jira Data Center records OAuth 2.0 integration success and failure only at the Advanced coverage level of the Security area.
  • Test before you delete. Use Test connection and an observation window; a deleted link has to be recreated on both sides with new credentials.

When you need this

  • After a related breach: in the Cloudflare Thanksgiving breach, credentials left unrotated after an earlier identity provider breach gave the attacker access to Atlassian systems. Integration credentials need the same review as user credentials after any upstream compromise.
  • After a SaaS integration supply chain incident: the Salesloft Drift breach showed how OAuth tokens held by one integration vendor opened many customer tenants. When a vendor you have connected is breached, you need to know within hours which grants and links it holds.
  • Before decommissioning or migrating: links to retired servers or old test instances keep valid credentials on both sides.
  • Periodic review: NIST SP 800-53 AC-2 Account Management and CIS Controls v8.1 Safeguard 5.3 expect machine access to be inventoried and dormant access disabled.

Before you start

Work out which kinds of trust you have. The table lists the main integration types this runbook covers.

Integration typeWhere it livesWho it acts asMain risk
Application link, OAuth 1.0Data Center: Administration > Applications > Application linksThe linked product, on behalf of usersLegacy links to retired or test servers that still trust each other
Application link, OAuth 2.0 incomingData Center: same page, direction Incoming or two-wayUsers who authorise the remote appA client ID and secret that any holder can use to request user grants
Application link, OAuth 2.0 outgoingData Center: same page, direction Outgoing or two-wayYour users, against the remote productYour product stores the remote app's client secret
External OAuth 2.0 client (generic application)Data Center: incoming link with application type "Generic application"The authorising user, within the granted scopeThird-party tools holding long-lived refresh tokens
OAuth 2.0 (3LO) appCloud: Atlassian Administration > Apps > site > Connected appsEach user who authorised itUser-installed apps nobody approved
Forge or Marketplace appCloud: Connected appsUsers and the app's system userBroad scopes and vendor access to data

Access: Data Center needs a Jira System Administrator or Confluence administrator; Cloud needs an Organization admin or Site admin. Agree up front who approves deletions, because the owner of an integration is often a team outside IT.

Evidence: keep a copy of every link's configuration (application name, URL, direction, status, scopes) and of the connected apps list before changing anything. These records are your rollback.

Step-by-step

Steps 1 to 5 are read-only. Step 6 is reversible. Step 7 is destructive.

Data Center: Jira and Confluence

  1. Turn on the right audit coverage first. In Jira go to Administration > System > Audit log, open Settings and set the coverage level for the Security area to at least Advanced. Atlassian's audit event list places "OAuth 2.0 integration succeeded" and "OAuth 2.0 integration failed" in the Security area at Advanced level, so a Base setting will not record them. Check that retention covers your review window: Jira writes audit files to <Jira local home>/log/audit on each node (up to 100 files of 100 MB each by default), and database retention defaults to three years on new installs. Confluence Data Center has its own audit log; check its event coverage in the Confluence documentation for your version.
  2. Export the application links list from every product. Open Administration > Applications > Application links. For each row record:
    • Application: name and version; external apps show as Generic application.
    • Direction: Incoming, Outgoing or two-way.
    • Status: Connected, network error or non-Atlassian.
    • Authentication: OAuth 1.0 or OAuth 2.0, and the scope or permission set on the incoming link.
    Do this on every Jira, Confluence, Bitbucket and Bamboo instance, because a link exists on both ends and may only be visible as stale from one side.
  3. Classify each link. Flag links with status network error (the remote end may be gone), links to hostnames that resolve to test, staging or retired servers, OAuth 1.0 links to external (non-Atlassian) applications, which Atlassian recommends moving to OAuth 2.0, and incoming links whose scope is higher than the integration needs.
  4. Review OAuth 2.0 scopes and who granted them. Jira Data Center as an OAuth 2.0 provider supports the authorization code flow with and without PKCE, and offers four scopes:
    ScopeWhat it allowsAudit stance
    READView projects and issuesDefault for reporting and sync tools
    WRITECreate, update and delete projects and issues; implies READJustify per integration
    ADMINAdminister Jira, excluding backups, imports and infrastructure settings; implies READ and WRITEException with named owner and review date
    SYSTEM_ADMINFull administration including backups and infrastructure; implies all lower scopesShould be rare; challenge every instance
    Because a grant is capped at the authorising user's own rights, an ADMIN-scoped grant authorised by a system administrator is effectively an administrator credential held by the remote app. Use the audit log's OAuth 2.0 integration events to see which clients are actually used and by whom.
  5. Test each outgoing link. Use Actions > Test connection on outgoing OAuth 2.0 links. A link that fails and that no owner claims is a removal candidate. For incoming links, the audit log success events over your window are the usage evidence.

Cloud: connected apps

  1. Inventory and restrict connected apps (reversible). In Atlassian Administration select the organisation, then Apps > Atlassian apps, select the site under Sites, then Connected apps. Record each app, its type (OAuth 2.0 (3LO), Forge, Marketplace), and what View app details shows for it, and ask the site's users who installed it. Where only administrators should install apps, select Block user apps in the Connected apps settings. Use More actions > Download logs for apps where you need the vendor log, and consider App logs access > Disable log access where vendor log access is not needed. If you have Atlassian Guard Premium or Cloud Enterprise, the organisation audit log under Insights > Audit log gives the admin activity trail.

Remove what is not needed

  1. Remove links and apps (destructive). For Data Center, after the owner confirms and an observation window has passed, use Actions > Delete on the application link, then delete the matching link on the remote product. For Cloud, open the site's Connected apps, select Manage authorization for the app and choose Uninstall. Atlassian documents that uninstalling an OAuth 2.0 (3LO) app revokes all users, and uninstalling a Forge app revokes all user and system user grants; connected users are removed automatically and progress is shown on the Connected apps screen. Warn users before you do it. Users can also revoke their own grants at id.atlassian.com/manage-profile/apps.

Choosing between remove, re-scope and rotate

FindingActionWhy
Link to a retired or unreachable serverDelete on both endsCredentials with no legitimate holder
OAuth 1.0 link to an external appRebuild as OAuth 2.0, then delete the old linkAtlassian recommends OAuth 2.0 for external integrations
Incoming link with ADMIN or SYSTEM_ADMIN useRe-scope or move to a dedicated low-privilege integration userGrants inherit the authorising user's rights
Client secret exposed or vendor breachedRecreate the incoming link to issue new credentials, update the vendor, delete the old linkRevokes everything issued against the old client
User-installed Cloud app with no ownerUninstall and turn on Block user appsRemoves the grants and stops recurrence
Active, owned, minimal scopeKeep, record owner and review dateNothing to change

Verify it worked

  • Data Center: the application links page on both products no longer shows the removed links, and no link shows network error without an open ticket.
  • Usage: the audit log shows no OAuth 2.0 integration success events for removed clients, and failure events for them stop once the vendor updates.
  • Cloud: the Connected apps list matches the approved register, and Block user apps is set where agreed.
  • No breakage: owners confirm that remaining integrations (issue sync, dashboards, CI links) work after the window.

Rollback and common errors

SituationFix
An integration breaks after a link is deletedRecreate the incoming link (new client ID and secret), update the remote outgoing link and redirect URI, then use Test connection on both sides
Data Center to Data Center link will not completeAtlassian's method is to create a placeholder incoming link first, exchange credentials, then update the redirect URIs on both sides
A Cloud app was uninstalled in errorReinstall it; every user has to authorise again, so plan communication
OAuth 2.0 redirect fails in productionAtlassian requires HTTPS for redirect URIs and base URLs in production
No audit events for OAuth 2.0 clientsSecurity coverage is below Advanced; raise it and restart the observation window
Refresh fails after a vendor's retryIn Jira Data Center using a refresh token invalidates the existing access and refresh tokens, so a client that reuses an old refresh token fails by design

Hardening afterwards

Small instance or large estate

A single Jira and Confluence pair usually has a handful of links that one administrator can review in an hour. An estate with several Data Center products, a Cloud organisation and many sites should export the lists on a schedule, send audit logs to the SIEM, and give each integration a named owner in the register so that review becomes reconciliation rather than investigation.

Metrics

MetricDirection
Application links with status network errorZero
OAuth 1.0 links to external applicationsFalling to zero
Integrations with ADMIN or SYSTEM_ADMIN scopeFew, each with an owner and review date
Connected Cloud apps without a register entryZero
Time to revoke one integration after a vendor breachUnder one hour

Framework mapping

FrameworkReferenceRelevance
NIST SP 800-53 Rev 5AC-2 Account Management; AC-6 Least PrivilegeInventory and scope of integration access
NIST SP 800-53 Rev 5IA-5 Authenticator ManagementClient secrets and token lifecycle
NIST SP 800-53 Rev 5AU-2 Event Logging; AU-6 Audit Record ReviewAudit coverage for OAuth events
NIST CSF 2.0PR.AA-05; DE.CM-03Access permissions reviewed; technology usage monitored
MITRE ATT&CKT1528 Steal Application Access Token; T1550.001 Application Access TokenTheft and reuse of OAuth tokens held by integrations

Practitioner checklist

  • Set Jira audit Security coverage to Advanced and confirm retention.
  • Export application links from every Data Center product, both ends of each link.
  • Flag links in network error, links to retired hosts and OAuth 1.0 links to external apps.
  • Review OAuth 2.0 scopes and which users authorised ADMIN or SYSTEM_ADMIN grants.
  • Inventory Cloud connected apps per site and decide on Block user apps.
  • Confirm owners, observe for one cycle, then delete links and uninstall apps.
  • Recreate links with new credentials when a secret or vendor is exposed.
  • Keep a register with owner, scope and review date for every integration.

Standards and references

Related NHI Mgmt Group resources: Confluence Data Center Hardening Guide · Atlassian Cloud Security Guide · How to find long-lived personal access tokens across Atlassian · SaaS and OAuth App Governance Guide

Free weekly newsletter

Subscribe to the NHI & AI Identity Journal

The latest on NHI and Agentic AI security – articles, research, breaches, news and events every week.

Bonus 33% off our NHI Course when you subscribe.

NHIMG Editorial Note
Researched and written by the NHI Mgmt Group editorial team using AI tools, under the editorial direction of Lalit Choda. Facts are drawn from the sources listed on this page and checked by our automated quality process. Last updated 11 November 2026. Spotted an error? Use our contact page.
NHI Mgmt Group, the independent authority on Non-Human Identity, IAM and Agentic AI security. nhimg.org