Skip to main content
This guide assumes you use Okta as your enterprise identity provider (IdP) and have administrative access to an Okta tenant you can use for testing. If you don’t have one, read Create and configure your Okta tenant.
Configure Okta as the OIDC enterprise identity provider for the XAA Requesting App. You’ll set up an Okta tenant, register the Requesting App and Resource App in Okta, configure an AI Agent, and configure the Okta Workforce Enterprise connections in both the Requesting App and Resource App Auth0 tenants.

Create and configure your Okta tenant

To create and configure your Okta tenant for Cross App Access:
  • On the Okta Developer website, sign up for an Okta Integrator Free Plan. Once you sign up, you should be redirected to your new Okta tenant.
  • If Cross App Access is not enabled in your Okta tenant, email developers@okta.com to request XAA enablement for your Okta tenant.
Once you’ve enabled Cross App Access, make sure the following features are toggled on under Okta Admin > Settings > Features in the Okta Admin Console.

Register the Requesting App in Okta

Create the Requesting App in Okta

Your Requesting App is a standard OIDC application. In the Okta Admin Console:
  1. Navigate to Applications and Resources > Applications > Create App Integration.
  2. Select Classic experience > OIDC - OpenID Connect > Web Application and select Next.
  1. Enter an application name.
  2. Under Grant Type, select Authorization Code and Refresh Token.
  3. Under Sign-in redirect URIs, add the callback URL of your Requesting App tenant: https://YOUR_REQUESTING_APP_DOMAIN/login/callback.
  4. Configure Assignments if needed and select Save.
Once you’ve created the Requesting App, Okta assigns it an OIDC Client ID and Client Secret.

Assign the Requesting App to test users

Allow your test user to log in to the Requesting App in Okta. In the Okta Admin Console:
  1. Navigate to Applications and select the Requesting App you created.
  2. Under Assignments, select Assign > Assign to People and select your test user.
  3. Select Save.

Register and configure the AI agent in Okta

In Okta, the AI agent represents the entity that acts on behalf of the user to access the Resource App. You associate the AI Agent with the Requesting App OIDC application you created. When you do, the AI Agent takes on the Requesting App’s OIDC credentials.

Create the AI agent

In the Okta Admin Console, navigate to Directory > AI Agents > Register AI Agent and select Register Manually.
  1. Enter a name for your agent.
  2. Select Allow users to access this agent.
  3. Under Select an existing app, select the Requesting App you created.
  4. (Optional) Assign an owner.
  5. Select Save.
At this stage, your AI agent is STAGED.

Set client registration for the AI agent

  1. Select the AI agent you created.
  2. Select the Client registration tab.
  3. Select Client Secret as the authentication method. Private Key JWT is also supported.
  4. Note the Client ID and Client Secret of the AI agent, which should be the Client ID and Client Secret of the Requesting App OIDC Application you created in your Okta tenant. You’ll need these when configuring the Okta Workforce connection in your Requesting App tenant.

Activate the AI Agent

Under Actions, select Activate and verify that the Managed Status is Active.

Configure the Requesting App connection in Auth0

In your Requesting App Auth0 tenant, create an Okta Workforce Enterprise connection. This connection authenticates your users with Okta and enables the XAA Requesting App role.
  1. Navigate to Authentication > Enterprise > Okta Workforce and select Create Connection.
Enter the following:
  1. Under Cross App Access > Cross App Access Role, select Requesting Application.
The Requesting Application toggle is disabled while the connection uses the front channel. Make sure to set the communication channel to back channel for the connection.
  1. Select Create.

Add offline_access scope and update the user mapping

After creating the connection, select it and navigate to Settings.
  1. Under Scopes, add offline_access to the list of scopes. This enables your application to obtain a refresh token, which is required to perform the refresh token exchange with Token Vault.
  2. Under Mappings, select Okta Basic and add offline_access to the userinfo_scope list in the JSON mapping.
  1. Select Save.

Enable connection for an application

Before testing the connection, navigate to the Applications tab and enable the connection for at least one application.

Test the connection

  1. Select the Okta Workforce connection you created, then select the three dots and select Try.
  2. Log in with your test user in Okta to verify the connection works.
Once the user successfully logs in, their user profile is created in your Requesting App tenant.
Users must log in with a XAA-enabled enterprise connection at least once so that the user profile exists in Auth0. Auth0 does not support JIT user creation with ID-JAG at the moment.

Register the Resource App in Okta

Create the Resource App in Okta

Your Resource App is also an OIDC web application registered in Okta. In the Okta Admin Console:
  1. Navigate to Applications and Resources > Applications > Create App Integration.
  2. Select Classic experience > OIDC - OpenID Connect > Web Application and select Next.
  3. Enter an application name.
  4. Under Grant Type, select Authorization Code and Refresh Token.
  5. Under Sign-in redirect URIs, add the callback URLs of both the Requesting App tenant and the Resource App tenant:
    • https://YOUR_REQUESTING_APP_DOMAIN/login/callback
    • https://YOUR_RESOURCE_APP_DOMAIN/login/callback
  6. Configure Assignments if needed.
  7. Select Save.

Assign Resource App to Test Users

Allow your test user to log in to the Resource App in Okta. In the Okta Admin Console:
  1. Navigate to Applications and select the Resource App you created.
  2. Select Assign > Assign to People and select your test user.
  3. Select Save.

Enable Cross App Access for the Resource App

  1. Select the Resource Server tab for the Resource App.
  2. Enable Cross App Access (XAA).
  3. Enter the Issuer URL of the Resource App tenant: https://YOUR_RESOURCE_APP_DOMAIN/.
Auth0 issues and accepts tokens with an issuer URL that must end with a trailing forward slash /.
  1. Leave the Audience/Tenant ID field blank. Auth0 does not support the aud_tenant claim.
  2. Select Save.

Assign the Resource App to the AI agent

In the Okta Admin Console:
  1. Navigate to Directory > AI Agents and select the AI agent you created.
  2. Under Resource Connections, select Add resource connection.
  3. Select Application and then App configured for AI Agent access as the Resource type.
  4. Under Application, select the Resource App you created.
  5. Leave the Resource indicator blank. When left blank, Okta will auto-generate a value.
  6. For AI agent’s client ID registered in this app, enter the Client ID of the Resource App application registered in your Resource App Auth0 tenant.
  7. Optionally, configure scope restrictions.
  8. Select Add.

Configure the Resource App connection in Auth0

In the Resource App Auth0 tenant, create an Okta Workforce Enterprise connection that federates it with Okta and enables the XAA Resource App role.
  1. Navigate to Authentication > Enterprise > Okta Workforce and select Create Connection.
Enter the following:
  1. Under Cross App Access > Cross App Access Role, select Resource Application.
  1. Select Create.

Add offline_access scope and update mappings

After creating the connection, select it and navigate to Settings.
  1. Under Scopes, add offline_access to the list of scopes.
  2. Under Mappings, select Okta Basic and add offline_access to the userinfo_scope list in the JSON mapping.
  3. Select Save.

Enable the connection for the Resource App

Under Applications, enable the Okta Workforce connection for the Resource App application registered in the Resource App tenant.

Test the connection

Select the Okta Workforce connection you created, then select the three dots and select Try. Log in with your test user to verify the connection works. Once the user successfully logs in, their user profile is created in your Resource App tenant.
Users must log in with a XAA-enabled enterprise connection at least once so that the user profile exists in Auth0. Auth0 does not support JIT user creation with ID-JAG at the moment.

Configure Cross App Access with Token Vault

Once you’ve configured both connections, proceed to Cross App Access with Token Vault to set up the Token Vault integration and test the end-to-end flow.

Publish your Requesting App in OIN

After you’ve configured and tested the end-to-end flow, B2B and SaaS providers can amplify their reach to enterprise customers by publishing their Resource App to the Okta Integration Network (OIN). To learn how, follow the instructions in How to Build and List Secure Cross App Access Connections on OIN.