使用管理控制台来启用和配置 SPNEGO Web 认证
可使用管理控制台来启用“简单且受保护的 GSS-API 协商”(SPNEGO),并将其配置成应用程序服务器的 Web 认证器。
开始之前
注: 在使用管理控制台来启用 SPNEGO Web 认证前,必须已完成如使用 SPNEGO Web 认证创建 HTTP 请求的单点登录中所述的步骤。
对于任何处理 HTTP 请求的 WebSphere Application Server,您都必须具有 Kerberos 密钥表文件 (krb5.keytab),其中包含 Kerberos 服务主体名称 HTTP/<fully qualified hostname>@KerberosReam。
过程
- 在管理控制台中,请单击安全性 > 全局安全性。
- 在“认证”下,展开“Web 和 SIP 安全性”,然后单击 SPNEGO Web 认证。 注: 在启用 SPNEGO Web 认证前,必须配置过滤器。
- 可选: 如果要在 SPNEGO 发生更改时动态更新 SPNEGO 运行时,而不重新启动应用程序服务器,请选择动态更新 SPNEGO 选项。
- 选择启用 SPNEGO,以启用“简单且受保护的 GSS-API 协商机制” (SPNEGO) 作为 WebSphere Application Server 的 Web 认证器。 除非您选择启用 SPNEGO,否则,动态更新 SPNEGO 和允许回退到应用程序认证机制选项都处于已禁用状态。
- 可选: 如果选择允许回退到应用程序认证机制,那么当 SPNEGO 认证失败时,将使用应用程序组装时定义的认证机制。
- 输入具有完整路径的 Kerberos 配置文件名,或单击浏览以找到该配置文件。 Kerberos 客户机配置文件 krb5.conf 或 krb5.ini 包含 Kerberos 配置信息,其中包括感兴趣领域的密钥分发中心 (KDC) 的位置。krb5.conf 文件是除 Windows 操作系统之外的所有其他平台使用的缺省名称,而 Windows 操作系统将使用 krb5.ini 文件。
- 可选: 输入具有完整路径的 Kerberos 密钥表文件名,或单击浏览以找到该密钥表文件。 Kerberos 密钥表文件包含一个或多个 Kerberos 服务主体名称和密钥。缺省密钥表文件是 krb5.keytab。主机通过将其 Kerberos 密钥表文件存储在本地磁盘上来保护这些文件很重要,这使这些文件只能被授权用户读取。有关更多信息,请参阅创建 Kerberos 服务主体名称和密钥表文件。如果您未指定此参数,那么将使用 Kerberos 配置文件中的缺省 Kerberos 域名。
- 从 SPNEGO 过滤器中,选择现有主机名进行编辑,或选择新建以创建新的主机名。 按照惯例,Kerberos 服务主体名称 (SPN) 分成以下三部分:主体、实例和 Kerberos 域名。SPNEGO 服务名称必须是 HTTP,因此 SPNEGO Web 的 Kerberos 服务主体名称是 HTTP/<fully qualified host name>@KERBEROS_REALM。SPN 用于验证入局 SPNEGO 令牌,及建立用于请求者的安全上下文。
- 必需: 在下一页的主机名字段中,输入标准主机名称。该主机名是 SPNEGO 用来创建 Kerberos 安全上下文的 Kerberos 服务主体名称 (SPN) HTTP/<fully qualified host name> 的一部分。 对于每个过滤器条目,配置代码会将 Kerberos 服务主体构造成 HTTP/<fully qualified host name>@KERBEROS_REALM(必须在下一步中指定的 Kerberos 领域)。Kerberos 密钥表必须包含此 Kerberos 服务主体及其密钥。
- 可选: 在 Kerberos 域名字段中,输入 Kerberos 域名。 大多数情况下,您的领域是用大写字母表示的域名。例如,如果一台机器具有域名 test.austin.ibm.com,那么它的 Kerberos 域名通常为 AUSTIN.IBM.COM。如果您未指定此参数,那么将使用 Kerberos 配置文件中的缺省 Kerberos 域名。
- 在过滤条件字段中输入过滤条件。 过滤条件是 SPNEGO 使用的 Java™ 类所使用的过滤参数。它将定义对所用的实现类有意义的任意条件。
com.ibm.ws.security.spnego.HTTPHeaderFilter 缺省实现类使用此属性来定义选择规则列表,这些规则表示要与 HTTP 请求头相匹配的条件,以确定是否选择该 HTTP 请求以进行 SPNEGO 认证。
每个条件是使用“键/值”对指定的,并且用分号隔开。当这些条件显示在指定属性中时,按从左至右的顺序对他们进行求值。如果满足所有条件,那么会选择该 HTTP 请求以进行 SPNEGO 认证。
“键/值”对中的键和值用某一定义选择哪个条件的运算符隔开。该键标识要从 HTTP 请求中抽取的请求头,并且会根据指定的运算符将其值与“键/值”对中指定的值进行比较。如果该键标识的头未出现在 HTTP 请求中,那么会认为不满足该条件。
任何标准 HTTP 请求头都会被用作“键/值”对中的键。有关有效头的列表,请参阅 HTTP 规范。此外,将定义两个键以从请求中抽取信息,这与选择标准一样有用,而选择标准是无法通过标准 HTTP 请求头获取的。远程地址键将用作伪头,以检索发送了 HTTP 请求的客户机应用程序的远程 TCP/IP 地址。请求 URL 键将用作伪头,以检索客户机应用程序用于发出请求的 URL。拦截器使用 javax.servlet.http.HttpServletRequest 接口中的 getRequestURL 运算结果来构造 Web 地址。如果存在查询字符串,那么还将使用同一接口中的 getQueryString 运算的结果。在此情况下,完整 URL 的构造如下所示:String url = request.getRequestURL() + ‘?' + request.getQueryString();
表 1. 过滤条件和运算. 此表描述过滤器条件和操作。
条件 操作员 示例 完全匹配 == 比较相等的参数。
host==host.my.company.com 部分匹配(包含) %= 比较部分匹配有效的参数。
user-agent%=IE 6 部分匹配(包含其中一项) ^= 比较部分匹配对多个指定参数中的某一个有效的参数。
request-url^=webApp1|webApp2|webApp3 不匹配 != 比较不相等的参数。
request-url!=noSPNEGO 大于 > 比较符号意义上大于的参数。
remote-address>192.168.255.130 小于 < 比较符号意义上小于的参数。
remote-address<192.168.255.135 - 在过滤器类字段中,输入 SPNEGO 用来选择哪些 HTTP 请求将进行 SPNEGO Web 认证的 Java 类的名称。 如果未指定此参数,将使用缺省过滤器类 com.ibm.ws.security.spnego.HTTPHeaderFilter。
- 可选: 在 SPNEGO 不受支持错误页面 URL 字段中,可选择性地输入资源的 URL,该资源包含 SPNEGO 将包括在 HTTP 响应中的内容,如果(浏览器)客户机应用程序不支持 SPNEGO 认证,那么将显示该内容。 此属性可以指定 Web 资源 (http://) 或文件资源 (file://)。如果未指定 SPNEGO 不受支持错误页面 URL 字段,或已认证的 SPNEGO 找不到所指定的资源,那么会使用以下内容:
<html><head><title>SPNEGO authentication is not supported</title></head> <body>SPNEGO authentication is not supported on this client</body></html>;
- 可选: 在接收到 NTLM 令牌错误页面 URL 字段中,可选择性地指定资源的 URL,该资源包含 SPNEGO 将包括在 HTTP 响应中的内容,此内容会由浏览器客户机应用程序显示。 如果在提问/应答握手期间,浏览器客户机发送了 NT LAN 管理器 (NTLM) 令牌而不是期望的 SPNEGO 令牌,那么浏览器客户机应用程序会显示此 HTTP 响应。如果未指定接收到 NTLM 令牌错误页面 URL 字段,或已认证的 SPNEGO 找不到所指定的资源,那么会使用以下内容:
<html><head><title>An NTLM Token was received.</title></head> <body>Your browser configuration is correct, but you have not logged into a supported Microsoft(R) Windows(R) Domain. <p>Please login to the application using the normal login page.</html>
- 可选: 选择调整主体名称中的 Kerberos 领域,以指定 SPNEGO 是否除去主体用户名的后缀(从 Kerberos 域名前面的 @ 开始)。 如果选择了此选项,那么将除去主体用户名的后缀。如果未选择此属性,那么将保留主体名称的后缀。此选项的缺省值为不选择此属性。
- 可选: 选择对 Kerberos 凭证启用委派,以指示 Kerberos 委派的凭证是否由 SPNEGO Web 认证存储。 如果向客户机发送了
Kerberos 委派凭证,那么 SPNEGO 会抽取 GSSCredential 并将其保存在主题中。KRBAuthnToken
是随客户机 Kerberos 主体名称创建的,并委派 Kerberos 凭单(如果在请求中向客户机发送了 Kerberos 委派凭证)。GSSCredential
不可序列化,所以它无法传播至下游服务器并且会在序列化和反序列化期间丢失。但是,KRBAuthnToken
可序列化,并且可传播至下游服务器。如果定制应用程序需要 GSSCredential
凭证以向后端资源或下游服务器认证,那么它必须使用
com.ibm.wsspi.wssecurity.platform.token.KRBAuthnToken.getGSSCredential() 方法从
KRBAuthnToken 中检索 GSSCredential 并将其放到主题中。注: 如果未选中此选项,那么 KRBAuthnToken 将只包含 Kerberos 主体名称。
- 单击应用。 如果已指定过滤条件和过滤器类,那么会它们进行验证。
- 单击确定。 这会填写“SPNEGO Web 认证”页面。
结果
SPNEGO 现在已作为应用程序服务器的 Web 认证器启用。
子主题
使用管理控制台来添加或修改 SPNEGO Web 认证过滤器
“简单且受保护的 GSS-API 协商机制” (SPNEGO) 过滤器值可控制 SPNEGO 的不同方面。可使用管理控制台,对每个应用程序服务器指定不同的过滤器值。SPNEGO Web 认证的启用
可以将简单且受保护的 GSS-API 协商机制 (SPNEGO) 作为 WebSphere Application Server 的 Web 认证器来启用。SPNEGO Web 认证过滤器值
简单且受保护的 GSS-API 协商机制 (SPNEGO) Web 认证过滤器值可控制 SPNEGO 的不同方面。使用此页面对每个应用程序服务器指定不同的过滤器值。
相关任务:


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tsec_SPNEGO_config
文件名:tsec_SPNEGO_config.html