Account OAuth
Sign users into an application with their EnderDash dashboard accounts.
Account OAuth lets an application sign in an EnderDash user through OpenID Connect. It uses the user's dashboard account and the EnderDash sign-in and consent pages.
For in-game identity proof, use Game OAuth. Game OAuth has a different issuer, client registry, and set of claims.
Discovery and endpoints
Load discovery from https://app.enderdash.com/.well-known/openid-configuration.
The production issuer is https://app.enderdash.com/api/auth.
Keep the /api/auth path when you configure the expected issuer.
| Endpoint | Purpose |
|---|---|
/.well-known/openid-configuration | OpenID Connect discovery |
/.well-known/oauth-authorization-server | OAuth authorization-server metadata |
/.well-known/oauth-authorization-server/api/auth | Authorization-server metadata for the path-based issuer |
/.well-known/oauth-protected-resource/api/mcp | MCP resource metadata |
/api/auth/oauth2/authorize | Browser authorization |
/api/auth/oauth2/token | Token exchange |
/api/auth/oauth2/userinfo | User claims |
/api/auth/jwks | Public signing keys |
/api/auth/oauth2/introspect | Token introspection |
/api/auth/oauth2/revoke | Token revocation |
All paths use the app origin. Read endpoint URLs from discovery when you configure an OIDC library.
For local development, replace the origin with https://app.enderdash.localhost:1355.
Client registration
An EnderDash platform admin registers account clients under Admin > OAuth Clients. Organization owners and admins do not receive this permission through their organization role. Public dynamic client registration is available for MCP clients. Other account clients can still be registered by a platform admin.
The admin supplies the client name, redirect URIs, scopes, token authentication method, and PKCE requirement.
The client can use client_secret_basic or client_secret_post.
The current admin flow creates confidential web clients with the authorization-code grant.
The generated client ID starts with edc_, unless the admin supplies a custom ID.
Client secrets start with edocs_. Creation and rotation return the secret once.
Store it in the application's backend.
Scopes and grants
| Scope | Purpose |
|---|---|
openid | OpenID Connect identity |
profile | User profile claims |
email | User email claims |
offline_access | Requests a refresh token for continued access |
mcp:read | Reads organizations, servers, alerts, activity, and pages |
mcp:knowledge:write | Creates knowledge pages and edits drafts |
Account clients can receive refresh tokens when their allowed and requested scopes include offline_access.
Send the refresh token to the token endpoint with grant_type=refresh_token and the registered client authentication.
Store the latest returned refresh token when you renew access.
Use the response's expires_in value to schedule renewal.
Discovery describes provider capabilities. The current admin interface creates authorization-code clients, not service clients for the client-credentials flow.
Sign-in flow
- Configure an OIDC client with discovery, the registered callback URL, and the client credentials.
- Start authorization with
response_type=code, requested scopes, a randomstate, and anonce. - Use PKCE with
S256and retain the verifier for the callback. - Let EnderDash handle sign-in and any required consent.
- Validate the callback state before exchanging its code from your backend.
- Validate the ID token's signature, issuer, audience, expiration, and nonce through your OIDC library.
- Use the access token at the discovered userinfo endpoint when you need user claims.
Use the issuer and sub together as the account identity.
An email address or display name can change.
Access boundaries
Account OAuth signs a user into your application. It does not grant organization membership or server access. The scopes listed here do not represent server-management permissions.
MCP server
The MCP server uses the account OAuth provider and the resource at https://app.enderdash.com/api/mcp.
Clients can discover the authorization server from the protected-resource metadata endpoint above.
EnderDash currently supports dynamic client registration for MCP clients.
Follow Connect an MCP Client to sign in and try the tools. See the MCP Server reference for the tool list, scopes, and access rules.
The HTTP API accepts an EnderDash session or user API key. It does not accept an OAuth access token as a replacement for those credentials. Game OAuth tokens cannot authenticate this provider's userinfo endpoint.
Troubleshooting
| Problem | Check |
|---|---|
| Issuer mismatch | Expected issuer includes /api/auth |
| Invalid client | Account client registered by a platform admin, correct secret, enabled state |
| Redirect rejected | Callback URL matches a registered URI |
| PKCE failure | Original verifier and S256 challenge belong to the same authorization request |
| No refresh token | Client allows offline_access and the authorization request includes it |
| HTTP API rejects the token | Use a session or X-API-Key for that API |
Related
Was this page helpful?
Send a quick note if anything is missing or unclear.
Last updated on