用统一身份认证中心集中签发Token,把多个域名注册为同一应用的合法回调地址,再通过网关或中间件统一校验权限;跨域登录态优先用Token或BFF换发,不要盲目共享Cookie。
很多团队一上来就在授权服务器里加一堆域名,结果发现登录态还是串的,问题常常不在授权,而在会话共享策略和权限边界没设计清楚,多域名统一登录不是把域名“堆”在一起,而是把身份和权限从各业务系统中抽离出来,形成一条可验证的链路。
网页授权多个域名怎么实现统一登录?先看清授权模型
网页授权多个域名,本质上要解决两件事:授权服务器认不认这些回调地址,以及登录成功后浏览器怎么带着身份访问不同域名。
OAuth 2.0授权码模式如何支持多域名回调
OAuth 2.0授权码模式适合网页授权场景,用户在各域名跳转到统一认证中心登录,认证中心带授权码回调到目标域名,目标域名的后端再用授权码换Token,多域名支持的关键是回调地址白名单和state参数校验。
- 在授权服务器中为同一个
client_id配置多个redirect_uri,例如https://a.example.com/callback、https://b.example.com/callback、https://shop.example.com/callback。 - 回调地址采用精确匹配,不要随意放开通配符;确需子域通配时,限制层级并校验
state与code_challenge。 - 授权端点参数至少包含:
client_id、redirect_uri、response_type=code、scope=openid profile、state、code_challenge、code_challenge_method=S256。 - 后端换Token时再次校验
redirect_uri与授权码绑定关系,防止授权码被换到其他域名。
统一身份认证中心(IdP)的关键配置项
统一认证中心可以是自建的OIDC服务,也可以是SaaS身份平台,配置时别只看域名列表,还要看应用表、会话表和权限表怎么落。
- 应用表
app保存client_id、client_secret、回调域名列表、允许的scope。 - 会话表记录登录用户、签发时间、过期时间、登录域名、设备标识。
- 权限表保存资源域、权限点、角色关联,权限点建议用
domain:module:action命名,例如shop:order:read。 - 审计日志至少记录登录域名、IP、User-Agent、授权结果,方便排查“同一个用户在A域名能进,B域名进不去”的问题。
多域名单点登录权限管理方案对比:Cookie共享与Token校验
多域名单点登录常见的两条路是Cookie共享和Token校验,选型时别只看登录体验,还要看域名结构、安全要求和老系统改造成本。
跨域Cookie的SameSite与Secure设置
同主域下的子域,例如a.example.com和b.example.com,可以通过设置Domain=.example.com共享Cookie,但要注意SameSite策略。
- 跨站请求场景下,Cookie需要
SameSite=None; Secure,并且必须走HTTPS。 - Nginx可在响应头中增加:
add_header Set-Cookie "SameSite=None; Secure";,但仅建议在必须跨站Cookie时使用。 - 多个顶级域名之间,例如
example.com和example.net,浏览器不允许共享Cookie,别在这条路上硬扛。 - 登录态Cookie建议设置
HttpOnly、Secure、合理Path,不要把Token直接暴露给前端脚本。
Token集中校验与网关鉴权的落地路径
跨顶级域名或安全要求较高的场景,优先用Token方案,用户在某域名登录后,认证中心签发短期Token,各域名后端通过网关或中间件校验。
- 前端跳转统一认证中心,登录成功后回调到目标域名,后端用授权码换Token。
- 目标域名后端可建立本地会话,也可使用BFF模式把Token保存在服务端,浏览器只持有本地会话Cookie。
- 网关解析JWT中的
scope、permissions、tenant等声明,再按请求Host匹配资源域权限。 - 权限校验失败返回403,并记录审计日志;Token过期时通过刷新令牌或重新授权处理。
自建与SaaS方案对比
| 对比项 | 自建统一认证 | SaaS统一认证 |
|---|---|---|
| 部署周期 | 较长,需部署认证服务、网关、数据库 | 较短,按套餐开通 |
| 多域名回调配置 | 灵活,可自定义校验逻辑 | 受平台配置项限制 |
| 权限模型定制 | 灵活,可做RBAC/ABAC | 通常以RBAC为主 |
| 跨域会话方案 | 可自选Cookie、Token、BFF | 多采用标准OIDC流程 |
| 运维成本 | 较高,需专人维护 | 较低,由服务商维护 |
| 数据合规 | 数据落在自有环境 | 需确认服务商合规资质 |
中小企业多域名统一登录怎么做?三步落地
中小企业资源有限,不建议一上来就做复杂权限中台,先把登录链路跑通,再补权限和审计,落地会更稳。
第一步:梳理域名与业务系统清单
- 列出所有需要登录的域名,标注主域、子域、顶级域关系。
- 标注每个系统的技术栈、是否有独立用户表、是否支持标准协议。
- 区分“必须统一登录”和“可先代理接入”的系统,避免一次性改造过大。
第二步:部署统一认证服务并注册回调域名
- 部署OIDC或CAS认证服务,配置HTTPS证书。
- 为每个业务系统创建应用,登记
client_id和回调地址白名单。 - 老系统不支持OIDC时,可用反向代理注入用户标识,先实现“统一登录入口”,再逐步替换登录模块。
- 在Nginx或网关层统一设置安全响应头,并记录登录跳转日志。
第三步:权限模型与审计日志同步
- 统一用户中心维护用户、组织、角色;业务系统只保留资源权限。
- 权限点按
资源域:模块:操作命名,角色可跨域共享,敏感权限按域单独授权。 - 登录、授权、拒绝访问三类日志统一采集,至少保留可追溯周期。
- 定期核对应用回调域名列表,删除不再使用的域名,降低开放重定向风险。
网页授权多域名统一登录需要多少钱?成本构成拆解
价格没有统一答案,主要看账号数、域名数量、权限模型复杂度和是否需要私有化部署,SaaS按年订阅,自建则前期投入和运维人力更高。
自建与SaaS服务的成本差异
- 自建成本包括:认证服务器、网关、数据库、Redis、证书、运维人力、安全加固。
- SaaS成本包括:订阅费、账号数扩容、应用数扩容、定制权限模型费用。
- 多域名回调配置通常不单独收费,但跨域会话方案、老系统代理接入可能产生实施费用。
- 业内专家指出,跨域登录态共享要优先评估Token方案,Cookie共享只适合同主域或可控子域场景。
隐性成本:运维、合规与改造
- 认证服务是入口系统,可用性要求高,需要监控、告警、备份和演练。
- 等保或行业合规要求下,日志留存、加密传输、权限审计都会增加实施工作量。
- 老系统改造范围取决于是否支持标准协议;不支持时,代理层注入用户标识是常见过渡方案。
北京网页授权多域名统一登录服务商怎么选?看这四点
地域服务商的价值主要在响应速度和本地合规沟通,不在“能不能配域名”这种基础项,选型时重点看实施经验和交付边界。
资质与案例
- 看是否有身份认证、权限管理相关项目经验,能否说明多域名回调、跨域会话的具体做法。
- 要求提供脱敏后的架构说明,而不是只给产品截图。
- 确认是否支持OIDC、OAuth 2.0、CAS等标准协议。
本地化支持与数据合规
- 确认数据部署位置、日志留存策略、是否支持私有化。
- 确认实施团队是否在北京本地,故障响应和变更支持是否可约定。
- 行业共识认为,统一认证项目要先定身份源和权限边界,再谈域名接入,否则后期容易反复改。
网页授权多个域名统一登录与权限管理Q&A
多个顶级域名能否共用一个登录态?
可以共用登录态,但不要依赖跨顶级域Cookie,推荐统一认证中心加BFF模式,回调到各域名后由服务端换发本地会话;也可以使用Token加网关校验,跨顶级域Cookie本身不被浏览器允许共享,所以共用登录态要靠服务端换发。
权限管理如何按域名隔离?
把域名作为资源域,权限点带域名前缀,网关按请求Host和JWT声明校验,共享角色可以跨域复用,敏感权限按域单独授权,权限隔离的边界应落在资源域,而不是用户账号。
网页授权多域名统一登录是否必须改造老系统?
不一定全量改造,老系统可先通过反向代理注入用户标识接入统一认证,再逐步替换登录模块,改造范围取决于老系统是否支持标准协议;不支持时,代理层注入用户标识是常见过渡方案。