Authentification
Altium Identity est le fournisseur d'identité OAuth 2.0 et OpenID Connect (OIDC) d'Altium. Votre application authentifie un utilisateur via Altium Identity, puis appelle l'API Altium 365 en son nom — elle ne gère jamais le mot de passe Altium de l'utilisateur.
Les applications se connectent avec authorization-code flow et PKCE. Les clients publics (desktop, on-prem, natifs, applications monopage) utilisent PKCE sans secret client ; les clients confidentiels (backends web/serveur) ajoutent un secret client. Les flux détaillés, avec chaque requête et chaque réponse, se trouvent sur GitHub — cette page explique les concepts afin que vous sachiez quelle voie choisir.
Vocabulaire des jetons
L'offre commerciale Altium 365 est déployée dans quatre régions géographiques :
Terme |
Ce que c'est |
Global access token |
Un jeton au niveau utilisateur que vous recevez après la connexion avec les portées |
Workspace access token |
Un jeton limité à un seul workspace via la portée |
| Refresh token | Émis lorsque vous demandez la portée |
Pour l'anatomie complète d'un jeton et de ses revendications, voir Tokens et OAuth Scopes.
Le parcours de connexion
Le parcours est le même pour les applications web et desktop/on-prem — seule la manière dont how vous obtenez le code d'autorisation diffère (une redirection hébergée par votre application, ou le modèle ActionWait hébergé par Altium pour les applications qui ne peuvent pas en héberger une). Dans tous les cas :
-
Sign in on Commercial Cloud (
https://auth.altium.com) pour obtenir un global access token. Utilisez-le pour les ressources globales, comme la liste des workspaces de l'utilisateur. -
Discover the user's workspaces avec le jeton global.
-
Exchange the global token for a workspace access token, au point de terminaison correspondant au workspace (Commercial ou Gov Cloud — voir ci-dessous).
-
Call the Altium 365 API avec le jeton de workspace, en le renouvelant au point de terminaison qui l'a émis.
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)
Une application détient généralement plusieurs jetons à la fois — un jeton global plus un jeton de workspace pour chaque workspace utilisé. Chacun est renouvelé auprès de son propre point de terminaison émetteur.
Commercial Cloud et Gov Cloud
Altium 365 fonctionne dans deux environnements strictement séparés :
-
Commercial Cloud (
auth.altium.com) — l'environnement par défaut. -
Gov Cloud (
auth.365-gov.altium.com) — un environnement isolé pour les workspaces ITAR/réglementés.
L'émetteur d'un jeton (iss) indique quel environnement l'a généré, et les deux ne sont jamais interchangeables : un jeton Gov est rejeté par les services Commercial, et un jeton Commercial est rejeté par Gov Cloud. Gov Cloud applique cela avec un two-token model — un jeton de workspace Gov comporte un marqueur secure qui le lie à Gov Cloud. Vous vous connectez une seule fois sur Commercial Cloud, puis échangez votre jeton global contre chaque jeton de workspace dans l'environnement propriétaire de ce workspace.
De quel flux ai-je besoin ?
Votre application |
Flux |
Guide |
| Web or server application pouvant héberger un point de terminaison de redirection HTTPS | Flux de redirection par code d'autorisation |
Applications web et serveur |
Desktop, on-prem, or native application ne pouvant pas héberger de redirection |
Connexion via navigateur selon le modèle ActionWait hébergé par Altium |
Applications desktop et on-prem |
Bibliothèques clientes
Vous n'avez pas à implémenter le flux à la main. Altium maintient des bibliothèques open source construites sur une spécification indépendante du langage et validées par une suite de conformité partagée :
Langage |
Documentation de référence |
| TypeScript | Bibliothèque TypeScript |
| .NET | Bibliothèque .NET |