client_id e client_secret (Basic Auth)https://auth.aworld.cloud/oauth2/token con grant_type=client_credentialsaccess_token con scope configuratiapp/read: lettura dati end-user APIapp/write: scrittura dati end-user API (es. log attività per conto utente)dashboard/read: lettura configurazioni e analyticsdashboard/write: creazione/modifica missioni, contenuti, utentix-user-id per specificare utente da impersonareauth.{CUSTOM_DOMAIN} con routing selettivoexpiresAt > now prima del return/oauth2/token → Lambda (con caching logic per client_credentials)/.well-known/openid-configuration → Lambda (cached response con URL rewriting)workspaceId nel token e workspace richiestoidentityId come principalIsAuthorizedWithToken API di Verified PermissionsworkspaceId, resourceId estratti dalla URL| Claim | Descrizione | Importanza sicurezza |
|---|---|---|
sub | Cognito user ID | Identificativo univoco utente |
workspaceId | Workspace ID | CRITICO: Isolamento multi-tenant |
accountId | Account ID | Tenant di appartenenza |
userId | Application user ID | ID utente applicativo |
context | "dashboard" | "app" | Contesto API autorizzato |
platform | "web" | "mobile" | "m2m" | Tipo client |
role | Ruolo utente | Permessi RBAC |
exp | Unix timestamp | Scadenza token |
platform: "m2m"X-User-ID: {userId}m2mDelegation intercetta header e valida:userId: ID utente da impersonareprincipalId: Principal ID utentelang, timezone: Preferenze utenteapp/write o dashboard/write