SPNEGO Web 认证过滤器值

简单且受保护的 GSS-API 协商机制 (SPNEGO) Web 认证过滤器值可控制 SPNEGO 的不同方面。使用此页面对每个应用程序服务器指定不同的过滤器值。

要查看此管理控制台页面,单击安全性 > 全局安全性。在“认证”下,展开“Web 和 SIP 安全性”,然后单击 SPNEGO Web 认证。在“SPNEGO 过滤器”下面,单击新建或者选择要编辑的过滤器。

主机名

指定 SPNEGO 用来建立 Kerberos 安全上下文的 Kerberos 服务主体名称(SPN)中的标准主机名。

该主机名是主机名的标准格式。例如,myHostname.austin.ibm.com

Kerberos SPN 是一个格式为 HTTP/<fully qualified hostname>@KERBEROS_REALM 的字符串。SPNEGO 提供程序将完整的 SPN 与 Java™ 类属安全性服务(JGSS)配合使用,以获取认证过程中使用的安全凭证和安全上下文。

数据类型: 字符串
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
注: 在先前版本的 WebSphere Application Server 中,SPNEGO HTTP 头过滤器无法正确处理空格、IP 地址和 != 条件,但是这些问题在此发行版中已解决。
数据类型: 字符串
过滤器类

指定 SPNEGO 用来选择哪些 HTTP 请求将进行 SPNEGO 认证的 Java 类的名称。如果未指定此参数,将使用缺省过滤器类 com.ibm.ws.security.spnego.HTTPHeaderFilter。

数据类型: 字符串
不支持 SPNEGO 时的错误页 URL

此选项是可选的。它指定资源的 URL,该资源包含 SPNEGO 将包括在 HTTP 响应中的内容,如果浏览器客户机应用程序不支持 SPNEGO 认证,那么浏览器客户机应用程序将显示该内容。

此属性可以指定 Web 资源(http://)或文件资源(file://)。

如果未指定此属性或者拦截器找不到指定资源,那么使用以下内容:
<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 响应。

如果未指定此属性或者拦截器找不到指定资源,那么使用以下内容:
<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>

此属性可以指定 Web 资源(http://)或文件资源(file://)。

数据类型: 字符串
启用 Kerberos 凭证的授权

指定是否应由 SPNEGO 来存储 Kerberos 授权的凭证。它还允许应用程序检索已存储的凭证并将它们传播至其他应用程序下游,以便进行其他的 SPNEGO 认证。

此选项需要使用高级 Kerberos 凭证授权功能,并且要求应用程序开发者开发定制逻辑。开发者必须与 Kerberos KDC 直接交互,才能以提出请求的用户名义使用授权 Kerberos 凭证来获取 Kerberos 凭单授予服务(TGS)。开发者还必须构造相应的 Kerberos SPNEGO 标记并将其包括在 HTTP 请求中,以继续进行下游 SPNEGO 认证过程,其中包括处理其他 SPNEGO 提问-应答交换(如有必要)。

注: 如果启用了此选项(缺省情况下此选项处于启用状态),那么 GSS 凭证不是可序列化的,并且无法传播到下游服务器。将抽取客户机 Kerberos 授权凭证并创建基本 KRBAuthnToken。该 KRBAuthnToken 包含客户机 Kerberos 授权并且可以传播到下游服务器。

如果要将该 KRBAuthnToken 传播到下游服务器,那么客户机凭单授予凭单(TGT)必须包含可寻址和可转发的选项。如果找到客户机 TGT 的地址,那么下游服务器在传播该地址之后没有客户机 GSS 授权凭证。

可以使用 KRBAuthnToken.getGSSCredential() 方法从 KRBAuthnToken 中抽取客户机授权 GSS 凭证。

缺省值: 已禁用
调整主体名称中的 kerberos 域

此选项是可选的。它指定 SPNEGO 是否要从 Kerberos 域名前面的 @ 开始除去主体用户名的后缀。如果此属性设置为 true,那么将除去主体用户名的后缀。如果此属性设置为 false,那么将保留主体名称的后缀。使用的缺省值为 true

注: 如果正在使用 z/OS 上的本地操作系统注册表并使用内置映射模块将 Kerberos 主体映射到 SAF 标识,那么必须将此字段设置为 true
缺省值: 已禁用



标有(在线)的链接要求访问因特网。

相关参考
SPNEGO Web 认证的启用
Kerberos 认证


文件名: usec_kerb_SPNEGO_edit.html