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 le authorization-code flow et PKCE. Les clients publics (applications de bureau, on-prem, natives, 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 quel chemin suivre.
Terminologie 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 de niveau utilisateur que vous recevez après connexion avec les portées |
Workspace access token |
Un jeton limité à un seul espace de travail via la portée |
| Refresh token | Délivré 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 de bureau/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 Altium hébergé ActionWait 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 lister les espaces de travail de l’utilisateur. -
Discover the user's workspaces avec le jeton global.
-
Exchange the global token for a workspace access token, sur le point de terminaison correspondant à l’espace de travail (Commercial ou GovCloud — voir ci-dessous).
-
Call the Altium 365 API avec le jeton d’espace de travail, en le renouvelant sur le 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 conserve généralement plusieurs jetons à la fois — un jeton global plus un jeton d’espace de travail par espace de travail utilisé. Chacun est renouvelé sur son propre point de terminaison d’émission.
Commercial Cloud 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 ITAR/réglementés.
L’émetteur d’un jeton (iss) indique quel environnement l’a émis, et les deux ne sont jamais interchangeables : un jeton Gov est rejeté par les services Commercial, et un jeton Commercial est rejeté par GovCloud. GovCloud applique cela avec un two-token model — un jeton d’espace de travail Gov porte un marqueur secure qui l’associe à GovCloud. Vous vous connectez une fois sur Commercial Cloud, puis échangez votre jeton global contre chaque jeton d’espace de travail dans l’environnement propriétaire de cet espace.
De quel flux ai-je besoin ?
Votre application |
Flux |
Guide |
| Web or server application qui peut 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 qui ne peut pas héberger de redirection |
Connexion via navigateur selon le modèle Altium hébergé ActionWait |
Applications de bureau et on-prem |
Bibliothèques clientes
Vous n’avez pas à implémenter le flux manuellement. Altium maintient des bibliothèques open source construites à partir d’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 |