One of the login options for dex uses the Bitbucket OAuth2 flow to identify the end user through their Bitbucket account.
When a client redeems a refresh token through dex, dex will re-query Bitbucket to update user information in the ID Token. To do this, dex stores a readonly Bitbucket access token in its backing datastore. Users that reject dex’s access through Bitbucket will also revoke all dex clients which authenticated them through Bitbucket.
Register a new OAuth consumer with
Bitbucket ensuring the callback URL is
(dex issuer)/callback. For example if dex is listening at the non-root path
https://auth.example.com/dex the callback would be
There are several permissions required for an OAuth consumer to use it with Dex:
Account: Read- required for extracting base information (email, username)
Workspace membership: Read- only necessary to get user’s teams
The following is an example of a configuration for
connectors: - type: bitbucket-cloud # Required field for connector id. id: bitbucket-cloud # Required field for connector name. name: Bitbucket Cloud config: # Credentials can be string literals or pulled from the environment. clientID: $BITBUCKET_CLIENT_ID clientSecret: $BITBUCKET_CLIENT_SECRET redirectURI: http://127.0.0.1:5556/dex/callback # Optional teams whitelist, communicated through the "groups" scope. # If `teams` is omitted, all of the user's Bitbucket teams are returned when the groups scope is present. # If `teams` is provided, this acts as a whitelist - only the user's Bitbucket teams that are in the configured `teams` below will go into the groups claim. Conversely, if the user is not in any of the configured `teams`, the user will not be authenticated. teams: - my-team # Optional parameter to include team groups. # If enabled, the groups claim of dex id_token will looks like this: # ["my_team", "my_team/administrators", "my_team/members"] includeTeamGroups: true