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 manipule jamais le mot de passe Altium de l'utilisateur.
Les applications se connectent avec authorization-code flow et PKCE. Les clients publics (applications de bureau, sur site, natives et monopages) utilisent PKCE sans secret client ; les clients confidentiels (backends web/serveur) ajoutent un secret client. Les flux détaillés étape par étape, avec chaque requête et chaque réponse, sont disponibles sur GitHub — cette page explique les concepts pour vous aider à choisir la marche à suivre.
Terminologie des jetons
L'offre commerciale Altium 365 est déployée dans quatre régions géographiques :
Terme |
Description |
Global access token |
Un jeton au niveau de l'utilisateur, reçu après la connexion avec les portées |
Workspace access token |
Un jeton limité à un seul espace de travail via la portée |
| Refresh token | Émis lorsque vous demandez la portée |
Pour connaître la structure complète d'un jeton et de ses revendications, consultez Jetons et Portées OAuth.
Le parcours de connexion
Le parcours est identique pour les applications web et les applications de bureau/sur site — seule diffère how vous obtenez le code d'autorisation (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 espaces de travail 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 à l'espace de travail (commercial ou GovCloud — voir ci-dessous).
-
Call the Altium 365 API avec le jeton de l'espace de travail, en le renouvelant auprès du 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 et un jeton par espace de travail utilisé. Chacun est renouvelé auprès du point de terminaison qui l'a émis.
Cloud commercial et GovCloud
Altium 365 fonctionne dans deux environnements strictement séparés :
-
Commercial Cloud (
auth.altium.com) — l'environnement par défaut. -
GovCloud (
auth.365-gov.altium.com) — un environnement isolé pour les espaces de travail soumis à l'ITAR ou à d'autres réglementations.
L'émetteur d'un jeton (iss) indique l'environnement qui l'a émis, et les deux types de jetons ne sont jamais interchangeables : un jeton Gov est rejeté par les services commerciaux, et un jeton commercial est rejeté par GovCloud. GovCloud impose cette séparation au moyen d'un two-token model — un jeton d'espace de travail Gov comporte un marqueur secure qui le lie à GovCloud. Vous vous connectez une seule fois au cloud commercial, puis vous échangez votre jeton global contre un jeton pour chaque espace de travail auprès de l'environnement auquel cet espace de travail appartient.
Quel flux dois-je utiliser ?
Votre application |
Flux |
Guide |
| Web or server application pouvant héberger un point de terminaison de redirection HTTPS | Flux de redirection avec code d'autorisation |
Applications web et serveur |
Desktop, on-prem, or native application ne pouvant pas héberger de redirection |
Connexion dans le navigateur via le modèle ActionWait hébergé par Altium |
Applications de bureau et sur site |
Bibliothèques clientes
Vous n'avez pas besoin d'implémenter le flux vous-même. Altium maintient des bibliothèques open source fondées sur une spécification unique indépendante du langage et validées par une suite de tests de conformité commune :
Langage |
Documentation de référence |
| TypeScript | Bibliothèque TypeScript |
| .NET | Bibliothèque .NET |
| Python | Bibliothèque Python |