SAML2 接入

Passport 内置 SAML2 Identity Provider(IdP),企业内部系统(支持 SAML2 Web SSO 的产品,如各类 IAM / 应用网关)可以把 VanCone Passport 作为统一身份源完成单点登录。OAuth2.0 / OIDC 接入见「OAuth2.0 / OIDC 接入」。

前置条件:注册服务提供方(SP)

在 VanCone 管理控制台 「SAML 服务提供方」 页面注册 SP:

字段说明
Entity IDSP 的实体标识,通常是其元数据地址(必须全局唯一)
ACS URL断言消费服务地址(Assertion Consumer Service),Passport 以 HTTP-POST binding 回送断言
SLO URL可选,单点注销地址(当前版本未实现 SLO,字段预留)
NameID Format缺省 emailAddress(用户邮箱),可选 persistent(用户 ID)或 unspecified
状态ENABLED 的 SP 才能发起登录

Passport IdP 的签名密钥对(RSA-2048 + 自签名 X.509 证书)在首次启动时自动生成并长期保持不变,方便 SP 固化证书指纹。

IdP 元数据

SP 侧导入以下元数据即可完成信任配置:

https://vancone.com/saml2/metadata

关键信息:

  • EntityID:https://vancone.com/saml2/metadata
  • SSO 端点:https://vancone.com/saml2/sso(Redirect / POST binding 均可接收 AuthnRequest)
  • 签名算法:RSA-SHA256,断言与响应均签名
  • NameID Formats:emailAddress / persistent / unspecified

登录流程(SP 发起)

浏览器                     SP(接入方)                    Passport IdP
   │ 1. 访问 SP,未登录        │                              │
   │─────────────────────────>│                              │
   │ 2. 302 SSO 端点            │   3. 校验 SP 已注册            │
   │<──────────────────────────│   (未登录→登录页,登录后继续)   │
   │─────────────────────────────────────────────────────────>│
   │                          │   4. 签名断言/响应(POST binding)│
   │<─────────────────────────────────────────────────────────│
   │ 5. 浏览器自动 POST 到 ACS  │                              │
   │─────────────────────────>│ 6. 验签、建立 SP 会话           │

注意事项:

  • SP 必须先注册(EntityID 精确匹配),未注册的 SP 请求返回 404;
  • 用户未登录 Passport 时会被带到 Passport 登录页,登录成功后自动继续 SSO 流程;
  • AuthnRequest 支持 Redirect 与 POST 两种接收 binding。

断言内容

项值
NameID按 SP 注册的 NameID Format:emailAddress → 用户邮箱;persistent/缺省其它 → 用户 ID
Attributesuid(用户 ID)、name(姓名)、email(邮箱)、tenantId(租户 ID)
签名断言与 Response 均以 IdP 证书做 RSA-SHA256 签名

SP 侧验签时应固化 IdP 证书(来自元数据),并校验断言有效期与 Audience(即 SP 的 EntityID)。

安全要求

  • SP 的 ACS URL 必须使用 HTTPS;
  • 注册 Entity ID 时请确认来源(建议直接使用 SP 元数据地址),防止误注册第三方;
  • 建议在 SP 侧启用断言时效与重放校验(crewjam/saml、OneLogin 等 SDK 默认开启)。