인증
Altium Identity는 Altium의 OAuth 2.0 및 OpenID Connect(OIDC) ID 공급자입니다. 애플리케이션은 Altium Identity를 통해 사용자를 인증한 다음 사용자를 대신하여 Altium 365 API를 호출하며, 사용자의 Altium 비밀번호를 직접 처리하지 않습니다.
애플리케이션은 authorization-code flow 및 PKCE를 사용하여 로그인합니다. 공개 클라이언트(데스크톱, 온프레미스, 네이티브, 싱글 페이지 앱)는 클라이언트 시크릿 없이 PKCE를 사용하고, 기밀 클라이언트(웹/서버 백엔드)는 클라이언트 시크릿을 추가로 사용합니다. 모든 요청과 응답을 포함한 단계별 흐름은 GitHub에서 확인할 수 있습니다. 이 페이지에서는 적합한 방식을 선택할 수 있도록 개념을 설명합니다.
토큰 용어
상용 Altium 365 서비스는 4개의 지리적 리전에서 운영됩니다.
용어 |
설명 |
Global access token |
|
Workspace access token |
|
| Refresh token | |
토큰과 클레임의 전체 구조는 토큰 및 OAuth 범위를 참조하세요.
로그인 과정
웹 앱과 데스크톱/온프레미스 앱의 로그인 과정은 동일하며, 인증 코드를 얻는 how만 다릅니다(앱이 호스팅하는 리디렉션 또는 리디렉션을 호스팅할 수 없는 앱을 위한 Altium 호스팅 ActionWait 패턴). 모든 경우에 다음이 적용됩니다.
-
Sign in on Commercial Cloud (
https://auth.altium.com)하여 global access token을 얻습니다. 사용자의 워크스페이스 목록 조회와 같은 전역 리소스에 사용합니다. -
Discover the user's workspaces 전역 토큰을 사용합니다.
-
Exchange the global token for a workspace access token, 워크스페이스에 해당하는 엔드포인트에서 수행합니다(Commercial 또는 GovCloud — 아래 참조).
-
Call the Altium 365 API 워크스페이스 토큰을 사용하고, 해당 토큰을 발급한 엔드포인트에서 갱신합니다.
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)
앱은 일반적으로 전역 토큰 하나와 사용 중인 워크스페이스별 토큰 하나씩, 여러 토큰을 동시에 보유합니다. 각 토큰은 해당 토큰을 발급한 엔드포인트에서 갱신됩니다.
Commercial Cloud 및 GovCloud
Altium 365는 엄격하게 분리된 두 환경을 운영합니다.
-
Commercial Cloud (
auth.altium.com) — 기본 환경입니다. -
GovCloud (
auth.365-gov.altium.com) — ITAR/규제 대상 워크스페이스를 위한 격리된 환경입니다.
토큰의 발급자(iss)는 해당 토큰을 발급한 환경을 나타내며, 두 환경의 토큰은 서로 호환되지 않습니다. Gov 토큰은 Commercial 서비스에서 거부되고, Commercial 토큰은 GovCloud에서 거부됩니다. GovCloud는 two-token model을 통해 이를 강제합니다. Gov 워크스페이스 토큰에는 해당 토큰을 GovCloud에 귀속시키는 secure 표식이 포함됩니다. Commercial Cloud에서 한 번 로그인한 다음, 각 워크스페이스가 속한 환경에서 전역 토큰을 해당 워크스페이스 토큰으로 교환합니다.
어떤 흐름이 필요한가요?
애플리케이션 |
흐름 |
가이드 |
| Web or server HTTPS 리디렉션 엔드포인트를 호스팅할 수 있는 앱 | 인증 코드 리디렉션 흐름 |
웹 및 서버 앱 |
Desktop, on-prem, or native 리디렉션을 호스팅할 수 없는 앱 |
Altium 호스팅 ActionWait 패턴을 통한 브라우저 로그인 |
데스크톱 및 온프레미스 앱 |
클라이언트 라이브러리
흐름을 직접 구현할 필요는 없습니다. Altium은 언어에 구애받지 않는 단일 명세에 따라 구축되고 공통 적합성 테스트 모음으로 검증된 오픈 소스 라이브러리를 유지 관리합니다.
언어 |
참조 문서 |
| TypeScript | TypeScript 라이브러리 |
| .NET | .NET 라이브러리 |
| Python | Python 라이브러리 |