Set Up Instructions

Auth0

Below you'll find instructions for connecting Auth0 to Ploy via a Machine-to-Machine (M2M) application. This imports users, roles, applications, and groups from your Auth0 tenant. Optionally, if you use the Auth0 Authorization Extension, Ploy can also import the group → role → application access graph.

Prerequisites

  • Auth0 admin access to your tenant.

  • (Optional) The Auth0 Authorization Extension installed — required only to import group → role → application access relationships. Without this, Ploy will still import users, roles, applications, and groups.

Set up the Auth0 integration

1. Create a Machine-to-Machine application in Auth0

  1. Navigate to Auth0 Dashboard → ApplicationsApplications.

  2. Click Create Application.

  3. Select Machine to Machine as the application type.

  4. When prompted, authorize it against the Auth0 Management API.

2. Grant Management API permissions

On your new M2M application, go to the APIs tab and configure the Auth0 Management API with exactly these read scopes:

Scope

Description

read:users

Read users and identities from selected connections.

read:roles

Read roles defined in your tenant.

read:role_members

Read which users belong to each role.

read:clients

Read applications (clients) registered in Auth0.

read:connections

Read identity providers and connections.

3. (Optional) Enable the Authorization Extension API

This step is required only if you want to import group → role → application access relationships. Skip this section if you don't use the Authorization Extension.

  1. In Auth0 Dashboard, go to ExtensionsAuth0 Authorization.

  2. Open the Extension, then click the tenant menu (top right) → API.

  3. Toggle API Access to ON.

This publishes an API named auth0-authorization-extension-api (identifier: urn:auth0-authz-api).

Then authorize your M2M application for it:

  1. Go to Auth0 Dashboard → Applications → your M2M application → APIs tab.

  2. Enable auth0-authorization-extension-api.

  3. Grant these read scopes: read:groups, read:roles, read:users (and read:permissions if listed).

4. Collect your credentials

From your M2M application's Settings tab, copy:

  • Domain — your canonical Auth0 tenant domain (e.g. your-tenant.us.auth0.com). Use this, not a custom login domain.

  • Client ID

  • Client Secret

5. Connect in Ploy

  1. Go to Ploy's Integrations page: https://app.joinploy.com/integrations

  2. Select Auth0.

  3. Paste your Domain, Client ID, and Client Secret.

  4. Select which Connections Ploy should import users from.

Select only workforce connections. Auth0 directories often contain your product's end-users (CIAM). Selecting those connections would import all of them as identities. Choose only connections that contain employees.

  1. Click Test to verify the connection.

  2. Click Save the integration.

What gets imported

  • Members & identities — from the selected connections.

  • Roles, Applications, Groups.

  • Access edges — user → group, group → role, role → application. This lets you see which applications a person can reach.

Troubleshooting

"403 Forbidden" for a resource type

Your M2M application is missing the required Management API scope for that resource. For example, Applications require read:clients. Grant the missing scope in Auth0.

Note: Scope changes can take up to ~24 hours to take effect because the access token is cached. Grant all scopes before connecting in Ploy, or contact support to force a token refresh.

Groups or roles not appearing

If you expected groups or roles from the Authorization Extension:

  • Verify the Authorization Extension API is enabled (step 3b).

  • Verify your M2M app is authorized for auth0-authorization-extension-api (step 3c).

Far too many users imported

You likely selected a non-workforce (end-user/CIAM) connection. Deselect that connection in Ploy and re-scan. Only select connections containing employees.

"Invalid domain" / nothing connects

Use the canonical *.auth0.com tenant domain, not a custom login domain. For example: your-tenant.us.auth0.com, not login.yourcompany.com.

Was this helpful?