理解 OIDC 认证 (Authentication) 流程
Logto 基于 OAuth 2.0 和 OpenID Connect (OIDC) 标准构建。理解这些认证 (Authentication) 标准将让集成过程更加顺畅和直接。
用户认证 (Authentication) 流程
以下是用户通过 Logto 登录时发生的流程:
在此流程中,有几个关键概念对集成过程至关重要:
Application:这代表你在 Logto 中的应用。你需要在 Logto 控制台创建应用配置,以建立你的实际应用与 Logto 服务之间的连接。了解更多关于 Application。Redirect URI:用户在 Logto 登录页面完成认证 (Authentication) 后,Logto 会通过此 URI 将其重定向回你的应用。你需要在应用设置中配置 Redirect URI。详情见 Redirect URIs。Handle sign-in callback:当 Logto 将用户重定向回你的应用时,你的应用需要处理认证 (Authentication) 数据并请求访问令牌 (Access token) 和用户信息。不用担心——Logto SDK 会自动处理这些。
以上内容涵盖了快速集成的要点。如需更深入了解,请参阅我们的 登录体验详解 指南。
机器对机器认证 (Authentication) 流程
Logto 提供了 机器对机器 (M2M) 应用 类型,基于 OAuth 2.0 客户端凭证流,实现服务之间的直接认证 (Authentication):
这种机器对机器 (M2M) 认证 (Authentication) 流程适用于无需用户交互(因此没有 UI),需要直接与资源通信的应用,例如 API 服务更新 Logto 中的用户数据,或统计服务拉取每日订单。
在此流程中,服务通过客户端凭证进行认证 (Authentication)——即 Application ID 和 Application Secret 的组合,用于唯一标识和认证 (Authentication) 服务本身。这些凭证在向 Logto 请求 访问令牌 (Access token) 时作为服务的身份。
设备流(输入受限设备)
对于输入能力有限的设备(如智能电视、游戏主机、CLI 工具、IoT 设备),Logto 支持 OAuth 2.0 设备授权码模式。设备会显示一个代码和 URL,用户则在另一台带浏览器的设备上完成认证 (Authentication):
在此流程中:
- 设备向 Logto 请求设备码,获得一个简短的
user_code和verification_uri - 用户在另一台设备(手机、笔记本)上访问验证 URL,输入代码并登录
- 设备轮询令牌端点,直到用户完成授权,然后获得令牌
与标准用户流程不同,设备流不需要设备本身具备重定向 URI 或浏览器能力。详细了解请参阅 设备流快速上手。
SAML 认证 (Authentication) 流程
除了 OAuth 2.0 和 OIDC,Logto 还支持 SAML(安全断言标记语言)认证 (Authentication),作为身份提供商 (IdP) 实现与企业应用的集成。目前,Logto 支持 SP 发起的认证 (Authentication) 流程:
SP 发起流程
在 SP 发起流程中,认证 (Authentication) 过程从服务提供方(你的应用)开始:
在此流程中:
- 用户从你的应用(服务提供方)发起认证 (Authentication) 流程
- 你的应用生成 SAML 请求并重定向用户到 Logto(身份提供商 (IdP))
- 用户在 Logto 成功认证 (Authentication) 后,Logto 向你的应用发送 SAML 响应
- 你的应用处理 SAML 响应并完成认证 (Authentication)
IdP 发起流程
Logto 未来版本将支持 IdP 发起流程,允许用户直接从 Logto 门户发起认证 (Authentication) 流程。敬请关注该功能的更新。
这种 SAML 集成让企业应用能够将 Logto 作为身份提供商 (IdP),支持现代和传统的基于 SAML 的服务提供方。
相关资源
博客:使用 OAuth 2.0 和 OpenID Connect 保护云端应用
为什么多应用场景下单点登录 (SSO) 更好为什么你的多应用业务需要一个集中式身份系统