单点登录

单点登录是一个认证过程,在此过程中用户只需输入一个用户标识和密码即可访问多个应用程序。 您可以配置多个应用程序以使用 Verify 进行用户认证和授权。 用户使用其 Verify 帐户凭证登录到目标应用程序。 使用 Verify进行认证时,用户可以在已认证的会话中访问他们有权使用的任何应用程序。 当会话到期时,用户必须通过 Verify再次登录。

要在 Verify 与任何目标应用程序之间实现单点登录,它们必须交换配置详细信息。 必须在 Verify 中配置应用程序,并在目标应用程序中配置 Verify

认证和授权

认证是指验证用户的身份,证明该用户是自己所声称的身份。 授权是授予用户对资源的访问权,并定义该用户可以对该资源执行的操作。 Verify 支持使用 SAMLOpenID Connect进行认证和授权。
表 1. 比较摘要
SAML 2.0 OpenID Connect
描述

安全性断言标记语言 (SAML) 是提供认证和授权的开放式标准。

此标准提供框架以支持用户身份在服务提供者身份提供者之间的安全通信。

OpenID Connect 是一种开放式标准协议,它结合了 OpenID 认证和 OAuth2.0 授权功能。

此标准提供了框架以支持用户身份在信赖方OpenID Connect 提供者之间的安全通信。

用例

企业应用程序的单点登录

企业应用程序和使用者应用程序的单点登录

受支持的客户机类型
  • 基于 Web
  • 基于 Web
  • 移动或本机
  • JavaScript
数据格式 XML JSON
用户信息或认证在其中发送

SAML 断言

此断言包含以下信息:
  • 主体(请求认证的用户)
  • 属性(有关该人员的信息)
  • 发出者(断言发出者)
  • 有关认证事件的其他信息

JSON Web 令牌 (JWT),称为 标识令牌

此令牌包含以下信息:
  • 主体(请求认证的用户)
  • 发出者(用户声明的发出者)
  • 认证到期时间
  • 属性或用户声明 (有关人员的信息)1
  • 有关认证事件的其他信息
令牌 访问令牌
  • 标识令牌
  • 访问令牌。 访问令牌可以是不透明字符串或采用 JWT 格式。
  • 刷新令牌
注: OAuth/OIDC 令牌长度不固定。 存储访问令牌和刷新令牌时,允许可变长度。 如果需要为存储器设置最大长度,并且不打算将来使用 JWT 格式的访问令牌,请至少允许 1024 个字符的令牌长度。
组件/角色
  • 用户 - 请求访问的人员。
  • 用户代理 - 用户认证所在位置;例如,Web 浏览器。
  • 服务提供者 - 用户正尝试访问的应用程序。
  • 身份提供者 - 认证用户。
  • 用户 - 请求访问的人员。
  • 用户代理 - 用户认证所在位置;例如,Web 浏览器。
  • 信赖方客户机 - 用户正尝试访问的应用程序。
  • OpenID Connect 提供者 - 认证用户和客户机。

基于 SAML 的单点登录

服务提供者可以是需要认证其用户的任何基于 Web 的应用程序。 它是返回的用户身份信息的使用者。

身份提供者用于管理和断言用户身份。

  1. 用户通过用户代理请求访问服务提供者的受保护资源。
  2. 服务提供者通过将用户代理重定向到身份提供者来发送用户认证请求
  3. 身份提供者 将验证用户的身份,并生成用于断言用户身份的 SAML 断言
  4. 身份提供者 将其 SAML 认证响应 中的断言打包到 服务提供者

基于 OpenID Connect 的单点登录

OpenID Connect 依赖方 可以是要求其用户进行认证的任何应用程序。 它是返回的用户身份信息的使用者。

OpenID Connect 提供者通过其授权端点来认证用户,通过其令牌端点来认证客户机。
  1. 用户通过用户代理请求访问信赖方的受保护资源。
  2. 信赖方通过将用户代理重定向到 OpenID Connect 提供者来发送用户认证请求
  3. OpenID Connect 提供者验证用户是否具有有效的会话。 否则,OpenID Connect 提供者会提示用户登录并通过授权端点认证用户。
  4. 根据授权类型,身份提供者授权端点可向包含以下任一项的信赖方发送认证响应:
    • 然后,客户机可以在请求中传递此授权,并使用 依赖方 提供给 令牌端点 的授权代码2 来交换标识令牌,访问令牌或刷新令牌。
    • 标识令牌和访问令牌。

      标识令牌刷新令牌包含用于建立用户会话的用户声明和签名。

    • QR 码、用户代码和 URL。
    • 隐式流。 它执行认证和授权,直接将标识令牌和访问令牌返回到客户机的响应中。
    注: OpenID Connect 提供者 隐式流不支持令牌端点。
1 这些声明是关于用户的声明,如果令牌的使用者可以验证其签名,那么可以信任这些声明。 它们旨在为客户应用程序提供已同意的用户详细信息,如电子邮件和名称。
2 中间凭证,用于对授权进行编码。