简单且受保护的 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 域的名称。大多数情况下,您的域是用大写字母表示的域名。例如,如果一台机器具有域名 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 请求中,那么会认为不满足该条件。
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 |
数据类型: | 字符串 |
指定 SPNEGO 用来选择哪些 HTTP 请求将进行 SPNEGO 认证的 Java 类的名称。如果未指定此参数,将使用缺省过滤器类 com.ibm.ws.security.spnego.HTTPHeaderFilter。
数据类型: | 字符串 |
此选项是可选的。它指定资源的 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>;
数据类型: | 字符串 |
此属性是可选的。它指定资源的 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://)。
数据类型: | 字符串 |
指定是否应由 SPNEGO 来存储 Kerberos 授权的凭证。它还允许应用程序检索已存储的凭证并将它们传播至其他应用程序下游,以便进行其他的 SPNEGO 认证。
此选项需要使用高级 Kerberos 凭证授权功能,并且要求应用程序开发者开发定制逻辑。开发者必须与 Kerberos KDC 直接交互,才能以提出请求的用户名义使用授权 Kerberos 凭证来获取 Kerberos 凭单授予服务(TGS)。开发者还必须构造相应的 Kerberos SPNEGO 标记并将其包括在 HTTP 请求中,以继续进行下游 SPNEGO 认证过程,其中包括处理其他 SPNEGO 提问-应答交换(如有必要)。
如果要将该 KRBAuthnToken 传播到下游服务器,那么客户机凭单授予凭单(TGT)必须包含可寻址和可转发的选项。如果找到客户机 TGT 的地址,那么下游服务器在传播该地址之后没有客户机 GSS 授权凭证。
可以使用 KRBAuthnToken.getGSSCredential() 方法从 KRBAuthnToken 中抽取客户机授权 GSS 凭证。
缺省值: | 已禁用 |
此选项是可选的。它指定 SPNEGO 是否要从 Kerberos 域名前面的 @ 开始除去主体用户名的后缀。如果此属性设置为 true,那么将除去主体用户名的后缀。如果此属性设置为 false,那么将保留主体名称的后缀。使用的缺省值为 true。
缺省值: | 已禁用 |
标有(在线)的链接要求访问因特网。