"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":{}
このサブセクションはオプションです。このサブセクションが存在しない場合、ポリシーはすべての 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"
このポリシーは、各レスポンスを送信する前に、これと照合されます。
ポリシーにおける使用 "apply" 例としては、次のようなものがあります:
  1. 「risky」という名前のグループに所属するすべてのユーザーに対して、 2FA をバイパスするには:
     {
                "name": "risk_policy",
                "match": {
                    "apply": "after-pwd-success",
                    "user-group": { "compare": "=", "name": "risky" }
                },
                "return-attrs":[
                    {
                        "name": "Reply-Message",
                        "value": "Success: Bypassed 2FA"
                    }
                ],
                "action": "accept"
            }, 
  2. クライアント/NASとRADIUSサーバー間のRADIUSプロキシをサポートし、RADIUSサーバーに送信されたProxy-State属性がRADIUSプロキシに返されるようにするには:
     {
                "name":"proxy_policy",
                "match":{
                    "apply": "before-each-response"
                },
                "return-attrs":[
                    {
                        "name":"Proxy-State",
                        "value":"{{reflect}}",
                        "value-type":"text"
                    }
                ],
                "action":"continue"
            } 
"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.comibm.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" の表を参照してください。 属性のデフォルトの値の型は属性ごとに異なります。 コマンドの出力
"IbmRadius.exe
      -attributes"
それぞれの RADIUS 属性の値タイプを示します。
"value-type":"text"
“value” RADIUS 属性値に変換される方法を上書きします。 RADIUS 属性はそれぞれにデフォルトの値の型を持つため、デフォルトは RADIUS 属性によって異なります。 各 RADIUS 属性の値の型については、IbmRadius.exe -attributes コマンドの出力を参照してください。 このパラメーターを指定すると、型をオーバーライドして入力しやすくすることができます。 例えば、2 進のストリング属性にテキスト・ストリングを指定できます。
表 1. 値のマッピング
名前 JSON 値の形式 RADIUS の値
integer
  • 数字:例えば、1234。
  • "0xa2b3ff"文字列:16進数。例:
4 バイト (先頭が MSB)
enum
  • ストリング。属性に適した列挙名のストリングです。 たとえば、 "Login" 「Service-Type」属性の場合。 指定できる列挙値のストリングのリストについては、IbmRadius.exe -attributes コマンドの出力を参照してください。
  • 5番号:例:。
4 バイト (先頭が MSB)
時刻
  • 数値。1970 年 1 月 1 日 00:00:00 UTC 以降の秒数
  • ストリング。"YYYYMMDDHHMMSS" UTC
4 バイト (先頭が MSB)
テキスト
  • ストリング。UTF-8 文字です
UTF-8 バイト列 (0x00 終端ではありません)
integer64
  • 数値。例: 12345
  • 文字列:16進数など。"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 エンコードの 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」の説明は、前の 「match」:{} > 「attr」:{} のセクションで定義されています。 ただし例外として、"value" は以下のいずれかの属性にすることができます。
  • "{{group-name}}" : 複数回 (ユーザーが属するグループごとに 1 回ずつ) 属性を挿入します。
  • "{{group-list}}" : コンマで区切りの、ユーザーが属するすべてのグループを使って、1 回だけ属性を挿入します。
どちらの例外の場合も、は "value-type" 「text」に強制的に設定されます。
"{{group-name:vsa:<vendorid>:<vendortype>}}" 「値」を使用して、各グループをベンダー固有属性(VSA)として追加することができます。 フォーマット文字列がテキストとして解釈されるように、VSAのデフォルトの値タイプである「バイナリ」を上書きする必要があります。 をベンダーID(10進数)に置き換え <vendorid> 、を <vendortype> ベンダーの値の型(10進数)に置き換えてください。 例えば、以下のとおりです。
     "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" 項目は、以下の 3 つの値のうち、いずれかにすることができます。
  • "continue": 任意 "return-attrs" の値を追加し、処理を続行してください。
  • "return-attrs" "reject": 任意の値を追加し、RADIUS Access-Rejectパケットを返信して、このRADIUSクライアント(NAS)リクエストの処理を終了する。
  • "return-attrs" "accept": 任意の情報を追加し、RADIUS Access-Acceptパケットを返信して、このRADIUSクライアント(NAS)リクエストの処理を終了する。