跳到主要内容

单点登录

单点登录如何减少重复认证?​

  • SSO: 用户在受信任身份提供方完成一次登录后,可以访问多个参与应用而不必重复输入凭据;
  • IdP: 身份提供方,负责认证用户并向应用提供可验证的身份信息;
  • SP: 服务提供方,接受信任范围内的身份结果并建立自己的应用会话;
  • 身份代理: 在多个 IdP 与多个应用之间连接信任和协议,降低逐一集成的复杂度;
  • 本地账户: 应用仍可保存业务特有资料与权限,并非所有用户数据都必须集中在 IdP;

浏览器登录一个接入 SSO 的应用会发生什么?​

访问应用 → 应用重定向至 IdP
已有 IdP 会话或完成登录 → 返回认证结果
应用验证结果 → 建立本地会话 → 允许获准访问
  • 重复访问: 另一个应用也可依赖现有 IdP 会话完成认证,但仍需要自己的验证和授权;
  • 信任前提: 应用事先信任特定签发方、受众与回调路径,不能接受任意第三方发来的身份断言;
  • 会话边界: IdP 登录状态与各应用本地会话有各自生命周期,退出行为需明确设计;

SAML 如何传递身份断言?​

  • SAML: 安全断言标记语言,使用 XML 格式在信任方之间传递身份、认证和属性信息;
  • 身份联邦: SP 依据可信 IdP 的断言识别用户,避免独立保存并校验同一套密码;
  • 校验责任: 接收方要验证签名、签发方、受众、时间条件及请求关联,XML 格式本身不保证可信;

SAML、OIDC 与 OAuth 应如何选择?​

机制主要用途典型接口材料
SAML身份联邦与 SSOXML 断言
OIDC身份认证与资料ID Token 与身份端点
OAuth 2.0委托授权授权许可与访问令牌
  • 场景选择: 以已有企业身份生态、客户端形态和产品支持为依据,不把 SAML 简化成“只能短会话”;
  • 相关概念: SSO 是跨应用登录的效果,而非某一种协议;

集中身份有哪些收益和风险?​

  • 收益: 用户少记密码,管理员集中维护账户及安全策略,减少重复账户管理工作;
  • 风险集中: 主要身份账户被盗可能影响多个应用,应加强身份保护并控制授权范围;
  • 可用性: IdP 故障可能阻止新登录,但已有应用会话是否受影响取决于设计,不是每次业务请求都必须访问 IdP;
  • 原文示例: Okta、Google、Auth0、OneLogin,是可评估的身份集成产品而非统一协议;