yii2单点登录插件
2026-03-03
下面按“你到底要接哪种 SSO 协议”来给你选 Yii2 的单点登录插件/方案(以及什么时候别纠结插件,直接上统一身份平台)。
1)最推荐:OAuth2 / OpenID Connect(现代主流 SSO)
适用场景
你要对接:企业微信/钉钉/飞书/Google/Microsoft/自建 Keycloak 等
你希望:网页登录、手机端登录、API 登录都统一
Yii2 侧首选组件
官方扩展:yiisoft/yii2-authclient(支持 OpenID、OAuth、OAuth2、OpenID Connect Consumer) (GitHub)
这是 Yii2 生态里最“正统、最稳”的登录对接方式
典型用法:外部 IdP(身份提供方)登录成功 → 回调到你 Yii2 → 你在本地建立/绑定用户
重要提醒:如果你现在用的是 Yii3/yiisoft 体系,也有对应的 auth-client 包(要求 PHP 8.1+)。(packagist.org)
2)传统校园/政企常见:CAS(集中认证)
适用场景
学校/医院/政务系统经常会给你一个 CAS 地址,让你“接 CAS 单点登录”
Yii2 可用扩展
daxslab/yii2-cas-client(Yii 扩展市场里明确写了:基于 phpCAS 做 CAS 认证)(Yii Framework)
alcad/yii2-cas / alcad/Yii2-CAS(也是 phpCAS 的封装;作者 README 提醒还在早期开发阶段)(packagist.org)
Yii 扩展列表里也能看到 alcad/yii2-cas 的条目。(Yii Framework)
3)企业级对接:SAML 2.0(很多大厂/SSO网关会给 SAML)
现实情况
Yii2 生态里 SAML“开箱即用、广泛维护”的专用扩展不如 OIDC/CAS 常见。
通常做法是:用成熟的 PHP SAML 库(比如 OneLogin 的 toolkit 之类)自行封装到 Yii2 里,或者更推荐——用 Keycloak/MaxKey 这种身份平台把 SAML 转成 OIDC,Yii2 只接 OIDC(省大量坑)。
(你如果确认对方“只给 SAML”,我建议你优先走“身份平台转协议”这条路线。)
4)别只盯“插件”:真正的 SSO 关键在“身份平台”
如果你要的是“多个系统之间统一登录/统一退出/统一权限”,插件只是客户端,核心是 IdP/SSO Server:
Keycloak、MaxKey 这类 IAM/SSO 平台能同时支持 OIDC、SAML、CAS、JWT 等标准协议。(https://cnb.cool)
Yii2 作为业务系统,用
yii2-authclient去接 OIDC,通常是最省心的组合。(GitHub)
5)你应该怎么选(快速决策)
A. 你能决定协议(自建或可选)
直接选 OpenID Connect
Yii2 用 yiisoft/yii2-authclient (GitHub)
B. 对方给你 CAS
选 daxslab/yii2-cas-client 或 alcad/yii2-cas (Yii Framework)
C. 对方只给 SAML
优先:上 Keycloak/MaxKey 做中间层,把 SAML 变 OIDC,再让 Yii2 接 OIDC (https://cnb.cool)
次选:直接 PHP SAML 库 + Yii2 自封装(开发/排错成本更高)
发表评论: