We are currently testing Confluence integration with our app and below are the issues we see. and this holds true for Jira or any Atlassian app.
Scenario:
site1.atlassian.net
.site1
is deactivated or deleted, but the OAuth authorizations associated with it are not revoked.site2.atlassian.net
, which has Jira but not Confluence.site2
as an option, even though only Confluence scopes are requested and site2
is not a Confluence site.site2.atlassian.net
as it doesn't have Confluence.site1
(since that's the only site which our app earlier got authorized to and now it's deactivated), even though the user intended to create a connector for site2
.site1
).site1
), and a 401 error results. Alternatively, if the site site1
was still active, the integration would have got created for the wrong or unintended tenant(site1).
This scenario highlights major flaws in user choice handling and site filtering in the current OAuth implementation.
Return Selected Site in Token Exchange Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"access_token": <string>,
"expires_in": <expiry time of access_token in second>,
"scope": <string>
"siteId": <string>
}
Filter Site List in Consent Dialog
Do Not Issue Access Tokens for Deactivated Sites