<a id="backends"></a>

# Backends

Here’s a list and detailed instructions on how to set up the support for each
backend.

<a id="adding-new-backend-support"></a>

## Adding new backend support

Add new backends is quite easy, usually adding just a `class` with a couple
methods overrides to retrieve user data from services API. Follow the details
in the *Implementation* docs.

* [Adding a new backend](implementation.html.md)
  * [Common attributes](implementation.html.md#common-attributes)
  * [Initiating authentication](implementation.html.md#initiating-authentication)
  * [OAuth](implementation.html.md#oauth)
  * [OpenID](implementation.html.md#openid)
  * [Auth APIs](implementation.html.md#auth-apis)
  * [Common backend methods](implementation.html.md#common-backend-methods)

<a id="supported-backends"></a>

## Supported backends

Here’s the list of currently supported backends.

<a id="non-social-backends"></a>

### Non-social backends

* [Email Auth](email.html.md)
  * [Backend class](email.html.md#backend-class)
  * [Backend settings](email.html.md#backend-settings)
  * [Email validation](email.html.md#email-validation)
  * [Password handling](email.html.md#password-handling)
* [Username Auth](username.html.md)
  * [Backend class](username.html.md#backend-class)
  * [Backend settings](username.html.md#backend-settings)
  * [Password handling](username.html.md#password-handling)

<a id="base-oauth-and-openid-classes"></a>

### Base OAuth and OpenID classes

* [OAuth](oauth.html.md)
  * [Token renewal](oauth.html.md#token-renewal)
* [OpenID](openid.html.md)
  * [Backend class](openid.html.md#backend-class)
  * [Username](openid.html.md#username)
* [SAML](saml.html.md)
  * [Backend class](saml.html.md#backend-class)
  * [Required Dependency](saml.html.md#required-dependency)
  * [Required Configuration](saml.html.md#required-configuration)
  * [Basic Usage](saml.html.md#basic-usage)
  * [Advanced Settings](saml.html.md#advanced-settings)
  * [Advanced Usage](saml.html.md#advanced-usage)
  * [Troubleshooting](saml.html.md#troubleshooting)
  * [External memberships](saml.html.md#external-memberships)

<a id="social-backends"></a>

### Social backends

* [Amazon](amazon.html.md)
  * [Backend class](amazon.html.md#backend-class)
* [Angel List](angel.html.md)
  * [Backend class](angel.html.md#backend-class)
* [AppleID](apple.html.md)
  * [Backend class](apple.html.md#backend-class)
* [ArcGIS](arcgis.html.md)
  * [Backend class](arcgis.html.md#backend-class)
  * [OAuth2](arcgis.html.md#oauth2)
* [Auth0](auth0.html.md)
  * [Backend class](auth0.html.md#backend-class)
  * [Auth0 OAuth2](auth0.html.md#auth0-oauth2)
* [Auth0 OpenID Connect](auth0_openidconnect.html.md)
  * [Backend class](auth0_openidconnect.html.md#backend-class)
  * [IdP Setup](auth0_openidconnect.html.md#idp-setup)
  * [Application Configuration](auth0_openidconnect.html.md#application-configuration)
  * [Scopes](auth0_openidconnect.html.md#scopes)
* [Microsoft Entra ID and Azure AD B2C](azuread.html.md)
  * [Backend classes](azuread.html.md#backend-classes)
  * [User identifiers](azuread.html.md#user-identifiers)
  * [IdP Setup](azuread.html.md#idp-setup)
  * [Scopes, tokens, and app roles](azuread.html.md#scopes-tokens-and-app-roles)
  * [Application Configuration](azuread.html.md#application-configuration)
  * [Authority configuration](azuread.html.md#authority-configuration)
  * [Proof Key for Code Exchange (PKCE)](azuread.html.md#proof-key-for-code-exchange-pkce)
  * [Token renewal](azuread.html.md#token-renewal)
  * [Tenant Support](azuread.html.md#tenant-support)
  * [B2C Tenant](azuread.html.md#b2c-tenant)
  * [B2C provider logout](azuread.html.md#b2c-provider-logout)
  * [External memberships](azuread.html.md#external-memberships)
* [Battle.net](battlenet.html.md)
  * [Backend class](battlenet.html.md#backend-class)
* [Behance](behance.html.md)
  * [Backend class](behance.html.md#backend-class)
  * [DEPRECATED NOTICE](behance.html.md#deprecated-notice)
* [Belgium EID](belgium_eid.html.md)
  * [Backend class](belgium_eid.html.md#backend-class)
* [Bitbucket](bitbucket.html.md)
  * [Backend class](bitbucket.html.md#backend-class)
  * [OAuth2](bitbucket.html.md#oauth2)
  * [OAuth1](bitbucket.html.md#oauth1)
  * [User ID](bitbucket.html.md#user-id)
* [Bitbucket Data Center OAuth2](bitbucket_datacenter_oauth2.html.md)
  * [Backend class](bitbucket_datacenter_oauth2.html.md#backend-class)
  * [Configuration](bitbucket_datacenter_oauth2.html.md#configuration)
  * [Extra Configuration](bitbucket_datacenter_oauth2.html.md#extra-configuration)
* [Box.net](box.html.md)
  * [Backend class](box.html.md#backend-class)
* [Bungie](bungie.html.md)
  * [Backend class](bungie.html.md#backend-class)
* [CAS (OpenID Connect via Apereo CAS)](cas.html.md)
  * [Backend class](cas.html.md#backend-class)
  * [User identification](cas.html.md#user-identification)
  * [Username](cas.html.md#username)
  * [Scopes](cas.html.md#scopes)
  * [External memberships](cas.html.md#external-memberships)
* [CESiD AAI - Czech Educational and Scientific Identification AAI](cesid.html.md)
  * [Backend class](cesid.html.md#backend-class)
  * [Scopes](cesid.html.md#scopes)
* [Coinbase](coinbase.html.md)
  * [Backend class](coinbase.html.md#backend-class)
* [Cognito](cognito.html.md)
  * [Backend class](cognito.html.md#backend-class)
* [Coursera](coursera.html.md)
  * [Backend class](coursera.html.md#backend-class)
* [DailyMotion](dailymotion.html.md)
  * [Backend class](dailymotion.html.md#backend-class)
* [DigitalOcean](digitalocean.html.md)
  * [Backend class](digitalocean.html.md#backend-class)
* [Discogs](discogs.html.md)
  * [Backend class](discogs.html.md#backend-class)
* [Discord](discord.html.md)
  * [Backend class](discord.html.md#backend-class)
* [Discourse](discourse.html.md)
  * [Backend class](discourse.html.md#backend-class)
  * [Using multiple Discourse instances](discourse.html.md#using-multiple-discourse-instances)
  * [External memberships](discourse.html.md#external-memberships)
* [Disqus](disqus.html.md)
  * [Backend class](disqus.html.md#backend-class)
* [Docker](docker.html.md)
  * [Backend class](docker.html.md#backend-class)
  * [Docker.io OAuth2](docker.html.md#docker-io-oauth2)
* [Douban](douban.html.md)
  * [Backend class](douban.html.md#backend-class)
* [Dribbble](dribbble.html.md)
  * [Backend class](dribbble.html.md#backend-class)
* [Drip](drip.html.md)
  * [Backend class](drip.html.md#backend-class)
* [Dropbox](dropbox.html.md)
  * [Backend class](dropbox.html.md#backend-class)
  * [OAuth2 Api V2](dropbox.html.md#oauth2-api-v2)
* [Etsy OAuth2](etsy.html.md)
  * [Backend class](etsy.html.md#backend-class)
  * [Configuration](etsy.html.md#configuration)
  * [Extra Configuration](etsy.html.md#extra-configuration)
* [Eventbrite OAuth](eventbrite.html.md)
  * [Backend class](eventbrite.html.md#backend-class)
* [EVE Online Single Sign-On (SSO)](eveonline.html.md)
  * [Backend class](eveonline.html.md#backend-class)
* [Evernote OAuth](evernote.html.md)
  * [Backend classes](evernote.html.md#backend-classes)
  * [Sandbox](evernote.html.md#sandbox)
* [Facebook](facebook.html.md)
  * [Backend classes](facebook.html.md#backend-classes)
  * [Token renewal](facebook.html.md#token-renewal)
  * [OAuth2](facebook.html.md#oauth2)
  * [Canvas Application](facebook.html.md#canvas-application)
* [Facebook Limited Login](facebook_limited_login.html.md)
  * [Backend class](facebook_limited_login.html.md#backend-class)
  * [App creation](facebook_limited_login.html.md#app-creation)
  * [Configuration](facebook_limited_login.html.md#configuration)
  * [Django Configuration](facebook_limited_login.html.md#django-configuration)
* [Fedora](fedora.html.md)
  * [Backend classes](fedora.html.md#backend-classes)
  * [Scopes](fedora.html.md#scopes)
  * [Environment](fedora.html.md#environment)
* [Fitbit](fitbit.html.md)
  * [Backend classes](fitbit.html.md#backend-classes)
  * [OAuth 2.0 or OAuth 1.0a](fitbit.html.md#oauth-2-0-or-oauth-1-0a)
  * [OAuth 2.0 specific settings](fitbit.html.md#oauth-2-0-specific-settings)
* [Flat](flat.html.md)
  * [Backend class](flat.html.md#backend-class)
* [Flickr](flickr.html.md)
  * [Backend class](flickr.html.md#backend-class)
* [Foursquare](foursquare.html.md)
  * [Backend class](foursquare.html.md#backend-class)
* [GitHub](github.html.md)
  * [Backend classes](github.html.md#backend-classes)
  * [GitHub for Organizations](github.html.md#github-for-organizations)
  * [GitHub for Teams](github.html.md#github-for-teams)
  * [GitHub for Enterprises](github.html.md#github-for-enterprises)
  * [GitHub Apps](github.html.md#github-apps)
* [Backend classes](github_enterprise.html.md)
  * [GitHub Enterprise](github_enterprise.html.md#id1)
* [GitHub Enterprise for Organizations](github_enterprise.html.md#github-enterprise-for-organizations)
* [GitHub Enterprise for Teams](github_enterprise.html.md#github-enterprise-for-teams)
* [GitLab](gitlab.html.md)
  * [Backend class](gitlab.html.md#backend-class)
  * [External memberships](gitlab.html.md#external-memberships)
* [Gitea](gitea.html.md)
  * [Backend class](gitea.html.md#backend-class)
* [Google](google.html.md)
  * [Backend classes](google.html.md#backend-classes)
  * [Google OAuth](google.html.md#google-oauth)
  * [Google OAuth2](google.html.md#google-oauth2)
  * [Google One Tap](google.html.md#google-one-tap)
  * [Orkut](google.html.md#orkut)
  * [User identification](google.html.md#user-identification)
  * [Refresh Tokens](google.html.md#refresh-tokens)
* [Grafana](grafana.html.md)
  * [Backend class](grafana.html.md#backend-class)
* [Helmholtz AAI (OpenID Connect)](helmholtz.html.md)
  * [Backend class](helmholtz.html.md#backend-class)
  * [Username](helmholtz.html.md#username)
  * [Scopes](helmholtz.html.md#scopes)
  * [Restricting access by entitlement](helmholtz.html.md#restricting-access-by-entitlement)
* [Instagram](instagram.html.md)
  * [Backend class](instagram.html.md#backend-class)
* [Just Giving](justgiving.html.md)
  * [Backend class](justgiving.html.md#backend-class)
  * [OAuth2](justgiving.html.md#oauth2)
* [Kakao](kakao.html.md)
  * [Backend class](kakao.html.md#backend-class)
* [Keycloak - Open Source Red Hat SSO](keycloak.html.md)
  * [Backend class](keycloak.html.md#backend-class)
  * [IdP Setup](keycloak.html.md#idp-setup)
  * [Application Configuration](keycloak.html.md#application-configuration)
  * [Audience validation](keycloak.html.md#audience-validation)
  * [Signing key rotation](keycloak.html.md#signing-key-rotation)
  * [User ID Configuration](keycloak.html.md#user-id-configuration)
  * [External memberships](keycloak.html.md#external-memberships)
* [Kick](kick.html.md)
  * [Backend class](kick.html.md#backend-class)
* [Last.fm](lastfm.html.md)
  * [Backend class](lastfm.html.md#backend-class)
* [Launchpad](launchpad.html.md)
  * [Backend class](launchpad.html.md#backend-class)
* [Lifescience AAI](lifescience.html.md)
  * [Backend class](lifescience.html.md#backend-class)
  * [Scopes](lifescience.html.md#scopes)
* [Lifescience AAI - (Temporary instance for EOSC node)](lifescience_eosc.html.md)
  * [Backend class](lifescience_eosc.html.md#backend-class)
  * [Scopes](lifescience_eosc.html.md#scopes)
* [Line.me](line.html.md)
  * [Backend class](line.html.md#backend-class)
* [LinkedIn](linkedin.html.md)
  * [Backend classes](linkedin.html.md#backend-classes)
  * [OpenID Connect](linkedin.html.md#openid-connect)
  * [OAuth2](linkedin.html.md#oauth2)
* [LiveJournal](livejournal.html.md)
  * [Backend class](livejournal.html.md#backend-class)
* [MSN Live Connect](live.html.md)
  * [Backend class](live.html.md#backend-class)
* [LoginRadius](loginradius.html.md)
  * [Backend class](loginradius.html.md#backend-class)
* [Lyft](lyft.html.md)
  * [Backend class](lyft.html.md#backend-class)
* [MailChimp](mailchimp.html.md)
  * [Backend class](mailchimp.html.md#backend-class)
* [Mail.ru OAuth](mailru.html.md)
  * [Backend classes](mailru.html.md#backend-classes)
  * [Legacy OAuth2 authorization](mailru.html.md#legacy-oauth2-authorization)
* [MapMyFitness](mapmyfitness.html.md)
  * [Backend class](mapmyfitness.html.md#backend-class)
* [MediaWiki OAuth1 backend](mediawiki.html.md)
  * [Backend class](mediawiki.html.md#backend-class)
  * [Usage](mediawiki.html.md#usage)
  * [General documentation](mediawiki.html.md#general-documentation)
  * [Developer documentation](mediawiki.html.md#developer-documentation)
  * [Code based on](mediawiki.html.md#code-based-on)
  * [External memberships](mediawiki.html.md#external-memberships)
* [Meetup](meetup.html.md)
  * [Backend class](meetup.html.md#backend-class)
* [Mendeley](mendeley.html.md)
  * [Backend class](mendeley.html.md#backend-class)
* [Microsoft Graph](microsoftgraph.html.md)
  * [Backend class](microsoftgraph.html.md#backend-class)
* [MineID](mineid.html.md)
  * [Backend class](mineid.html.md#backend-class)
  * [Self-hosted MineID](mineid.html.md#self-hosted-mineid)
* [Mixcloud OAuth2](mixcloud.html.md)
  * [Backend class](mixcloud.html.md#backend-class)
* [NationBuilder](nationbuilder.html.md)
  * [Backend class](nationbuilder.html.md#backend-class)
* [Naver](naver.html.md)
  * [Backend class](naver.html.md#backend-class)
* [NFDI (OpenID Connect)](nfdi.html.md)
  * [Backend classes](nfdi.html.md#backend-classes)
  * [Username](nfdi.html.md#username)
  * [Scopes](nfdi.html.md#scopes)
* [NGP VAN ActionID](ngpvan_actionid.html.md)
  * [Backend class](ngpvan_actionid.html.md#backend-class)
* [Odnoklassniki.ru](odnoklassnikiru.html.md)
  * [Backend classes](odnoklassnikiru.html.md#backend-classes)
  * [OAuth2](odnoklassnikiru.html.md#oauth2)
  * [IFrame applications](odnoklassnikiru.html.md#iframe-applications)
* [Okta](okta.html.md)
  * [Backend classes](okta.html.md#backend-classes)
  * [Okta OAuth2](okta.html.md#okta-oauth2)
  * [Okta OpenID Connect](okta.html.md#okta-openid-connect)
  * [Scopes and external groups](okta.html.md#scopes-and-external-groups)
  * [User identification](okta.html.md#user-identification)
* [OpenStreetMap OAuth 2](openstreetmap_oauth2.html.md)
  * [Backend class](openstreetmap_oauth2.html.md#backend-class)
  * [Configuration](openstreetmap_oauth2.html.md#configuration)
  * [Extra Configuration](openstreetmap_oauth2.html.md#extra-configuration)
* [OIDC (OpenID Connect)](oidc.html.md)
  * [Backend class](oidc.html.md#backend-class)
  * [Nonce lifetime](oidc.html.md#nonce-lifetime)
  * [IdP Setup](oidc.html.md#idp-setup)
  * [Authentication Request Parameters](oidc.html.md#authentication-request-parameters)
  * [Username](oidc.html.md#username)
  * [First Name](oidc.html.md#first-name)
  * [Last Name](oidc.html.md#last-name)
  * [Full Name](oidc.html.md#full-name)
  * [Email](oidc.html.md#email)
  * [Scopes](oidc.html.md#scopes)
  * [External memberships](oidc.html.md#external-memberships)
* [Orbi](orbi.html.md)
  * [Backend class](orbi.html.md#backend-class)
* [ORCID](orcid.html.md)
  * [Backend classes](orcid.html.md#backend-classes)
  * [Member API](orcid.html.md#member-api)
  * [Sandbox](orcid.html.md#sandbox)
* [Osso - Open Source SAML SSO](osso.html.md)
  * [Backend class](osso.html.md#backend-class)
* [Patreon](patreon.html.md)
  * [Backend class](patreon.html.md#backend-class)
* [Pinterest](pinterest.html.md)
  * [Backend class](pinterest.html.md#backend-class)
* [PixelPin](pixelpin.html.md)
  * [Backend class](pixelpin.html.md#backend-class)
  * [PixelPin OpenID Connect](pixelpin.html.md#pixelpin-openid-connect)
* [Podio](podio.html.md)
  * [Backend class](podio.html.md#backend-class)
* [Qiita](qiita.html.md)
  * [Backend class](qiita.html.md#backend-class)
* [QQ](qq.html.md)
  * [Backend class](qq.html.md#backend-class)
* [Quizlet](quizlet.html.md)
  * [Backend class](quizlet.html.md#backend-class)
* [Reddit](reddit.html.md)
  * [Backend class](reddit.html.md#backend-class)
* [Salesforce](salesforce.html.md)
  * [Backend classes](salesforce.html.md#backend-classes)
* [Seznam](seznam.html.md)
  * [Backend class](seznam.html.md#backend-class)
  * [User ID](seznam.html.md#user-id)
* [Shopify](shopify.html.md)
  * [Backend class](shopify.html.md#backend-class)
* [SimpleLogin](simplelogin.html.md)
  * [Backend class](simplelogin.html.md#backend-class)
* [Sketchfab](sketchfab.html.md)
  * [Backend class](sketchfab.html.md#backend-class)
* [Slack](slack.html.md)
  * [Backend class](slack.html.md#backend-class)
* [SoundCloud](soundcloud.html.md)
  * [Backend class](soundcloud.html.md#backend-class)
* [Spotify](spotify.html.md)
  * [Backend class](spotify.html.md#backend-class)
  * [OAuth2](spotify.html.md#oauth2)
* [SUSE](suse.html.md)
  * [Backend class](suse.html.md#backend-class)
  * [openSUSE OpenID](suse.html.md#opensuse-openid)
* [Stackoverflow](stackoverflow.html.md)
  * [Backend class](stackoverflow.html.md#backend-class)
* [Steam OpenID](steam.html.md)
  * [Backend class](steam.html.md#backend-class)
* [StockTwits](stocktwits.html.md)
  * [Backend class](stocktwits.html.md#backend-class)
* [Strava](strava.html.md)
  * [Backend class](strava.html.md#backend-class)
* [Stripe](stripe.html.md)
  * [Backend class](stripe.html.md#backend-class)
* [Taobao OAuth](taobao.html.md)
  * [Backend class](taobao.html.md#backend-class)
* [Telegram](telegram.html.md)
  * [Backend class](telegram.html.md#backend-class)
* [Trello](trello.html.md)
  * [Backend class](trello.html.md#backend-class)
* [TripIt](tripit.html.md)
  * [Backend class](tripit.html.md#backend-class)
* [Tumblr](tumblr.html.md)
  * [Backend class](tumblr.html.md#backend-class)
* [Twilio Connect](twilio.html.md)
  * [Backend class](twilio.html.md#backend-class)
  * [Configuration](twilio.html.md#configuration)
  * [Initiating the connection](twilio.html.md#initiating-the-connection)
  * [Security limitations](twilio.html.md#security-limitations)
* [Twitch](twitch.html.md)
  * [Backend classes](twitch.html.md#backend-classes)
* [X (formerly Twitter)](twitter.html.md)
  * [Backend class](twitter.html.md#backend-class)
* [X OAuth 2](twitter_oauth2.html.md)
  * [Backend class](twitter_oauth2.html.md#backend-class)
* [Udata](udata.html.md)
  * [Backend class](udata.html.md#backend-class)
  * [Datagouvfr OAuth2](udata.html.md#datagouvfr-oauth2)
* [Uber](uber.html.md)
  * [Backend class](uber.html.md#backend-class)
  * [OAuth2](uber.html.md#oauth2)
* [Untappd](untappd.html.md)
  * [Backend class](untappd.html.md#backend-class)
* [Upwork](upwork.html.md)
  * [Backend class](upwork.html.md#backend-class)
  * [OAuth1](upwork.html.md#oauth1)
* [Hashicorp Vault](vault.html.md)
  * [Backend class](vault.html.md#backend-class)
  * [Vault OIDC configuration](vault.html.md#vault-oidc-configuration)
  * [Scopes](vault.html.md#scopes)
* [Lightspeed Retail (X-Series)](vend.html.md)
  * [Backend class](vend.html.md#backend-class)
* [Vimeo](vimeo.html.md)
  * [Backend classes](vimeo.html.md#backend-classes)
* [VK.com (former Vkontakte)](vk.html.md)
  * [Backend classes](vk.html.md#backend-classes)
  * [VK ID](vk.html.md#vk-id)
  * [Legacy OAuth2](vk.html.md#legacy-oauth2)
  * [Legacy application OAuth2](vk.html.md#legacy-application-oauth2)
  * [Legacy OpenAPI](vk.html.md#legacy-openapi)
* [Weibo OAuth](weibo.html.md)
  * [Backend class](weibo.html.md#backend-class)
* [XING](xing.html.md)
  * [Backend class](xing.html.md#backend-class)
* [Yahoo](yahoo.html.md)
  * [Backend class](yahoo.html.md#backend-class)
* [Microsoft Viva Engage](yammer.html.md)
  * [Backend classes](yammer.html.md#backend-classes)
  * [Production Mode](yammer.html.md#production-mode)
  * [Staging Mode](yammer.html.md#staging-mode)
* [Zotero](zotero.html.md)
  * [Backend class](zotero.html.md#backend-class)

<a id="display-metadata"></a>

## Display metadata

Every shipped backend has a human-readable `title`. Some also provide an
`icon` filename referencing social-core’s packaged SVG artwork. Applications choose
how to render missing icons. Custom backend classes can declare these attributes:

```default
class CompanyAuth(OpenIdConnectAuth):
    name = "company"
    title = "Company account"
    icon = None
```

The display title is independent of the stable `name` identifier. Changing
branding does not require renaming stored associations or configuration keys.
Titles are plain strings; applications localize generic labels such as e-mail
or password. See [Django Framework](../configuration/django.html.md) for Django template metadata and
staticfiles integration.
