Аутентификация

Altium Identity — это поставщик удостоверений Altium на базе OAuth 2.0 и OpenID Connect (OIDC). Ваше приложение аутентифицирует пользователя через Altium Identity, а затем вызывает API Altium 365 от его имени — при этом оно никогда не работает с паролем пользователя Altium.

Приложения выполняют вход с помощью authorization-code flow и PKCE. Публичные клиенты (desktop, on-prem, native, single-page apps) используют PKCE без client secret; конфиденциальные клиенты (web/server backends) дополнительно используют client secret. Пошаговые сценарии со всеми запросами и ответами размещены на GitHub — на этой странице объясняются основные концепции, чтобы вы могли понять, какой путь выбрать.

Full flows, code, and libraries → Altium 365 Auth on GitHub. Проект на GitHub является основным источником достоверной информации: независимая от языка спецификация, общий набор тестов на соответствие и идиоматические клиентские библиотеки для TypeScript и .NET.

Терминология токенов

Коммерческое предложение Altium 365 доступно в четырех географических регионах:

Термин

Что это такое

Global access token

Токен уровня пользователя, который вы получаете после входа с областями доступа openid profile. Используйте его, чтобы определить, к каким рабочим пространствам пользователь имеет доступ.

Workspace access token

Токен, ограниченный одним рабочим пространством, через область доступа a365:workspace:{workspaceId}. Используйте его для вызовов API Altium 365 в этом рабочем пространстве.

Refresh token

Выдается, когда вы запрашиваете область доступа offline_access. Используйте его, чтобы получить новый токен доступа — глобальный или для рабочего пространства — не запрашивая у пользователя повторный вход.

Полное описание структуры токена и его утверждений см. в разделах Tokens и OAuth Scopes.

Процесс входа

Процесс одинаков для web и desktop/on-prem приложений — отличается только способ получения how authorization code (через redirect, размещенный вашим приложением, либо по шаблону Altium-hosted ActionWait для приложений, которые не могут разместить такой redirect). В любом случае:

  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, на endpoint, соответствующем рабочему пространству (Commercial или GovCloud — см. ниже).

  4. Call the Altium 365 API с использованием токена рабочего пространства, обновляя его через endpoint, который его выдал.

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)

Обычно приложение одновременно хранит несколько токенов — один глобальный токен плюс по одному токену рабочего пространства для каждого используемого рабочего пространства. Каждый из них обновляется через свой endpoint выдачи.

Skip the discovery step. Если вы уже знаете, что пользователь должен попасть в рабочее пространство, необязательный параметр selectWorkspace предлагает пользователю выбрать его during входа, а обмен кода сразу возвращает токен, ограниченный этим рабочим пространством. См. режим Login into workspace.

Commercial Cloud и GovCloud

Altium 365 работает в двух строго разделенных средах:

  • Commercial Cloud (auth.altium.com) — среда по умолчанию.

  • GovCloud (auth.365-gov.altium.com) — изолированная среда для рабочих пространств ITAR/regulated.

Издатель токена (iss) определяет, в какой среде он был выпущен, и эти среды никогда не взаимозаменяемы: токен Gov отклоняется сервисами Commercial, а токен Commercial отклоняется GovCloud. GovCloud обеспечивает это с помощью two-token model — токен рабочего пространства Gov содержит маркер secure, который привязывает его к GovCloud. Вы выполняете вход один раз в Commercial Cloud, а затем обмениваете свой глобальный токен на токен каждого рабочего пространства в той среде, которой принадлежит это рабочее пространство.

Какой сценарий мне нужен?

Ваше приложение

Сценарий

Руководство
Web or server приложение, которое может разместить HTTPS endpoint для redirect

Сценарий redirect с authorization code

Web и server приложения

Desktop, on-prem, or native приложение, которое не может разместить redirect

Вход через браузер по шаблону Altium-hosted ActionWait

Desktop и on-prem приложения

Клиентские библиотеки

Вам не обязательно реализовывать этот сценарий вручную. Altium поддерживает open-source библиотеки, созданные по единой независимой от языка спецификации и проверенные общим набором тестов на соответствие:

Язык

Справочная документация

TypeScript Библиотека TypeScript
.NET Библиотека .NET

Подробнее

AI-LocalizedЛокализовано с помощью ИИ
Если вы обнаружили проблему, выделите текст/изображение и нажмитеCtrl + Enter, чтобы отправить нам свой отзыв.
Content