身份验证

Altium Identity 是 Altium 的 OAuth 2.0 和 OpenID Connect (OIDC) 身份提供程序。您的应用程序通过 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 服务覆盖四个地理区域:

术语

含义

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)

应用通常会同时持有多个令牌:一个全局令牌,以及每个正在使用的工作区各自的工作区令牌。每个令牌均在各自的签发端点刷新。

Skip the discovery step. 如果您已经确定用户应进入某个工作区,可选的 selectWorkspace 参数会提示用户在登录 during 选择一个工作区,随后通过授权码交换直接返回工作区范围的令牌。请参阅“登录工作区模式”。

商业云与 GovCloud

Altium 365 运行两个严格隔离的环境:

  • Commercial Cloud (auth.altium.com) — 默认环境。

  • GovCloud (auth.365-gov.altium.com) — 用于 ITAR/受监管工作区的隔离环境。

令牌的签发者 (iss) 标识了签发该令牌的环境,两个环境的令牌绝不能互换使用:商业服务会拒绝 Gov 令牌,GovCloud 也会拒绝商业令牌。GovCloud 通过 two-token model 强制实施这一限制:Gov 工作区令牌带有一个 secure 标记,将其绑定到 GovCloud。您只需在商业云上登录一次,然后在各工作区所属的环境中,将全局令牌交换为相应的工作区令牌。

我需要哪种流程?

您的应用程序

流程

指南
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