nCalendar 单点登录之 Dex 入门篇

nCalendar 单点登录之 Dex 入门篇
青萍叙事✨ 背景:nCalendar 迈向统一账户体系的第一步
根据 nCalendar 的产品规划,未来将支持 Notion 官方公共集成,从而替代手动复制 Token 的连接方式。
这意味着我们必须接入 OAuth 授权机制,才能与 Notion 等平台安全且规范地对接。
与此同时,nCalendar 也在持续扩展其他平台支持(如飞书、企业微信、GitHub 登录等),并计划为用户提供:
- ✅ 更安全的身份验证方式(OAuth、扫码、免密登录)
- ✅ 在不同服务中统一身份与权限管理
- ✅ 便捷的跨设备登录体验
要实现这一切,我们亟需一个统一的身份认证网关。这正是 Dex 所能提供的核心价值。
🧠 什么是 Dex?
Dex 是一个开源的身份提供者(Identity Provider, IdP),基于 OpenID Connect(OIDC) 标准协议构建。
它的本质是一个“认证桥接器”,能够将各种下游身份系统(GitHub、Google、LDAP、SAML 等)统一封装成标准的 OIDC 接口,供前端或其他系统调用。
通过引入 Dex,nCalendar 不需要重复实现每一种第三方登录逻辑,而只需对接一次 OIDC 接口即可获得完整的认证能力。
🔄 Dex 的核心原理:认证聚合器
Dex 扮演的是“身份聚合器”的角色:
- 用户点击“使用 XXX 登录”
- nCalendar 重定向用户至 Dex 的认证入口
- Dex 根据配置,将请求转发至目标身份源(如 GitHub)
- 身份源完成认证后返回授权信息给 Dex
- Dex 封装标准 OIDC Token,并返回给 nCalendar
- nCalendar 使用 Token 获取用户信息,完成登录流程
✅ 整个过程安全、标准、可扩展,完全遵循 OAuth2 + OIDC 规范。
🧩 Dex 支持哪些身份源(Connectors)?
Dex 拥有丰富的身份源适配能力,你可以通过配置启用以下认证方式:
| 类型 | 示例 | 用途 |
|---|---|---|
| OAuth2 / OIDC | GitHub、Google、GitLab | 常见的“第三方登录”方式 |
| LDAP | 企业 AD / OpenLDAP | 企业内部员工账号系统 |
| SAML | Azure AD、Okta | 政府/大企业的 SSO 解决方案 |
| 静态账户 | 本地用户名密码 | 用于测试或演示环境 |
| 微信/飞书扫码(拓展) | 搭配外部桥接服务使用 | 面向国内用户的便捷登录体验 |
这些连接器可以并存,Dex 会在登录页展示身份源选项,用户可自由选择。
PS:默认页面比较丑,最好是自己定制一套。
🔌 Dex 与 nCalendar 的关系图
- nCalendar 前端 只需要知道如何与 Dex 对话(OIDC);
- Dex 负责处理用户实际的认证行为;
- 用户 无需理解技术细节,只需“输入用户名密码”即可登录,少去授权的一步。
🧱 为什么我们选择 Dex?
| 特性 | 说明 |
|---|---|
| ✅ 标准协议 | 支持 OAuth2 / OpenID Connect,无需自建协议 |
| ✅ 多源接入 | 同时支持 GitHub、LDAP、微信、企业认证等 |
| ✅ 无锁定 | 开源、轻量、可自托管,无需依赖商业服务(相比keycloak轻量太多了) |
| ✅ 易集成 | 可容器化部署,前端通过 OIDC 即可接入 |
| ✅ 可扩展 | 未来可增加短信登录、扫码、二次验证等能力 |
🚀 面向未来的统一认证平台
使用 Dex 作为中间层,nCalendar 将拥有强大的认证体系基础,可快速实现:
- ✅ Notion 官方集成所需的 OAuth 登录授权
- ✅ GitHub 登录支持(面向开发者)
- ✅ 飞书、企业微信扫码登录(面向企业团队)
- ✅ 多端统一账号体系(Web、桌面、移动端)
最终目标是打造一个真正自动化、安全、无感登录的体验,无论用户从哪个入口接入,都能实现同一身份通行、一处登录、全域可用。
✅ 总结
Dex 是构建统一认证体系的重要基石,适用于所有希望实现 OAuth 登录、SSO 通行证、LDAP 集成的现代应用。在 nCalendar 中,它帮助我们以最低的开发成本、最高的灵活性实现多平台、跨服务的身份认证。
















