type
status
date
slug
summary
category
tags
create_time
Aug 29, 2025 09:00 AM
icon
password
my_create_time

📝 前言

在企业和组织中,多应用、多系统的场景非常普遍。
如果每个应用都独立管理用户登录,用户体验差,安全性也难以保证。
青萍统一认证平台基于标准 OIDC(OpenID Connect)协议,实现集中身份管理和统一登录。
本文将以应用对接为核心,详细说明如何接入青萍统一认证平台,实现统一认证与单点登录。

🧭 背景介绍

在没有统一认证平台的情况下,每个应用都需要单独维护用户账户和密码:
  • 用户需要记住多个账号和密码
  • 企业难以统一管理权限和审计
  • 系统间无法实现统一会话
青萍统一认证平台作为 集中式身份认证服务,支持多种外部身份源(如 GitHub、Notion、微信),通过标准 OIDC 协议向应用提供认证服务,使企业可以:
  • 集中管理用户身份和权限
  • 提升用户体验(统一登录、退出)
  • 支持安全审计和访问控制

📌 最终目标

通过接入青萍统一认证平台,应用能够:
  • 提供统一登录入口
  • 使用 ID Token 验证用户身份
  • 可选支持 Access Token 调用后端 API
  • 支持刷新 Token 及单点登出

📋 前提条件

  • 需要申请接入青萍商业平台
可添加V联系:lusyoe

🖼️ 接入流程图

notion image

🚀 详细接入步骤

1️⃣ 获取客户端信息

在审核通过后,平台会提供以下信息:
字段
说明
示例
Client ID
应用唯一标识(平台提供)
myapp
Client Secret
应用密钥,用于后端换取 Token(平台提供)
myapp-secret
Redirect URI
登录成功后回调地址(需自行实现)
https://myapp.example.com/callback
Scope
请求的用户信息范围(平台提供)
openid profile email

2️⃣ 应用发起登录请求

应用将用户浏览器重定向到青萍统一认证平台的 /auth
参数说明:
  • client_id:应用 ID
  • redirect_uri:回调地址
  • response_type=code:使用授权码模式
  • scope:请求用户信息范围
  • state:防止 CSRF 攻击的随机值

3️⃣ 用户登录与回调

用户在青萍统一认证平台完成登录后,浏览器被重定向回应用回调地址,并携带授权码:
应用后端需:
  1. 校验 state 参数与请求时一致
  1. 提取 code
PS:在登录成功后,平台会将 token 直接写入 cookie,因此也可以省去交换 token 这一步,直接校验 cookie 中的 token 即可。

4️⃣ 应用向统一认证平台交换 Token(可选)

在上一步平台已将token写入根域名的cookie中了,这里也可以省去。
应用后端使用授权码向青萍 /token 接口请求 Token:
返回示例:

5️⃣ 验证 token

可从cookie中读取id_token,ID Token 是 JWT,需要验证:
  • 签名是否正确(使用JWKS接口:https://auth.lusyoe.com/keys
  • iss 是否为 https://auth.lusyoe.com
  • aud 是否包含 Client ID
  • exp 是否过期
示例(Python):

6️⃣ 建立应用会话(可选)

验证 ID Token 成功后:
  • 建立本地 session 或 JWT
  • 将用户信息(email、username 等)存储到数据库/缓存
  • 前端显示登录状态
也可以直接使用平台的 cookie token,不建立自己的会话和用户管理。

7️⃣ 获取用户信息

默认 token 中仅包含基础信息,若想获取更完整的用户信息可调用平台的/userinfo接口。
需要携带上 cookie 中的 access_token:
应用可以使用这些信息建立用户会话、设置权限和显示用户资料。

8️⃣ 统一退出处理

当应用想要退出登录时,如果有建立自己的会话可先清理自己的会话,然后重定向至统一认证平台的退出登录页面,进行统一退出处理,地址如下:
参数说明:
  • client_id: 应用 ID
  • post_logout_redirect_uri: 退出登录后跳转的页面,需在平台注册,与上面的redirect_uri 一致。
  • id_token_hint: 用于校验 token 是否合法,需携带 cookie 中的 id_token。

✅ 总结

通过本文的步骤,应用成功接入了青萍统一认证平台,实现了标准化的 OIDC 认证流程。
整个接入过程包括:
  1. 注册应用:在申请审核通过后,平台提供 Client ID 和 Client Secret。
  1. 发起登录请求:用户访问应用时重定向至青萍认证端点进行登录。
  1. 授权码回调:用户完成认证后,应用接收授权码。
  1. 交换 Token(可选):应用后端通过授权码获取 ID Token、Access Token 和可选 Refresh Token。
  1. 验证 ID Token:确保 Token 来源可信、未过期,并包含正确的受众信息。
  1. 获取用户信息:通过 /userinfo 接口获取详细用户数据,用于会话和权限管理。
  1. 会话管理(可选):建立本地会话或 JWT,实现应用登录状态。
  1. 可选操作:包括刷新 Token 与单点登出,支持长期登录和安全退出。
通过接入青萍统一认证平台,应用能够实现:
  • 统一身份认证:多个应用共享同一套用户管理体系
  • 单点登录(SSO):用户只需一次登录即可访问所有接入应用
  • 安全与审计:统一管理 Token、权限和访问日志
  • 用户体验优化:减少多账号密码的负担
总体而言,接入青萍统一认证平台不仅简化了应用的认证流程,还提升了系统安全性和用户体验,是企业多应用场景下的最佳实践。
💡
有关文章的任何疑问,欢迎您在底部评论区留言,一起交流~
若文章对您有帮助,欢迎 请我喝杯咖啡~
 
上一篇
Nginx+ACME服务器搭建
下一篇
关于青萍创作者平台介绍

评论
Loading...