1.3. 支持的协议
Red Hat Single Sign-On 支持 OpenID Connect 和 SAML 协议。
1.3.1. OpenID Connect 复制链接链接已复制到粘贴板!
OpenID Connect (OIDC)是一个身份验证协议,它是 OAuth 2.0 的扩展。虽然 OAuth 2.0 只是用于构建授权协议的框架,但主要不完整,但 OIDC 是一个功能齐全的身份验证和授权协议。OIDC 还使用 Json Web Token (JWT)标准集合。这些标准定义了身份令牌 JSON 格式,以及以紧凑和 Web 友好的方式对这些数据进行数字签名。
使用 OIDC 时,实际上有两种用例。第一个应用程序要求红帽单点登录服务器为其验证用户。成功登录后,应用将收到一个身份令牌和一个访问令牌。身份令牌 包含有关用户的信息,如用户名、电子邮件和其他配置集信息。访问令牌 由域数字签名,包含应用可使用的访问信息(如 user 角色映射),供应用程序用来决定用户被允许访问哪些资源。
第二种用例类型是希望获得远程服务访问权限的客户端。在这种情况下,客户端会要求红帽单点登录获取一个 访问令牌,供该用户用于对其他远程服务调用。Red Hat Single Sign-On 验证用户,然后要求用户同意授予请求它的客户端的访问权限。然后,客户端接收 访问令牌。此 访问令牌 由域数字签名。客户端可以使用此 访问令牌 在远程服务上发出 REST 调用。REST 服务提取 访问令牌,验证令牌的签名,然后根据令牌中的访问信息决定是否处理请求。
1.3.2. SAML 2.0 复制链接链接已复制到粘贴板!
SAML 2.0 是与 OIDC 类似的规范,但有一个较老且更成熟的。它在 SOAP 中有根根和 WS-* 规格的 plethora,因此它往往会比 OIDC 更详细。SAML 2.0 主要是一种身份验证协议,可以在身份验证服务器和应用之间交换 XML 文档。XML 签名和加密用于验证请求和响应。
在红帽单点登录 SAML 中,提供两种用例:浏览器应用和 REST 调用。
使用 SAML 时,实际上有两种用例。第一个应用程序要求红帽单点登录服务器为其验证用户。成功登录后,应用将收到一个 XML 文档,其中包含一个名为 SAML 断言的内容,用于指定用户的各种属性。该 XML 文档由域数进行数字签名,包含应用可用于决定用户允许对应用程序访问哪些资源(如 user 角色映射)。
第二种用例类型是希望获得远程服务访问权限的客户端。在这种情况下,客户端要求红帽单点登录获得 SAML 断言,以便其用于代表用户调用其他远程服务。
1.3.3. OpenID Connect 与.SAML 复制链接链接已复制到粘贴板!
在 OpenID Connect 和 SAML 间进行选择不只是使用较新的协议(OIDC)而不是旧的更成熟的协议(SAML)。
在大多数情况下,Red Hat Single Sign-On 建议使用 OIDC。
SAML 往往会比 OIDC 更详细。
除交换数据外,如果您比较的是,您会看到 OIDC 的设计旨在与 web 合作,而 SAML 被重新引入到 web 之上工作。例如,OIDC 更加适合 HTML5/JavaScript 应用程序,因为它比 SAML 更容易在客户端实现。由于令牌采用 JSON 格式,因此它们更容易被 JavaScript 使用。您还会发现一些在 Web 应用程序中实施安全性的附加功能。例如,请查看 iframe 技巧,说明规格用来轻松确定用户是否仍登录或未登录。
SAML 对其使用。当您看到 OIDC 规格的演变时,您会看到它们实现 SAML 多年的功能及更多功能。我们通常看到的是,用户选择 SAML 通过 OIDC,因为它比较成熟,同时还具有保护的现有应用程序。