Authentifizierung
Altium Identity ist der OAuth 2.0 und OpenID Connect (OIDC) -Identitätsanbieter von Altium. Ihre Anwendung authentifiziert einen Benutzer über Altium Identity und ruft anschließend in dessen Namen die Altium 365 API auf — dabei verarbeitet sie niemals das Altium-Passwort des Benutzers.
Anwendungen melden sich mit authorization-code flow und PKCE an. Öffentliche Clients (Desktop-, On-Premises-, native und Single-Page-Anwendungen) verwenden PKCE ohne Client-Secret; vertrauliche Clients (Web-/Server-Backends) verwenden zusätzlich ein Client-Secret. Die schrittweisen Abläufe mit sämtlichen Anfragen und Antworten finden Sie auf GitHub — diese Seite erläutert die Konzepte, damit Sie wissen, welchen Weg Sie wählen sollten.
Token-Begriffe
Das kommerzielle Altium 365-Angebot wird in vier geografischen Regionen betrieben:
Begriff |
Beschreibung |
Global access token |
Ein Token auf Benutzerebene, das Sie nach der Anmeldung mit den |
Workspace access token |
Ein Token, das über den |
| Refresh token | Wird ausgestellt, wenn Sie den |
Den vollständigen Aufbau eines Tokens und seiner Claims finden Sie unter Tokens und OAuth-Scopes.
Der Anmeldeablauf
Der Ablauf ist für Web- und Desktop-/On-Premises-Anwendungen gleich — nur how Sie den Autorisierungscode erhalten, unterscheidet sich (über eine von Ihrer Anwendung gehostete Weiterleitung oder das von Altium gehostete ActionWait Muster für Anwendungen, die keine solche Weiterleitung hosten können). In jedem Fall:
-
Sign in on Commercial Cloud (
https://auth.altium.com), um ein global access token zu erhalten. Verwenden Sie es für globale Ressourcen, etwa zum Auflisten der Workspaces des Benutzers. -
Discover the user's workspaces mit dem globalen Token.
-
Exchange the global token for a workspace access token, am Endpunkt, der zum Workspace passt (Commercial oder GovCloud — siehe unten).
-
Call the Altium 365 API mit dem Workspace-Token und aktualisieren Sie es an dem Endpunkt, der es ausgestellt hat.
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)
Eine Anwendung hält üblicherweise mehrere Tokens gleichzeitig — ein globales Token sowie ein Workspace-Token pro verwendetem Workspace. Jedes wird an seinem jeweiligen ausstellenden Endpunkt aktualisiert.
Commercial Cloud und GovCloud
Altium 365 betreibt zwei strikt getrennte Umgebungen:
-
Commercial Cloud (
auth.altium.com) — die Standardumgebung. -
GovCloud (
auth.365-gov.altium.com) — eine isolierte Umgebung für ITAR-/regulierte Workspaces.
Der Aussteller eines Tokens (iss) gibt an, welche Umgebung es erstellt hat. Die Tokens sind niemals austauschbar: Ein Gov-Token wird von Commercial-Diensten abgelehnt, und ein Commercial-Token wird von GovCloud abgelehnt. GovCloud erzwingt dies mit einem two-token model — ein Gov-Workspace-Token enthält eine secure Kennzeichnung, die es an GovCloud bindet. Sie melden sich einmal bei Commercial Cloud an und tauschen anschließend Ihr globales Token gegen das jeweilige Workspace-Token in der Umgebung aus, zu der der betreffende Workspace gehört.
Welchen Ablauf benötige ich?
Ihre Anwendung |
Ablauf |
Anleitung |
| Web or server Anwendung, die einen HTTPS-Weiterleitungsendpunkt hosten kann | Weiterleitungsablauf mit Autorisierungscode |
Web- und Server-Anwendungen |
Desktop, on-prem, or native Anwendung, die keine Weiterleitung hosten kann |
Browser-Anmeldung über das von Altium gehostete ActionWait Muster |
Desktop- und On-Premises-Anwendungen |
Client-Bibliotheken
Sie müssen den Ablauf nicht selbst implementieren. Altium pflegt Open-Source-Bibliotheken, die auf einer gemeinsamen sprachunabhängigen Spezifikation basieren und durch eine gemeinsame Konformitätstestsuite validiert werden:
Sprache |
Referenzdokumentation |
| TypeScript | TypeScript-Bibliothek |
| .NET | .NET-Bibliothek |
| Python | Python-Bibliothek |