OAuth 信任关联拦截器 (TAI) 定制属性
下列各表列示 OAuth TAI 的定制属性。您可以使用管理控制台来在 OAuth TAI 的定制属性面板中定义这些属性。
要指定用于标识每个可能存在的 OAuth 提供程序的唯一属性名称,将 provider_<id> 嵌入属性名中,并用于对与每个提供程序相关联的属性进行分组。provider_<id> 是按顺序对每个服务提供程序进行编号的。
下表描述了 OAuth TAI 定制属性:
属性名 | 值 | 描述 |
---|---|---|
provider_<id>.name | 您可以指定任何字符串值。 | 此属性用于指定 OAuth 提供程序的名称。该值必须与提供程序配置文件的名称相同(不带 .xml 文件扩展名)。此属性是必需的。 |
provider_<id>.filter | 此属性没有缺省值。 | 此属性用于指定根据 HTTP 请求进行检查的条件,以便确定是否选择该 HTTP 请求以供 OAuth 服务提供程序进行处理。此属性是必需的。 |
provider_<id>.oauthOnly | 可以指定下列其中一个值:
|
如果客户机请求不包含 OAuth 凭证(例如,访问令牌),那么此属性将指定是否允许基本认证等其他认证机制启动 OAuth TAI 所保护的资源。此属性是可选的。 |
OAuth TAI 过滤器属性
provider_<id>.filter OAuth TAI 过滤器属性是必需属性,用于指定 OAuth 提供程序所保护的资源。
- 必需的输入 - 输入元素通常指定 HTTP 头名称,但也可以使用 request-url 和 remote-address 作为特殊元素
- 运算符 - 运算符元素指定下列其中一个值:==、!=、%=、^=、< 和 >
- 比较值 - 此元素通常指定一个字符串,但也允许指定 IP 地址范围
这些条件按从左到右顺序根据比较值的指定方式进行求值。如果 HTTP 请求满足某个 OAuth 提供程序指定的所有过滤条件,那么将选择该 OAuth 提供程序处理该 HTTP 请求。
输入元素用于标识要从 HTTP 请求中抽取的请求头字段,并将该字段的值与过滤器属性中指定的值进行比较。如果输入元素所标识的头字段在该 HTTP 请求中不存在,那么认为不满足该条件。任何标准的 HTTP 请求头字段都可以用作过滤条件中的输入元素。有关有效头的列表,请参阅 HTTP 规范。
- request-url - 此输入的比较值将与客户机应用程序用于发出请求的 URL 地址进行比较
- request-uri - 此元素类似于 request-url,但在比较时不使用请求 URL 地址中包含的查询字符串
- remote-address - 此输入的比较值将与发送 HTTP 请求的客户机应用程序的 TCP/IP 地址进行比较
示例
provider_1.filter=From==oauthuser@xyz.com
在这种情况下,如果客户机请求包含值为
oauthuser@xyz.com 的 HTTP 头字段 From,那么 OAuth TAI 将选择这个
provider_1 过滤器的提供程序来处理该客户机请求。provider_2.filter=request-url%=ivtlanding.jsp
在这种情况下,如果客户机启动的受保护应用程序的
URL 包含字符串 ivtlanding.jsp,那么 OAuth TAI 将选择这个
provider_2 过滤器的提供程序来处理该客户机请求。provider_3.filter=applicationNames==DefaultApplication
在这种情况下,如果由客户机应用程序启动的目标应用程序名为
DefaultApplication,那么 OAuth TAI 将选择这个 provider_3
过滤器的提供程序来处理该客户机请求。运算符 | 条件 | 示例 |
---|---|---|
== | 此运算符指定完全匹配。输入元素必须与比较值相等。 | From==jones@my.company.com |
%= | 此运算符指定部分匹配。输入元素包含比较值。 | user-agent%=IE 6 |
^= | 输入元素包含其中一个比较值。 | request-url^=urlApp1|urlApp2| urlApp3 |
!= | 输入元素不包含比较值。 | request-url!=SPNEGO |
> | 输入元素大于比较值。 | remote-address>192.168.255.130 |
< | 输入元素小于比较值。 | remote-address<192.168.255.135 |