Autenticazione
Altium Identity è il provider di identità OAuth 2.0 e OpenID Connect (OIDC) di Altium. La tua applicazione autentica un utente tramite Altium Identity e quindi chiama l'API di Altium 365 per suo conto — senza mai gestire la password Altium dell'utente.
Le applicazioni effettuano l'accesso con il authorization-code flow e PKCE. I client pubblici (desktop, on-prem, nativi, applicazioni single-page) usano PKCE senza client secret; i client riservati (backend web/server) aggiungono un client secret. I flussi dettagliati, con ogni richiesta e risposta, sono disponibili su GitHub — questa pagina spiega i concetti così da aiutarti a capire quale percorso seguire.
Terminologia dei token
L'offerta commerciale di Altium 365 è disponibile in quattro regioni geografiche:
Termine |
Che cos'è |
Global access token |
Un token a livello utente che ricevi dopo l'accesso con gli scope |
Workspace access token |
Un token limitato a un singolo workspace tramite lo scope |
| Refresh token | Emesso quando richiedi lo scope |
Per la struttura completa di un token e delle sue attestazioni, vedi Tokens e OAuth Scopes.
Il percorso di accesso
Il percorso è lo stesso per le app web e desktop/on-prem — cambia solo il modo in cui how ottieni il codice di autorizzazione (un reindirizzamento ospitato dalla tua app, oppure il modello ActionWait ospitato da Altium per le app che non possono ospitarne uno). In ogni caso:
-
Sign in on Commercial Cloud (
https://auth.altium.com) per ottenere un global access token. Usalo per le risorse globali, come l'elenco dei workspace dell'utente. -
Discover the user's workspaces con il token globale.
-
Exchange the global token for a workspace access token, all'endpoint corrispondente al workspace (Commercial o GovCloud — vedi sotto).
-
Call the Altium 365 API con il token del workspace, aggiornandolo all'endpoint che lo ha emesso.
sequenceDiagram
participant App
participant Identity as Altium Identity
participant API as Altium 365 API
App->>Identity: 1. Sign in on auth.altium.com (openid profile) + PKCE
Identity-->>App: global access token
App->>API: 2. Discover workspaces (global token)
API-->>App: workspaces (+ location)
App->>Identity: 3. Exchange for a workspace token
Identity-->>App: workspace access token (+ refresh token)
App->>API: 4. API calls (workspace access token)
Un'app in genere mantiene contemporaneamente più token — un token globale più un token del workspace per ogni workspace in uso. Ciascuno viene aggiornato nel proprio endpoint di emissione.
Commercial Cloud e GovCloud
Altium 365 opera in due ambienti rigorosamente separati:
-
Commercial Cloud (
auth.altium.com) — l'ambiente predefinito. -
GovCloud (
auth.365-gov.altium.com) — un ambiente isolato per workspace ITAR/regolamentati.
L'emittente di un token (iss) identifica quale ambiente lo ha generato, e i due non sono mai intercambiabili: un token Gov viene rifiutato dai servizi Commercial e un token Commercial viene rifiutato da GovCloud. GovCloud applica questa regola con un two-token model — un token workspace Gov contiene un marcatore secure che lo vincola a GovCloud. L'accesso viene eseguito una sola volta su Commercial Cloud, poi il token globale viene scambiato con ciascun token workspace nell'ambiente che possiede quel workspace.
Di quale flusso ho bisogno?
La tua applicazione |
Flusso |
Guida |
| Web or server app che può ospitare un endpoint di reindirizzamento HTTPS | Flusso con reindirizzamento tramite authorization code |
App web e server |
Desktop, on-prem, or native app che non può ospitare un reindirizzamento |
Accesso via browser tramite il modello ActionWait ospitato da Altium |
App desktop e on-prem |
Librerie client
Non devi implementare il flusso manualmente. Altium mantiene librerie open source create su un'unica specifica indipendente dal linguaggio e validate da una suite di conformità condivisa:
Linguaggio |
Documentazione di riferimento |
| TypeScript | Libreria TypeScript |
| .NET | Libreria .NET |