認証

Altium Identityは、Altiumの OAuth 2.0 および OpenID Connect (OIDC) に対応したIDプロバイダーです。アプリケーションはAltium Identityを通じてユーザーを認証し、そのユーザーに代わってAltium 365 APIを呼び出します。ユーザーのAltiumパスワードを直接扱うことはありません。

アプリケーションは authorization-code flow と PKCEを使用してサインインします。パブリッククライアント(デスクトップ、オンプレミス、ネイティブ、シングルページアプリ)はクライアントシークレットなしでPKCEを使用し、コンフィデンシャルクライアント(Web/サーバーバックエンド)はクライアントシークレットを追加します。すべてのリクエストとレスポンスを含む段階的なフローはGitHubで公開されています。このページでは、適切なフローを選べるように基本概念を説明します。

Full flows, code, and libraries → Altium Auth on GitHub. GitHubプロジェクトが正式な情報源です。言語に依存しない仕様、共通の適合性テストスイート、TypeScriptおよび.NETそれぞれの慣用的な実装に沿ったクライアントライブラリが含まれています。

トークンの用語

商用のAltium 365サービスは、4つの地理的リージョンで稼働しています。

用語

説明

Global access token

 openid profile スコープを指定してサインインした後に受け取る、ユーザーレベルのトークンです。ユーザーがアクセスできるワークスペースを確認するために使用します。

Workspace access token

 a365:workspace:{workspaceId} スコープによって、単一のワークスペースに範囲が限定されたトークンです。そのワークスペースに対するAltium 365 API呼び出しに使用します。

Refresh token

 offline_access スコープを要求すると発行されます。ユーザーに再度サインインを求めることなく、グローバルまたはワークスペースの新しいアクセストークンを取得するために使用します。

トークンの構造とクレームの詳細については、 トークン および OAuthスコープを参照してください。

サインインの流れ

Webアプリとデスクトップ/オンプレミスアプリの流れは同じです。異なるのは、認可コードを取得する how だけです(アプリがホストするリダイレクト、またはリダイレクトをホストできないアプリ向けにAltiumがホストする ActionWait パターン)。いずれの場合も、次の手順を実行します。

  1. Sign in on Commercial Cloud (https://auth.altium.com)で global access tokenを取得します。ユーザーのワークスペースの一覧取得など、グローバルリソースへのアクセスに使用します。

  2. Discover the user's workspaces をグローバルトークンで実行します。

  3. Exchange the global token for a workspace access tokenを、ワークスペースに対応するエンドポイント(商用またはGovCloud — 下記参照)で実行します。

  4. 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つのワークスペーストークンです。各トークンは、それぞれを発行したエンドポイントで更新されます。

Skip the discovery step. ユーザーがワークスペースに移動すべきことがあらかじめわかっている場合は、任意の selectWorkspace パラメーターを指定すると、サインイン during にワークスペースの選択を求め、コード交換によってワークスペースにスコープを限定したトークンを直接取得できます。「ワークスペースモードでのログイン」を参照してください。

商用クラウドとGovCloud

Altium 365は、厳密に分離された2つの環境で稼働しています。

  • Commercial Cloud (auth.altium.com)— デフォルトの環境です。

  • GovCloud (auth.365-gov.altium.com)— ITAR対象/規制対象のワークスペース向けの隔離された環境です。

トークンの発行者(iss)は、そのトークンを発行した環境を示します。2つの環境のトークンを相互に使用することはできません。Govトークンは商用サービスで拒否され、商用トークンはGovCloudで拒否されます。GovCloudは two-token model によってこの分離を徹底します。Govワークスペーストークンには、GovCloudに紐付ける secure マーカーが含まれます。商用クラウドで一度サインインした後、各ワークスペースが属する環境でグローバルトークンをそれぞれのワークスペーストークンに交換します。

どのフローを使用すればよいですか?

アプリケーション

フロー

ガイド
Web or server HTTPSリダイレクトエンドポイントをホストできるアプリ

認可コードリダイレクトフロー

Webアプリとサーバーアプリ

Desktop, on-prem, or native リダイレクトをホストできないアプリ

Altiumがホストする ActionWait パターンによるブラウザーでのサインイン

デスクトップアプリとオンプレミスアプリ

クライアントライブラリ

フローを自分で実装する必要はありません。Altiumは、言語に依存しない共通仕様に基づいて構築され、共通の適合性テストスイートで検証されたオープンソースライブラリを保守しています。

言語

リファレンスドキュメント

TypeScript TypeScriptライブラリ
.NET .NETライブラリ
Python Pythonライブラリ

詳細情報

AI-LocalizedAI で翻訳
問題が見つかった場合、文字/画像を選択し、Ctrl + Enter キーを押してフィードバックをお送りください。
Contents
Contents