SPNEGO TAI 定制属性配置(不推荐)
简单且受保护的 GSS-API 协商机制 (SPNEGO) 信任关联拦截器 (TAI) 定制配置属性可控制 SPNEGO TAI 的不同操作方面。可对每个应用程序服务器指定不同的属性值。

在 WebSphere® Application Server V6.1 中引入了一个信任关联拦截器 (TAI),TAI 使用“简单且受保护的 GSS-API 协商机制” (SPNEGO) 来对安全资源的 HTTP 请求进行安全地协商和认证。现在,WebSphere Application Server 7.0 中已不推荐使用此功能。SPNEGO Web 认证已取代该 TAI,以提供动态重新装入 SPNEGO 过滤器的功能以及对应用程序登录方法启用回退。
depfeat下表中定义的每个属性将使用管理控制台设施在 SPNEGO TAI 的“定制属性”面板中指定。为方便起见,可选择将这些属性放在属性文件中。在此情况下,SPNEGO TAI 会从文件(而不是“定制属性”面板定义)中装入配置属性。请参阅 SPNEGO TAI JVM 配置定制属性(不推荐)中定义的 com.ibm.ws.security.spnego.propertyReloadFile 属性。
为了指定用于标识每个可能存在的 SPN 的唯一属性名称,在属性名称中嵌入了 SPN<id>,用于将每个 SPN 的相关联属性分组到一起。对于每个属性组,SPN<id> 按顺序编号。
属性名 | 必需 | 缺省值 |
---|---|---|
com.ibm.ws.security.spnego.SPN<id>.enableCredDelegate | 否 | False |
com.ibm.ws.security.spnego.SPN<id>.filter | 否 | 请参阅其后的描述。 |
com.ibm.ws.security.spnego.SPN<id>.filterClass | 否 | 请参阅其后的描述。 |
com.ibm.ws.security.spnego.SPN<id>.hostName | 是 | 无 |
com.ibm.ws.security.spnego.SPN<id>.NTLMTokenReceivedPage | 否 | 请参阅其后的描述。 |
com.ibm.ws.security.spnego.SPN<id>.spnegoNotSupportedPage | 否 | 请参阅其后的描述。 |
com.ibm.ws.security.spnego.SPN<id>.trimUserName | 否 | true |
com.ibm.ws.security.spnego.SPN<id>.enableCredDelegate
此属性是可选的。它指示 SPNEGO TAI 是否存储 Kerberos 委派凭证。此属性允许应用程序检索存储的凭证并将它们传播至其他应用程序下游,以便进行其他的 SPNEGO 认证。
此属性需要使用高级 Kerberos 凭证委派功能,并且要求应用程序开发者开发定制逻辑。开发者必须与 Kerberos 凭单授予服务 (TGS) 直接交互,以提出请求的最终用户名义使用委派 Kerberos 凭证来获取凭单授予凭单 (TGT)。开发者还必须构造相应的 Kerberos SPNEGO 标记并将其包括在 HTTP 请求中,以继续进行下游 SPNEGO 认证过程,其中包括处理其他 SPNEGO 提问-应答交换(如有必要)。
com.ibm.ws.security.spnego.SPN<id>.filter
此属性是可选的。此属性用于定义过滤条件,供具有 com.ibm.ws.security.spnego.SPN<id>.filterClass 属性的指定类使用。它将定义对所用的实现类有意义的任意条件。
com.ibm.ws.security.spnego.HTTPHeaderFilter 缺省实现类使用此属性来定义选择规则列表,这些规则表示要与 HTTP 请求头相匹配的条件,以确定是否选择该 HTTP 请求以进行 SPNEGO 认证。
每个条件是使用“键/值”对指定的,并且用分号隔开。当这些条件显示在指定属性中时,按从左至右的顺序对他们进行求值。如果满足所有条件,那么会选择该 HTTP 请求以进行 SPNEGO 认证。
“键/值”对中的键和值用某一定义选择哪个条件的运算符隔开。该键标识要从 HTTP 请求中抽取的请求头,并且会根据指定的运算符将其值与“键/值”对中指定的值进行比较。如果该键标识的头未出现在 HTTP 请求中,那么会认为不满足该条件。
String url = request.getRequestURL() + ‘?' + request.getQueryString();
条件 | 运算符 | 示例 |
---|---|---|
完全匹配 | = = 比较相等的参数。 |
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 |
com.ibm.ws.security.spnego.SPN<id>.filterClass
此属性是可选的。它指定由 SPNEGO TAI 用于选择哪些 HTTP 请求要进行 SPNEGO 认证的 Java 类的名称。
如果未指定任何类,那么使用缺省 com.ibm.ws.security.spnego.HTTPHeaderFilter 实现类。指定的 Java 类必须实现 com.ibm.wsspi.security.spnego.SpnegoFilter 接口。已经提供了此接口的缺省实现。指定 com.ibm.ws.security.spnego.HTTPHeaderFilter 类以使用缺省实现。这个类使用通过 com.ibm.ws.security.spnego.SPN<id>.filter 属性指定的选择规则。
com.ibm.ws.security.spnego.SPN<id>.hostName
此属性是必需的。它指定 SPN 中的主机名,SPNEGO TAI 用该名称来确定 Kerberos 安全上下文。它没有缺省值。
com.ibm.ws.security.spnego.SPN<id>.NTLMTokenReceivedPage
此属性是可选的。此属性指定一个资源的 Web 地址,当提问/应答握手包含 NT LAN 管理器 (NTLM) 令牌而不是期望的 SPNEGO 令牌时,SPNEGO TAI 将该资源中的内容包括在(浏览器)客户机应用程序所显示的 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>
com.ibm.ws.security.spnego.SPN<id>.spnegoNotSupportedPage
此属性是可选的。此属性指定一个资源的 Web 地址,当(浏览器)客户机应用程序不支持 SPNEGO 认证时,SPNEGO TAI 将该资源的内容包括在该应用程序所显示的 HTTP 响应中。此属性可以指定 Web 资源 (http://) 或文件资源 (file://)。
<html><head><title>SPNEGO authentication is not supported</title></head>
<body>SPNEGO authentication is not supported on this client</body></html>;
com.ibm.ws.security.spnego.SPN<id>.trimUserName
此属性是可选的。它指定 SPNEGO TAI 是 (true) 否 (false) 要从 Kerberos 领域名前面的“@”开始移除主体用户名的后缀。
如果此属性设置为 true,那么将移除主体用户名的后缀。如果此属性设置为 false,那么将保留主体名称的后缀。使用的缺省值为 true。例如,
bobsmith@myKerberosRealm becomes bobsmith
bobsmith@myKerberosRealm remains bobsmith@myKerberosRealm