Menu Close
Settings Close

Language and Page Formatting Options

第 3 章 红帽 JBoss 企业应用平台 SSO 的其他用例

除了开箱即用功能外,JBoss EAP 还支持 SSO 的其他用例,包括 SAML(适用于浏览器的 SSO)、基于桌面的 SSO 和 SSO(通过安全令牌服务)。

3.1. 使用 SAML 基于浏览器的 SSO

在基于浏览器的 SSO 场景中,一个或多个 Web 应用(称为服务提供商)在中心式架构中连接到集中式身份提供程序。身份提供商(IDP)充当中央来源或 hub,用于所有服务提供商或 spoke 的身份和角色信息。当未经身份验证的用户尝试访问其中一个服务提供商时,该用户会被重定向到 IDP 来执行身份验证。IDP 验证用户,发布 SAML 令牌指定主体的角色,并将它们重定向到请求的服务提供商。从那里,SAML 令牌在所有关联的服务提供商上使用,以确定用户身份和访问权限。这种从服务提供商开始使用 SSO 的具体方法称为服务提供商发起的流。

与许多 SSO 系统一样,JBoss EAP 也使用 IDP 和 SP。这两个组件都启用在 JBoss EAP 实例中运行,并与 JBoss EAP security 子系统配合工作。SAML v2、基于 FORM 的 Web 应用安全性和 HTTP/POST 和 HTTP/Redirect 绑定也用于实施 SSO。

若要创建身份提供程序,可在 JBoss EAP 实例中创建安全域(如 idp-domain ),它定义身份验证和授权机制(如 LDAP 或数据库)以充当身份存储。Web 应用(如 IDP.war )配置为使用额外的模块( org.picketlink )以结合使用 IDP 和 idp-domain 并部署到相同的 JBoss EAP 实例。IDP.war 将充当身份提供程序。要创建服务提供商,将创建一个使用 SAML2LoginModule 作为身份验证机制的安全域,如 sp-domain。Web 应用(如 SP.war )配置为使用其他模块( org.picketlink ),并且包含使用 sp-domain 的服务提供商 valve。SP.war 已部署到配置了 sp-domain 的 JBoss EAP 实例,并且现在是服务供应商。此过程可以复制到一个或多个 SP,如 SP2.warSP3.war 等,也可在一个或多个 JBoss EAP 实例之间复制。

3.1.1. 身份提供商启动流

在大多数 SSO 场景中,SP 通过向 IDP 发送身份验证请求来启动流,后者将 SAML 响应发送到具有有效断言的 SP。这称为 SP 启动流。SAML 2.0 规范定义了另一个流,称为 IDP 启动或非请求的 Response 流。在这种情况下,服务提供商不会启动身份验证流来接收来自 IDP 的 SAML 响应。流程从 IDP 方面开始。旦通过身份验证,用户可以从列表中选择特定的 SP,并重定向到 SP 的 URL。不需要特殊配置来启用此流。

演练

  1. 用户 访问 IDP.
  2. IDP 认为没有 SAML 请求或响应,假设使用 SAML 的 IDP 启动流场景。
  3. IDP 要求用户进行身份验证。
  4. 身份验证后,IDP 会显示托管部分,用户通过此部分获得链接到所有 SP 应用程序的页面。
  5. 用户选择一个 SP 应用程序。
  6. IDP 在查询参数 SAML 响应中,使用 SAML 断言将用户重定向到 SP。
  7. SP 检查 SAML 断言并提供访问权限。

3.1.2. 全局注销

在一个 SP 中启动的全局注销会从 IDP 和所有 SP 注销用户。如果用户在执行全局注销后试图访问任何 SP 或 IDP 的安全部分,则必须重新进行身份验证。