Okta
Connect Okta to sign users in with Okta credentials and exchange tokens so MCP tools call downstream APIs under each user's identity.
Set up sign-in first. Continue with token exchange only if MCP tools need to call downstream APIs as each person.
Register the Okta Application
Use the published Okta Integration Network (OIN) app or create a custom OIDC integration.
Option A: Install from Okta Integration Network (Recommended)
- In the Okta Admin Console, go to Applications → Applications → Browse App Catalog.
- Search for Archestra and click Add integration.
- Under General Settings, enter your bare Archestra domain without protocol (e.g.
archestra.example.com). - Assign the users or groups allowed to access Archestra.
- On the Sign On tab, copy the Client ID and Client Secret.
- Disable DPoP: in General → Client Credentials, ensure Require Demonstrating Proof of Possession (DPoP) is disabled.
Option B: Create a Custom OIDC Integration
- Go to Applications → Applications → Create App Integration.
- Select OIDC - OpenID Connect and Web Application.
- Set Sign-in redirect URIs to:
https://<archestra-domain>/api/auth/sso/callback/Okta - Set Sign-out redirect URIs to:
https://<archestra-domain>/auth/sign-in - Under Assignments, assign allowed users or groups, save, and copy the Client ID and Client Secret.
Configure SSO in Archestra
- In Archestra, go to Settings → Identity Providers and click Enable on Okta.
- Set Issuer to your Okta organization URL (e.g.
https://example.okta.com). - Paste the Client ID and Client Secret.
- Leave Discovery Endpoint empty (Archestra discovers OIDC metadata automatically).
- Click Create Provider.
Test sign-in in an incognito browser window.
Map Roles and Sync Teams
Configure claim mapping to assign roles and teams on sign-in:
- Role Mapping: In Okta, include the
groupsclaim in ID tokens. In Archestra, create rules matching groups likeArchestra_to target roles. See Role Mapping.Admins - Team Sync: Link Archestra teams to Okta group names in Settings → Teams. See Team Sync.
Configure Okta for Token Exchange
To call downstream APIs as the calling user, configure Okta to accept signed token-exchange requests:
- Generate a PKCS#8 RSA keypair.
- In the Okta Admin Console, open your Archestra application's General settings.
- Under Client Authentication, select Public Key / Private Key and add your public key. Save the assigned Key ID (kid).
- Enable the token-exchange grant type:
urn:ietf:params:oauth:grant-type:token-exchange. - In your authorization server policies, allow the Archestra app to request tokens for downstream API audiences.
Enable Token Exchange in Archestra
- In Settings → Identity Providers, click Edit on Okta, and open Tool Authentication.
- Set Exchange Token Endpoint to
https://<org>.okta.com/oauth2/v1/token. - Set Exchange Client Authentication to Private key JWT.
- Enter your Signing Key ID and paste your Private Key PEM.
- Set User's Token to Exchange to ID token.
- Click Update Provider.
Use It in an MCP Server
Pick IdP token exchange on the server, choose Okta as the Identity Provider, and set Managed Resource Identifier to the downstream audience, such as api://internal-service. See IdP Token Exchange.
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
| Okta tile opens 404 or loop | Protocol prefix in OIN settings | In Okta OIN settings, verify the hostname contains no https:// or trailing path. |
invalid_ | DPoP enforcement enabled | In Okta app settings under Client Credentials, disable DPoP. |
| User denied after Okta login | Strict mode with no matching role | Verify user matches a rule in Role Mapping or disable Strict Mode. |
| Sign-out displays error | Missing logout redirect URI | Add https://<domain>/auth/sign-in to Okta's allowed Sign-out redirect URIs. |