第三方应用(OAuth / OIDC)
Logto 的第三方应用集成让你可以将 Logto 作为外部应用的 身份提供商 (IdP)。
身份提供商 (IdP) 是一种验证用户身份并管理其登录凭据的服务。在确认用户身份后,IdP 会生成认证 (Authentication) 令牌或断言,并允许用户访问各种应用或服务,无需再次登录。
与 将 Logto 集成到你的应用 指南中你自己开发和完全控制的应用不同,第三方应用是由外部开发者或业务合作伙伴开发的独立服务。
这种集成方式非常适用于常见的业务场景。你可以让用户使用他们的 Logto 账户访问合作伙伴应用,就像企业用户用 Google Workspace 登录 Slack 一样。你也可以构建一个开放平台,让第三方应用添加“使用 Logto 登录”功能,类似于“使用 Google 登录”。
Logto 是基于 OpenID Connect (OIDC) 协议构建的身份服务,提供 认证 (Authentication) 和 授权 (Authorization) 能力。这让集成 OIDC 第三方应用变得和传统 Web 应用一样简单。
由于 OIDC 基于 OAuth 2.0 并增加了认证 (Authentication) 层,因此你也可以通过 OAuth 协议集成第三方应用。
在 Logto 中创建第三方应用
- 前往 控制台 > 应用。
- 点击“创建应用”按钮,选择“第三方应用”作为应用类型,并选择以下集成协议之一:
- OIDC / OAuth
- 根据第三方应用的类型选择应用类型:
- 传统 Web:后端可安全存储客户端密钥的服务端渲染应用(如 Node.js、PHP、Java)。
- 单页应用 (SPA):完全在浏览器端运行、无法安全存储密钥的客户端渲染应用(如 React、Vue、Angular)。
- 原生应用:在用户设备上运行的移动或桌面应用(如 iOS、Android、Electron)。
- 输入你的应用名称和描述,点击“创建”按钮。一个新的第三方应用就会被创建。
所有创建的第三方应用会在“应用”页面的“第三方应用”标签下进行分类。这种安排有助于你将它们与你自己的应用区分开,方便统一管理所有应用。
集成指南
查找应用配置信息
在应用详情页,你可以找到集成所需的 Client ID、Client secret(仅限传统 Web 应用)和 OIDC 端点。
如果第三方服务支持 OIDC 发现,只需提供 Discovery endpoint。否则,点击 显示端点详情 查看所有端点,包括 授权端点 和 令牌端点。
集成支持第三方 IdP 的服务
如果你要连接的服务或产品原生支持外部身份提供商配置(如企业 SaaS 平台、协作工具),设置流程非常简单:
- 打开该服务的 IdP 或 SSO 配置页面。
- 从 Logto 复制 Client ID(如需则还有 Client secret),粘贴到服务的配置中。
- 如果服务支持 OIDC 自动发现,提供 Discovery endpoint,否则手动复制 Authorization endpoint 和 Token endpoint。
- 从服务配置页面复制 Redirect URI,并添加到 Logto 应用的允许重定向 URI 列表中。
- 如服务允许,配置 scopes。由于 Logto 是 OIDC 提供商,如果需要认证 (Authentication) 用户请包含
openidscope(可获取 ID 令牌和 UserInfo 端点)。如果只需 OAuth 资源访问,openidscope 可选。
服务配置完成后会自动处理 OAuth / OIDC 流程。
通过 OAuth / OIDC 协议集成
如果第三方应用需要以编程方式将 Logto 作为 IdP 集成,则应实现标准的 授权请求 (Authorization Code Flow)。我们建议使用适合你编程语言的 OAuth 2.0 / OIDC 客户端库来实现。
- 传统 Web
- 单页应用 / 原生应用
传统 Web 应用是机密客户端,可以在后端安全存储客户端密钥。完整实现细节见 授权请求 (Authorization Code Flow)。
关键步骤:
- 发起授权请求:将用户重定向到 Logto 的授权端点,携带
client_id、redirect_uri、response_type=code和scope。 - 处理回调:从重定向中接收授权
code。 - 交换令牌:在你的后端,使用 code、
client_id和client_secret向令牌端点 POST。
单页应用和原生应用是公开客户端,无法安全存储密钥。这类应用必须使用 PKCE (Proof Key for Code Exchange) 进行安全授权。完整实现细节见 授权请求 (Authorization Code Flow) 和 PKCE。
关键步骤:
- 生成 PKCE 参数:创建
code_verifier并派生code_challenge(SHA-256)。 - 发起授权请求:携带
code_challenge和code_challenge_method=S256重定向到授权端点。 - 处理回调:从重定向中接收授权
code。 - 交换令牌:使用 code 和原始
code_verifier向令牌端点 POST。
OIDC 第三方应用的用户授权页面 (Consent screen)
出于安全考虑,所有 OIDC 第三方应用在被 Logto 认证 (Authentication) 后都会被重定向到 用户授权页面 (Consent screen) 进行用户授权 (Authorization)。
所有第三方请求的 用户资料权限、API 资源权限、组织权限 以及组织成员信息都会在用户授权页面展示。
只有当用户点击“授权 (Authorize)”按钮后,这些请求的权限才会被授予第三方应用。

后续操作
了解如何为你的 OIDC 第三方应用管理权限。
个性化用户授权页面外观,使其符合你的品牌形象,提供一致的用户体验。
常见问题
我们如何确保用户只能在用户授权页面 (Consent screen) 授予他们实际拥有的权限?
相关资源
使用场景:集成 Apache Answer,为你的用户搭建社区
使用 Logto 作为第三方身份提供商 (IdP)