Uwierzytelnianie
Altium Identity to dostawca tożsamości Altium oparty na OAuth 2.0 i OpenID Connect (OIDC). Twoja aplikacja uwierzytelnia użytkownika za pośrednictwem Altium Identity, a następnie wywołuje API Altium 365 w jego imieniu — nigdy nie obsługuje hasła Altium użytkownika.
Aplikacje logują się przy użyciu authorization-code flow i PKCE. Klienci publiczni (aplikacje desktopowe, on-prem, natywne, jednostronicowe) używają PKCE bez client secret; klienci poufni (backendy webowe/serwerowe) dodatkowo używają client secret. Szczegółowe przebiegi krok po kroku, wraz z każdym żądaniem i odpowiedzią, znajdują się na GitHubie — ta strona wyjaśnia koncepcje, aby pomóc Ci wybrać właściwą ścieżkę.
Słownictwo dotyczące tokenów
Komercyjna oferta Altium 365 działa w czterech regionach geograficznych:
Termin |
Co to jest |
Global access token |
Token na poziomie użytkownika, który otrzymujesz po zalogowaniu z zakresami |
Workspace access token |
Token ograniczony do pojedynczego workspace’u za pomocą zakresu |
| Refresh token | Wydawany, gdy żądasz zakresu |
Pełny opis budowy tokenu i jego claimów znajdziesz w Tokens i OAuth Scopes.
Proces logowania
Proces jest taki sam dla aplikacji webowych oraz desktopowych/on-prem — różni się tylko sposób, how w jaki uzyskujesz authorization code (przekierowanie hostowane przez Twoją aplikację albo hostowany przez Altium wzorzec ActionWait dla aplikacji, które nie mogą go hostować). W każdym przypadku:
-
Sign in on Commercial Cloud (
https://auth.altium.com), aby uzyskać global access token. Użyj go dla zasobów globalnych, takich jak lista workspace’ów użytkownika. -
Discover the user's workspaces przy użyciu tokenu globalnego.
-
Exchange the global token for a workspace access token, w endpointcie odpowiadającym danemu workspace’owi (Commercial lub GovCloud — patrz niżej).
-
Call the Altium 365 API przy użyciu tokenu workspace’u, odświeżając go w endpointcie, który go wydał.
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)
Aplikacja zwykle przechowuje jednocześnie kilka tokenów — jeden token globalny oraz po jednym tokenie workspace’u dla każdego używanego workspace’u. Każdy z nich jest odświeżany w swoim endpointcie wydającym.
Commercial Cloud i GovCloud
Altium 365 działa w dwóch ściśle odseparowanych środowiskach:
-
Commercial Cloud (
auth.altium.com) — środowisko domyślne. -
GovCloud (
auth.365-gov.altium.com) — odizolowane środowisko dla workspace’ów ITAR/regulowanych.
Issuer tokenu (iss) identyfikuje środowisko, które go wydało, i oba środowiska nigdy nie są zamienne: token Gov jest odrzucany przez usługi Commercial, a token Commercial jest odrzucany przez GovCloud. GovCloud egzekwuje to za pomocą two-token model — token workspace’u Gov zawiera znacznik secure, który wiąże go z GovCloud. Logujesz się raz w Commercial Cloud, a następnie wymieniasz swój token globalny na każdy token workspace’u w środowisku, do którego należy dany workspace.
Jakiego flow potrzebuję?
Twoja aplikacja |
Flow |
Przewodnik |
| Web or server aplikacja, która może hostować endpoint przekierowania HTTPS | Authorization-code redirect flow |
Aplikacje webowe i serwerowe |
Desktop, on-prem, or native aplikacja, która nie może hostować przekierowania |
Logowanie przez przeglądarkę z użyciem hostowanego przez Altium wzorca ActionWait |
Aplikacje desktopowe i on-prem |
Biblioteki klienckie
Nie musisz implementować flow ręcznie. Altium utrzymuje biblioteki open source zbudowane według jednej, neutralnej językowo specyfikacji i zweryfikowane przez współdzielony zestaw testów zgodności:
Język |
Dokumentacja referencyjna |
| TypeScript | Biblioteka TypeScript |
| .NET | Biblioteka .NET |