"policy":[]
このセクションはオプションです。 これにより、 IBM RADIUS サーバーから RADIUS クライアント (NAS) への Access-Accept 応答パケットへの属性の条件付き追加が可能になります。 また、Access-Request 許可要求の条件付き即時受け入れまたは拒否も許可します。 ポリシーは定義順に評価されます。
フォーマット
“policy”:[
{
“name”:”policy1”,
“match”:{
“client-ip”:”???”,
“attr”:{
“compare”:”??”,
“name”:”???”,
…
},
“user-group”:{
“compare”:”??”,
“name”: “???”
},
“apply-before-authenticate”:????
},
“return-attrs”:[
{
“name”:”???”,
“value”:”???”,
…
},
…
],
“action”:”???”,
},
{
“name”:”policy2”,
…
},
…
]
値
"match":{}- このサブセクションはオプションです。このサブセクションが存在しない場合、ポリシーはすべての Access-Request パケットを突き合わせます。
このセクションの下には以下のサブ項目があります。
"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":{}このセクションでは、Access-Request の単一の属性値と突き合わせることができます。 このセクションの下には以下のサブ項目があります。
"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"Access-Request の比較する属性。 この値は、ストリング (RADIUS 属性の名前など) または属性番号にすることができます。 例えば、 User-Name の番号は 1 です。 RADIUS 属性のリストについては、 IbmRadius.exe -attributes コマンドの出力を参照してください。
"value":"Administrator"- 比較する属性値。 値の JSON 形式については、以下の
"value-type"の表を参照してください。 属性のデフォルトの値の型は属性ごとに異なります。 コマンドの出力
それぞれの RADIUS 属性の値タイプを示します。"IbmRadius.exe -attributes" "value-type":"text"“value”を RADIUS 属性値に変換する方法をオーバーライドします。 RADIUS 属性はそれぞれにデフォルトの値の型を持つため、デフォルトは RADIUS 属性によって異なります。 各 RADIUS 属性の値の型については、IbmRadius.exe -attributes コマンドの出力を参照してください。 このパラメーターを指定すると、型をオーバーライドして入力しやすくすることができます。 例えば、2 進のストリング属性にテキスト・ストリングを指定できます。表 1. 価値マッピング 名前 JSON 値の形式 RADIUS の値 integer - number: 例: 1234。
- string: 16 進数 (例:
"0xa2b3ff")。
4 バイト (先頭が MSB) enum - ストリング。属性に適した列挙名のストリングです。 例えば、「サービス・タイプ」属性の場合は
"Login"です。 指定できる列挙値のストリングのリストについては、IbmRadius.exe -attributes コマンドの出力を参照してください。 - number: 例:
5。
4 バイト (先頭が MSB) 時刻 - 数値。1970 年 1 月 1 日 00:00:00 UTC 以降の秒数
- ストリング。"YYYYMMDDHHMMSS" UTC
4 バイト (先頭が MSB) テキスト - ストリング。UTF-8 文字です
UTF-8 バイト列 (0x00 終端ではありません) integer64 - 数値。例: 12345
- string: 16 進数 (例:
"0xdeadbeaf")
8 バイト (先頭が MSB) ipv4addr - string: 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 エンコードの 2 進データ。
バイト列。 注: 各タイプの形式は異なります。RADIUS RFC を参照してください。
"user-group":{}- このセクションでは、ユーザーが属するグループのリストに対して 1 つのグループを突き合わせることができます。 このパラメーターは、
"apply-before-authenticate" == falseの場合にのみ使用できます。 このセクションの下には以下のサブ項目があります。compare":"="デフォルトは
"="です。 この項目は、"="または"!="のいずれかでなければなりません。"name":"{{group-name}}""{{group-name}}"という名前のグループが、ユーザーのグループ・メンバーシップと照合されます。
"return-attrs":[]- これが存在しない場合、返される RADIUS パケットに属性は追加されません。
"return-attrs"が追加されるのは、ポリシー一致が true の場合のみです。"return-attrs"配列の各要素の形式は以下のとおりです。{ "name":"xxxx", "value":"xxxx", "value-type":"xxxx" },「name」、「value」、「value-type」の記述は、前の セクションで定義されています。 ただし例外として、"value" は以下のいずれかの属性にすることができます。"{{group-name}}" :複数回 (ユーザーが属するグループごとに 1 回ずつ) 属性を挿入します。"{{group-list}}" :コンマで区切りの、ユーザーが属するすべてのグループを使って、1 回だけ属性を挿入します。
"value-type"は強制的に「text」になります。"{{group-name:vsa:<vendorid>:<vendortype>}}"の「値」を使用して、各グループをベンダー固有の属性 (VSA) として追加できます。 デフォルトの VSA 値タイプのバイナリーは、フォーマット・ストリングがテキストとして解釈されるようにオーバーライドする必要があります。<vendorid>を 10 進数としてベンダーの ID に置き換え、<vendortype>を 10 進数としてベンダーの値タイプに置き換えます。 例えば、以下のとおりです。"return-attrs":[ { "name": "Vendor-Specific", "value": "{{group-name:vsa:12356:1}}", "value-type": "text" } ],「値」が
"{{reflect}}"の場合、同じ名前の要求値が応答にコピーされます。 通常は、受信した Proxy-State 値を返すために使用されます。 また、この属性の"value-type": "text"設定も指定します。 "action":"continue"- デフォルトは
"continue"です。"action"が適用されるのは、ポリシー一致が true の場合のみです。"action"項目は、以下の 3 つの値のうち、いずれかにすることができます。"continue":任意のものを追加"return-attrs"し、処理を続行します。"reject":任意のものを追加"return-attrs"し、RADIUS アクセス拒否パケットを送り返し、この RADIUS クライアント (NAS) 要求の処理を終了します。"accept":任意のものを追加"return-attrs"し、RADIUS ACCESS-ACCEPT パケットを送り返し、この RADIUS クライアント (NAS) 要求の処理を終了します。