"policy":[]
此部分是可选的。 它允许在 IBM RADIUS服务器向RADIUS客户端(NAS)发送的Access-Accept响应数据包中,根据条件添加属性。 它还允许对“访问请求”授权请求进行有条件的即时接受或拒绝。 按照定义策略的顺序评估策略。
格式
“policy”:[
{
“name”:”policy1”,
“match”:{
“client-ip”:”???”,
“attr”:{
“compare”:”??”,
“name”:”???”,
…
},
“user-group”:{
“compare”:”??”,
“name”: “???”
},
“apply-before-authenticate”:????
},
“return-attrs”:[
{
“name”:”???”,
“value”:”???”,
…
},
…
],
“action”:”???”,
},
{
“name”:”policy2”,
…
},
…
]
值
"match":{}- 此子节是可选的,如果不存在,那么此策略与所有访问请求包匹配。
在此节下,包括以下子项:
"client-ip":"192.168.0.129"- 与发送包的 RADIUS 客户机 (NAS) 的地址匹配。
"apply-before-authenticate":"false"- 不推荐使用。 缺省设置为 false。 如果为 true,那么将在验证用户密码或 OTP 之前匹配并应用策略。 这相当于 "apply": "before_mfa"。
"apply": "before-mfa" | "after-mfa-success" | "after-pwd-success" | "before-each-response"- 与已弃
"apply-before-authenticate"用的配置选项相比,更推荐使用此选项。"before-mfa"- 该策略会在验证 1FA (密码)或 2FA 之前先进行此匹配。
"after-mfa-success"- 在成功验证 2FA 之后,该策略将与之匹配。
"after-pwd-success"- 该策略在成功验证 1FA (密码)后生效,且在执行 2FA 之前生效。
"before-each-response"- 该策略会在发送每个响应之前进行匹配。
"attr":{}此节允许匹配访问权请求中的单个属性值。 在此节下,包括以下子项:
"compare":"="- 默认值为“=”。此项必须为 或
"=""!="。 "case-ignore":false- 缺省设置为 false。 值将根据“按字节数”比较针对 RADIUS 属性值进行比较。
"case-ignore"设置为 true 时例外。 对于这种情况,将进行一个不区分大小写的 UTF-8 字符串比较,这对于对比"User-Name"属性值很有用。 "regex":false- 默认值为
false. 当设置为true时,在匹配属性值时,“value”将被解释为扩展正则表达式。 例如,"value": ".*ibm\\.com"testibm.com匹配以ibm.com结尾的任何值,例如。 有关扩展正则表达式的定义,请参见 https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html , "name":"User-Name"访问权请求中要比较的属性。 此值可以是字符串,例如 RADIUS 属性的名称或属性号。 例如 ,用户名对应数字 1。 请查看该 IbmRadius.exe -attributes 命令的输出,以获取 RADIUS 属性的列表。
"value":"Administrator"- 要比较的属性值。 请参阅下面的
"value-type"表以了解值的 JSON 格式。 属性的缺省值类型取决于属性本身。 命令的输出
显示每个 RADIUS 属性的值类型。"IbmRadius.exe -attributes" "value-type":"text"- 覆盖
“value”如何转化为 RADIUS 属性值。 缺省值取决于 RADIUS 属性,因为每个属性都具有自己的缺省值类型。 请参阅 IbmRadius.exe -attributes 命令的输出以了解每个 RADIUS 属性的值类型。 此参数允许覆盖类型以便于输入。 例如,可以将文本字符串放在二进制字符串属性中。表 1. 值映射 名称 JSON 值格式 RADIUS 值 integer - 数字:例如,1234。
- 字符串:十六进制数,例如
"0xa2b3ff".
4 个字节,首先是 MSB enum - 字符串:适用于属性的枚举名称。 例如,
"Login"对于“Service-Type”属性。 请参阅 IbmRadius.exe -attributes 命令的输出以获取可接受的枚举值字符串的列表。 5数字:例如,.
4 个字节,首先是 MSB 时间 - 数字:1970-01-01 00:00:00 UTC 起的秒数
- 字符串:"YYYYMMDDHHMMSS" UTC
4 个字节,首先是 MSB 文本 - 字符串:UTF-8 字符
未由 0x00 终止的 UTF-8 字节 integer64 - 数字:例如,12345
- 字符串:十六进制数,例如。
"0xdeadbeaf"
8 个字节,首先是 MSB ipv4addr - 字符串:例如,格式化后的字符串 IPv4。
,"192.168.0.1"
4 个字节,网络顺序,首先是 MSB ipv6addr - 字符串:例如,格式化后的字符串 IPv6。
"192.168.0.fe80::df3c:99dd:8a4a:16f1"
8 个字节,网络顺序,首先是 MSB 字符串
ifid
ipv6prefix
ipv4prefix
tlv
vsa
extended
long_extended
evs
- 字符串:Base64 编码的二进制数据。
字节数: 注: 每种类型的格式各不相同,请参阅 RADIUS RFC 规范。
"user-group":{}- 此节允许将单个组与用户所属的组列表匹配。
"apply-before-authenticate" == false此参数仅在……时可用。 在此节下,包括以下子项:compare":"="默认值为
"="."="此项必须是 或"!="。"name":"{{group-name}}"- 系统会将名为
"{{group-name}}"的组与用户的组成员身份进行比对。
"return-attrs":[]- 如果不存在此项,则不会向返回的 RADIUS 数据包中添加任何属性。 仅当策略匹配为 true 时才添加
"return-attrs"。"return-attrs"数组的每个元素的格式都为:{ "name":"xxxx", "value":"xxxx", "value-type":"xxxx" },“name”、“value”和“value-type”的描述在前面的 部分中定义。 "value" 为以下某个属性时例外。"{{group-name}}" :多次插入属性,为用户所属的每个组插入一次。"{{group-list}}" :针对用户所属的所有组各插入一次属性,并以逗号分隔。
"value-type"不得不“文本化”。可以将“值” 用作供应商特定属性(VSA)添加到每个组中"{{group-name:vsa:<vendorid>:<vendortype>}}"。 必须覆盖二进制格式的默认 VSA 值类型,以便将格式化字符串解释为文本。 请将<vendorid>替换为供应商的 ID(十进制数),并将<vendortype>替换为供应商的值类型(十进制数)。 例如,"return-attrs":[ { "name": "Vendor-Specific", "value": "{{group-name:vsa:12356:1}}", "value-type": "text" } ],“value” 会
"{{reflect}}"将请求中同名的值复制到响应中。 通常,它用于返回收到的 Proxy-State 值。 此外,请指定此属性的设置"value-type": "text"。 "action":"continue"- 默认值为
"continue"."action"仅在策略匹配为 true 时适用。"action"项可以是以下三个值中的一个:"continue":添加任何"return-attrs"然后继续处理。"reject":添加任何"return-attrs",退回 RADIUS 访问拒绝包,并结束处理该 RADIUS 客户机 (NAS) 请求。"accept":添加任何"return-attrs",发送回 RADIUS 访问接受包,结束此 RADIUS 客户机 (NAS) 请求的处理。