SPNEGO 单点登录
您可以安全地协商和验证对安全资源的 HTTP 请求WebSphere® Application Server使用简单且受保护的 GSS-API 协商机制 (SPNEGO) 作为 Web 身份验证服务WebSphere Application Server。
- 您可以配置并启用 SPNEGO Web 身份验证和过滤器WebSphere Application Server通过使用管理控制台。
- 提供 SPNEGO 的动态重新加载,无需停止并重新启动WebSphere Application Server。
- 如果 SPNEGO Web 认证失败,那么将回退至应用程序登录方法。
- SPNEGO 可以在WebSphere安全域级别。 阅读多个安全域了解更多信息。
可以启用 SPNEGO TAI 或 SPNEGO Web 认证,但不能同时启用这两项。
下列各节更详细地描述了 SPNEGO Web 认证:
什么是 SPNEGO?
SPNEGO 是简单且受保护的 GSS-API 协商机制 (IETF RFC 2478) 。
什么时候WebSphere Application Server启用全局和应用程序安全性,并启用 SPNEGO Web 身份验证,在处理第一个入站 HTTP 请求时初始化 SPNEGO。 然后,Web 认证器组件会与 SPNEGO 交互,SPNEGO 是在安全性配置库中定义并启用的。 当过滤条件得到满足时,SPNEGO 会负责认证对 HTTP 请求中标识的受保护资源的访问权。
Microsoft Windows服务器Active Directory域和相关Kerberos密钥分发中心 (KDC)。 有关支持的信息Microsoft Windows服务器,请参阅系统要求WebSphere Application Server版本8.5在 Windows 上。
- 客户端应用程序(例如 Microsoft .NET 或 Web 服务和J2EE支持 SPNEGO Web 身份验证机制的客户端,如 IETF RFC 2478 中所定义。 MozillaFirefox是一个浏览器示例。 任何浏览器都必须配置为使用 SPNEGO Web 认证机制。 有关执行此配置的更多信息,请参阅配置客户端浏览器以使用 SPNEGO 。
会由请求者(客户机端)触发 HTTP 请求的认证,这将生成 SPNEGO 令牌。 WebSphere Application Server接收此令牌。 具体来说,SPNEGO Web 认证会从 SPNEGO 令牌中解码并检索请求者的标识。 该标识用来在请求者与应用程序服务器之间建立安全上下文。
SPNEGO Web 身份验证是WebSphere Application Server。 客户端应用程序负责生成 SPNEGO 令牌供 SPNEGO Web 认证使用。 请求者的身份WebSphere Application Server安全注册表必须与 SPNEGO Web 身份验证检索到的身份相同。 当发生以下情况时,确实会发生完全匹配Microsoft WindowsActive Directory服务器是轻量级目录访问协议 (LDAP) 服务器,用于WebSphere Application Server。 自定义登录模块可作为插件使用,以支持从Active Directory到WebSphere Application Server安全注册表。
阅读客户端映射Kerberos校长姓名WebSphere用户注册ID有关使用此自定义登录模块的更多信息。
WebSphere Application Server根据其安全注册表验证身份。 如果验证成功,那么会检索客户机 Kerberos 凭单和 GSS 委派凭证并将其放置到客户机主体集中,然后会生成轻量级第三方认证 (LTPA) 安全性令牌。 然后,它将一个 cookie 放入 HTTP 响应中并返回给请求者。 来自同一请求者的后续 HTTP 请求用于访问其他受保护资源WebSphere Application Server使用先前创建的 LTPA 安全令牌来避免重复的登录挑战。
在下图中,Web 管理员可以访问 SPNEGO 安全组件和相关配置数据:Web 身份验证模块、SPNEGO 信任关联拦截器、JGSS 和 SPNEGO 安全提供程序,Kerberos配置和Kerberoskeytab 文件、SPNEGO TAI 配置属性和 JVM 系统属性。

进行 SPNEGO Web 认证的好处
拥有的好处WebSphere Application Server使用 SPNEGO 作为 Web 身份验证服务WebSphere Application Server包括以下这些:
集成的单点登录环境Microsoft Windows服务器使用Active Directory域已建立。
- 会降低管理大量标识和密码的成本。
- 建立了来自 Web 浏览器或 Microsoft .NET 客户端的安全凭证的安全且相互认证的传输。
- 实现了与 Web 服务和 Microsoft .NET 或在传输级别使用 SPNEGO 身份验证的 Web 服务应用程序的互操作性。
- 借助 Kerberos 认证支持,SPNEGO Web 认证可为 Kerberos 解决方案提供端到端 SPNEGO 并且保存来自客户机的 Kerberos 凭证。
单个 Kerberos 域中的 SPNEGO Web 认证
SPNEGO Web 认证在单个 Kerberos 领域中受支持。 下图中显示了提问应答握手过程:

在上图中,发生了下列事件:
- 客户端发送 HTTP/Post/Get/Web-Service 请求到WebSphere Application Server。
- WebSphere Application Server返回HTTP 401验证/协商。
- 客户机获取凭单授予凭单 (TGT)。
- 客户机请求服务凭单 (TGS_REQ)。
- 客户机获取服务凭单 (TGS_REP)。
- 客户端发送 HTTP/Post/Get/Web-Service 和授权 SPNEGO 令牌至WebSphere Application Server。
- WebSphere Application Server验证 SPNEGO 令牌。 如果验证成功,那么它会从
SPNEGO 令牌检索用户标识和 GSS 委派凭证。 A
KRBAuthnToken
和客户Kerberos凭证已创建。 - WebSphere Application Server使用以下方式验证用户 ID: WebSphere用户注册并创建 LTPA 令牌。
- WebSphere Application Server返回HTTP 200 、内容以及 LTPA 令牌发送给客户端。
可信 Kerberos 域中的 SPNEGO Web 认证
SPNEGO Web 认证在可信 Kerberos 领域中也受支持。 下图中显示了提问应答握手过程:

在上图中,发生了下列事件:
- 客户端发送 HTTP/Post/Get/Web-Service 请求到WebSphere Application Server。
- WebSphere Application Server返回HTTP 401认证/协商
- 客户机获取凭单授予凭单 (TGT)。
- 客户机从 REALM1 KDC 中为 REALM2 请求跨领域凭单 (TGS_REQ)。
- 客户机使用来自步骤 4 的跨领域凭单以从 REALM2 KDC 请求服务凭单。
- 客户端发送 HTTP/Post/Get/Web-Service 和授权 SPNEGO 令牌至WebSphere Application Server。
- WebSphere Application Server验证 SPNEGO 令牌。 如果验证成功,那么它会从
SPNEGO 令牌检索用户标识和 GSS 委派凭证。 A
KRBAuthnToken
和客户Kerberos凭证已创建。 - WebSphere Application Server使用以下方式验证用户 ID: WebSphere用户注册并创建 LTPA 令牌。
- WebSphere Application Server返回HTTP 200 、内容以及 LTPA 令牌发送给客户端。
在可信 Kerberos 领域环境中,请注意下列事项:
- Kerberos 可信领域设置必须在每个 Kerberos KDC 上完成。 请参阅 Kerberos Administrator and User's Guide,以获取有关如何设置 Kerberos 可信域的更多信息。
- 这KerberosSPNEGO 令牌中的客户端主体名称可能不存在WebSphere用户注册表;Kerberos主要映射到WebSphere用户注册表可能需要它。
阅读客户端映射Kerberos校长姓名WebSphere用户注册ID了解更多信息。
使用 HTTP 协议通过 Java™ 客户端进行 SPNEGO Web 身份验证的支持信息
- 同一林中的域信任
- 不同林中的域之间直接实现外部域信任。
- Kerberos 域信任
- 跨林信任
- 林外部信任
有关向浏览器客户端进行 SPNEGO Web 认证的支持信息
- 跨林信任
- 同一林中的域信任
- Kerberos 域信任
- 林外部信任
- 域外部信任