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

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

Приложения выполняют вход с помощью authorization-code flow и PKCE. Публичные клиенты (настольные, on-prem, нативные, одностраничные приложения) используют PKCE без секрета клиента; конфиденциальные клиенты (веб-приложения/серверные бэкенды) дополнительно используют секрет клиента. Пошаговые сценарии, включая каждый запрос и ответ, опубликованы на 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.

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

Этот процесс одинаков для веб-приложений и настольных/on-prem приложений — отличается только способ получения how кода авторизации (через перенаправление, которое размещает ваше приложение, либо по шаблону Altium-hosted 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, используя конечную точку, соответствующую рабочему пространству (Commercial или Gov Cloud — см. ниже).

  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)

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

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

Commercial Cloud и Gov Cloud

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

  • 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 содержит маркер secure, который привязывает его к Gov Cloud. Вы выполняете вход один раз в Commercial Cloud, а затем обмениваете глобальный токен на токен каждого рабочего пространства в той среде, которой принадлежит это рабочее пространство.

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

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

Сценарий

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

Сценарий перенаправления с кодом авторизации

Веб- и серверные приложения

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

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

Настольные и on-prem приложения

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

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

Язык

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

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

Узнать больше

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