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

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

Приложения выполняют вход с помощью authorization-code flow и PKCE. Публичные клиенты (настольные, локально развернутые, нативные и одностраничные приложения) используют PKCE без секрета клиента; конфиденциальные клиенты (серверные части веб-приложений и серверные приложения) дополнительно используют секрет клиента. Пошаговые сценарии со всеми запросами и ответами доступны на GitHub. На этой странице объясняются основные понятия, чтобы вы могли выбрать подходящий вариант.

Full flows, code, and libraries → Altium 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. Используйте его, чтобы получить новый токен доступа — глобальный или для рабочего пространства — без повторного входа пользователя.

Подробнее о структуре токена и его утверждениях см. в разделах Токены и Области доступа OAuth.

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

Процесс одинаков для веб-приложений и настольных или локально развернутых приложений. Отличается лишь 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, используя конечную точку, соответствующую рабочему пространству (Commercial или 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)

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

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

Commercial Cloud и GovCloud

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

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

  • GovCloud (auth.365-gov.altium.com) — изолированная среда для рабочих пространств, подпадающих под требования ITAR или другие нормативные требования.

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

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

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

Сценарий

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

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

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

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

Вход через браузер с использованием размещенного на стороне Altium механизма ActionWait

Настольные и локально развернутые приложения

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

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

Язык

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

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

Дополнительная информация

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