認証
Altium Identity は、Altium の OAuth 2.0 および OpenID Connect (OIDC) の ID プロバイダーです。アプリケーションは Altium Identity を通じてユーザーを認証し、その後、ユーザーに代わって Altium 365 API を呼び出します。つまり、ユーザーの Altium パスワードをアプリケーションが扱うことはありません。
アプリケーションは authorization-code flow および PKCE を使用してサインインします。パブリッククライアント(デスクトップ、オンプレミス、ネイティブ、シングルページアプリ)はクライアントシークレットなしで PKCE を使用します。コンフィデンシャルクライアント(Web/サーバーバックエンド)はクライアントシークレットを追加します。すべてのリクエストとレスポンスを含む手順ごとのフローは GitHub にあり、このページでは、どの方法を選ぶべきか分かるように概念を説明します。
トークンの用語
商用の Altium 365 オファリングは、4 つの地理的リージョンで稼働しています。
用語 |
概要 |
Global access token |
スコープを使ってサインインした後に受け取るユーザーレベルのトークンです。ユーザーがアクセスできるワークスペースを確認するために使用します。 |
Workspace access token |
スコープを通じて単一のワークスペースに限定されたトークンです。そのワークスペースに対する Altium 365 API 呼び出しに使用します。 |
| Refresh token | スコープを要求したときに発行されます。ユーザーに再度サインインを求めることなく、新しいアクセストークン(グローバルまたはワークスペース)を取得するために使用します。 |
トークンの完全な構造とそのクレームについては、 Tokens および OAuth Scopes を参照してください。
サインインの流れ
この流れは Web アプリとデスクトップ/オンプレミスアプリで共通しており、異なるのは認可コードを取得する 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 または Gov Cloud — 下記参照)で 。
-
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)
アプリは通常、複数のトークンを同時に保持します。1 つのグローバルトークンに加え、使用中の各ワークスペースごとに 1 つのワークスペーストークンを持ちます。各トークンは、それぞれの発行元エンドポイントで更新されます。
Commercial Cloud と Gov Cloud
Altium 365 は、厳密に分離された 2 つの環境で稼働しています。
-
Commercial Cloud (
auth.altium.com)— デフォルト環境です。 -
Gov Cloud (
auth.365-gov.altium.com)— ITAR/規制対象ワークスペース向けの分離環境です。
トークンの発行者(iss)は、そのトークンを発行した環境を示しており、両者に互換性はありません。Gov トークンは Commercial サービスでは拒否され、Commercial トークンは Gov Cloud では拒否されます。Gov Cloud はこれを two-token model によって強制しており、Gov のワークスペーストークンには、Gov Cloud に紐付ける secure マーカーが含まれます。Commercial Cloud で一度サインインした後、グローバルトークンを、そのワークスペースを所有する環境上で各ワークスペーストークンに交換します。
どのフローが必要ですか?
アプリケーション |
フロー |
ガイド |
| Web or server HTTPS リダイレクトエンドポイントをホストできるアプリ | 認可コード・リダイレクトフロー |
Web & サーバーアプリ |
Desktop, on-prem, or native リダイレクトをホストできないアプリ |
Altium ホスト型の ActionWait パターンによるブラウザーサインイン |
デスクトップ & オンプレミスアプリ |
クライアントライブラリ
このフローを手作業で実装する必要はありません。Altium は、言語に依存しない 1 つの仕様に基づいて構築され、共通の適合性テストスイートで検証されたオープンソースライブラリを保守しています。
言語 |
リファレンスドキュメント |
| TypeScript | TypeScript ライブラリ |
| .NET | .NET ライブラリ |