Confluence 5.0 has reached end of life
Check out the [latest version] of the documentation
Configuring authentication for an application link is essentially defining the level of trust between Confluence and the application that it is linked to.
Choosing Authentication for an Application Link
The level of authentication that you should configure for your application link depends on a number of factors.
- Do the two applications you are linking trust each other? i.e. are you sure that the code in the application will behave itself at all times and that the application will maintain the security of its private key?
- Do the two applications you are linking share the same user base or not?
- Do you have administrative access to the application you are linking to?
Common scenarios include:
- If the two applications you are linking trust each other and share the same user base, configure two-way authentication using Trusted Applications for both incoming and outgoing authentication. For example, you may link your internal Confluence server to an internal JIRA server.
- If the two applications you are linking trust each other but do not share the same user base, configure two-way authentication using OAuth for both incoming and outgoing authentication. For example, you may link your internal Confluence server to an external (customer-facing) JIRA server.
- If you do not have administrative rights to the application that you are linking to (e.g. linking to a public FishEye server), configure a one-way outgoing link authenticated using basic HTTP authentication or do not configure any authentication for the link. For example, you may link your external Confluence server to a partner organisation's Confluence server. An unauthenticated link will still allow the local application to render hyperlinks to the remote application or query anonymously-accessible APIs.
The flowchart below provides a guide to what authentication you should configure for your application link.
Read the following topics for information on how to configure authentication for an application link:
- Configuring Basic HTTP Authentication for an Application Link
- Configuring OAuth Authentication for an Application Link
- Configuring Trusted Applications Authentication for an Application Link
- Incoming and Outgoing Authentication
Flowchart above: Determining what authentication to configure for an Application Link
Security Implications for each Authentication Type
If you configure Trusted Applications authentication for your application (i.e. your servers have the same set of users and they fully trust each other), please be aware of the following security implications:
- Trusted applications are a potential security risk. When you configure Trusted Applications authentication, you are allowing one application to access another as any user. This allows all of the built-in security measures to be bypassed. Do not configure a trusted application unless you know that all code in the application you are trusting will behave itself at all times, and you are sure that the application will maintain the security of its private key.
- Only use Trusted Applications authentication if both your servers have the same set of users and the servers fully trust each other.
If you configure OAuth authentication for your application (i.e. your servers have different sets of users and they fully trust each other), please be aware of the following security implications:
- Adding an OAuth consumer requires the transmission of sensitive data. To prevent 'man-in-the-middle' attacks, it is recommended that you use SSL for your applications while configuring OAuth authentication.
- Do not link to an application using OAuth authentication, unless you trust all code in the application to behave itself at all times. OAuth consumers are a potential security risk to the applications that they are linked to because of the ability to impersonate users. If your server is compromised, the data there and on linked servers is at risk.
- New application links now use OAuth by default and enable both 3-legged OAuth (3LO) and 2-legged OAuth (2LO).
- When updating older application links (that perhaps used Trusted Apps authentication) to use OAuth, 3LO is enabled by default, but you need to explicitly enable 2LO using the Allow 2-legged OAuth check box in the application link configuration settings.
- Only use the 2LO with impersonation option in the application link configuration settings if your servers both have the same set of users and the servers fully trust each other.
Screenshot above: Configuring authentication during application link setup
About Primary Authentication Types
You cannot configure which authentication type is the primary authentication type. The primary authentication type is determined automatically by Application Links and depends on a weight defined by each authentication type method. However, every feature that uses Application Links can also choose to use a specific authentication type and might not use the default primary authentication type.
About Impersonating and Non-Impersonating Authentication Types
OAuth 2.0 authentication
We’ve added OAuth 2.0 support for application links (app links) across Atlassian Data Center products. OAuth 2.0 is an industry-standard authentication protocol that enables secure mand reliable connections between Atlassian products and external applications. You can use OAuth 2.0 authentication starting from the following versions:
- Jira Software 11.2 and later
- Jira Service Management 11.2 and later
- Confluence 10.0 and later
- Bitbucket 10.1 and later
- Bamboo 12.0 and later
- Crowd 7.0 and later
OAuth authentication
We recommend using OAuth 2.0 authentication instead of OAuth 1.0 for application links, as OAuth 2.0 offers greater security.
OAuth authentication redirects a user to log in to the remote application, after which tokens generated on their behalf are used to authorize requests made from the local application. The remote application handling the request uses the access permissions of the account with which the user logged in on that remote application.
Typical scenarios include:
- You are setting up an application link between two applications that do not share the same set of users.
- You want to continue using a link to an application that now allows public sign-on and the link was previously configured with a shared userbase. You can update your application link by changing OAuth (impersonation) to OAuth when editing the application link.
See OAuth security for application links for more information.
OAuth with impersonation
Atlassian OAuth with impersonation makes it easy for your users to benefit from the deep integrations between Atlasssian applications:
- they're automatically authenticated on the other application and don't get asked to authorize requests.
- they'll only see the information that they have permission to see.
Impersonating authentication makes requests on behalf of the user who is currently logged in.
Note that Atlassian OAuth with impersonation can only be used for application links between Atlassian applications. Furthermore, it should only be used when the two applications share the same userbase, typically managed with an external directory using LDAP.
A typical scenario is:
You've set up an application link but your users still have to authenticate regularly. This can occur when the application link has been configured to not share the same userbase. If those applications do share the same userbase, you can update your application link by selecting OAuth (impersonation) when editing the application linkcurity.
See OAuth security for application links for more information.


