Heroku Single Sign-On Integration

The Heroku Single Sign-on (SSO) Integration creates a client application that uses Auth0 for authentication and provides SSO capabilities for Heroku. Your users log in to Heroku with Auth0 identity providers, which means the identity provider performs the identity credentials verification.

Prerequisites

Before you begin:

  • Sign up for a Heroku account.
  • Set up a connection, which is a source of users. Connections can be databases, social identity providers, or enterprise identity providers, and can be shared among different applications. You may set up more than one connection for use with SSO integrations.
  1. Navigate to Auth0 Dashboard > Applications > SSO Integrations, and click + Create SSO Integration. Create SSO Integration

  2. Select Heroku. Select Service

  3. Click Continue to grant the integration access to the listed permissions. Authorize Service

Configure Auth0 SSO Integration

Enter a name for your SSO Integration, configure the following settings, and click Save.

Setting Description
Callback URL URL to which the user is redirected after login (https://sso.heroku.com/saml/YOUR-HEROKU-ORG).
Audience Your Heroku URL (https://sso.heroku.com/saml/YOUR-HEROKU-ORG).
Use Auth0 instead of the IdP to do Single Sign-on (SSO). **Legacy tenants only.** If enabled, Auth0 will handle SSO instead of Heroku.

Save Integration

Configure integration with Heroku

To configure the integration with Heroku, follow the instructions listed in the Tutorial view.

Heroku SSO integration

Before you continue, make sure you have your SSO integration Client ID. You will use the Client ID to replace the SSO_CLIENT_ID placeholders.

Locate Client ID

Provide the following SAML protocol configuration parameters:

  • SAML Version: 2.0

  • Issuer: urn:YOUR_DOMAIN

  • Identity Provider Certificate: https://YOUR_DOMAIN/pem

  • Identity Provider SHA1 fingerprint: A6:14:84:AC:34:55:FA:14:87:19:15:81:67:77:D2:59:EB:13:4B:FC

  • Identity Provider Login URL (be sure to replace the SSO_CLIENT_ID placeholder with the Client ID of your SSO Integration): https://YOUR_DOMAIN/samlp/SSO_CLIENT_ID

  • Identity Provider Metadata (be sure to replace the SSO_CLIENT_ID placeholder with the Client ID of your SSO Integration): https://YOUR_DOMAIN/samlp/metadata/SSO_CLIENT_ID

Alternatively, to log in with a specific identity provider, you can add a connection parameter (be sure to replace the SSO_CLIENT_ID placeholder with the Client ID of your SSO Integration):

https://YOUR_DOMAIN/samlp/SSO_CLIENT_ID?connection=email
https://YOUR_DOMAIN/samlp/SSO_CLIENT_ID?connection=google-oauth2
https://YOUR_DOMAIN/samlp/SSO_CLIENT_ID?connection=Username-Password-Authentication

In this case, Auth0 will redirect users to the specified connection and will not display the Login widget. Make sure you send the SAMLRequest using HTTP POST.

Enable connections

Choose the connections to use with your SSO integration. Users in enabled connections will be allowed to log in to Heroku. By default, all configured connections are enabled.

  1. Select the Connections view.

  2. Toggle the sliders next to connection names to enable or disable them. Enable/Disable Connections