リライト機能の RADIUS サポート
-
シングルサインオン (SSO) を簡略化するには、RADIUS ユーザー名 AVP のドメイン\ 部分を削除してください。
-
電話会社の業務で使用する MSISDN フィールドなど、ベンダー固有の AVP を挿入して加入者情報を格納します。
-
NetScalerは、書き換えられたRADIUSリクエストやレスポンスに再署名しません。RADIUS 認証サーバーが署名付き RADIUS メッセージを必要とする場合、認証は失敗します。
-
現在使用可能な RADIUS 式は RADIUS IPv6 属性では機能しません。
RADIUS の書き換えポリシーの設定
-
add rewrite action <actName> <actType> -
add rewrite policy <polName> <rule> <actName> -
bind rewrite policy <polName> <priority> <nextExpr> -type <bindPoint>ここで、<bindPoint>はリライト固有のグローバルバインドポイントの 1 つを表します。
リライト用の RADIUS エクスプレッション
-
RADIUS.IS_CLIENT接続が RADIUS クライアント (要求) メッセージの場合は TRUE を返します。 -
RADIUS.IS_SERVER接続が RADIUS サーバー (応答) メッセージの場合、TRUE を返します。
-
RADIUS.REQ.CODERADIUS リクエストタイプに対応する番号を返します。num_at クラスの派生関数です。たとえば、RADIUS アクセス要求は 1 を返します。RADIUS アカウンティング要求では 4 が返されます。 -
RADIUS.REQ.LENGTHヘッダーを含む RADIUS リクエストの長さを返します。 num_at クラスの派生関数です。 -
RADIUS.REQ.IDENTIFIERRADIUS リクエスト識別子を返します。これは、リクエストを対応するレスポンスと一致させるために各リクエストに割り当てられる番号です。 num_at クラスの派生関数です。 -
RADIUS.REQ.AVP(<AVP Code No>).VALUEこの AVP が最初に出現したときの値を text_t 型の文字列で返します。 -
RADIUS.REQ.AVP(<AVP code no>).INSTANCE(instance number)AVP の指定されたインスタンスを RAVP_t 型の文字列として返します。特定の RADIUS AVP が 1 つの RADIUS メッセージに複数回表示されることがあります。INSTANCE (0) は最初のインスタンスを返し、INSTANCE (1) は 2 番目のインスタンスを返す、というように、最大 16 個のインスタンスを返します。 -
RADIUS.REQ.AVP(<AVP code no>).VALUE(instance number)AVP の指定されたインスタンスの値を text_t 型の文字列として返します。 -
RADIUS.REQ.AVP(<AVP code no>).COUNTRADIUS 接続内の特定の AVP のインスタンス数を整数で返します。 -
RADIUS.REQ.AVP(<AVP code no>).EXISTS指定されたタイプの AVP がメッセージに存在する場合は TRUE を返し、存在しない場合は FALSE を返します。
RADIUS.REQ.AVP(8).VALUE(0).typecast_ip_address_at
-
RADIUS.REQ.AVP (1).VALUE or RADIUS.REQ.USERNAME.valueRADIUS ユーザー名の値を抽出します。 -
RADIUS.REQ.AVP (4). VALUE or RADIUS.REQ. ACCT\_SESSION\_ID.valueメッセージから ACCT セッション ID AVP (コード 44) を抽出します。 -
RADIUS.REQ.AVP (26). VALUE or RADIUS.REQ.VENDOR\_SPECIFIC.VALUEベンダー固有の値を抽出します。
-
RADIUS_REQ_OVERRIDEプライオリティ/オーバーライドリクエストポリシーキュー。 -
RADIUS_REQ_DEFAULT標準リクエストポリシーキュー。 -
RADIUS_RES_OVERRIDEプライオリティ/オーバーライドレスポンスポリシーキュー。 -
RADIUS_RES_DEFAULT標準レスポンスポリシーキュー。
-
RADIUS.NEW_AVP指定した RADIUS AVP を文字列で返します。 -
RADIUS.NEW_AVP_INTEGER32指定された RADIUS AVP を整数で返します。 -
RADIUS.NEW_AVP_UNSIGNED32指定した RADIUS AVP を符号なし整数で返します。 -
RADIUS.NEW_VENDOR_SPEC_AVP(<ID>, <definition>)指定された拡張ベンダー固有の AVP を接続に追加します。<ID>は 、長い数字に置き換えてください。<definition>は 、AVP のデータを含む文字列に置き換えてください。 -
RADIUS.REQ.AVP_STARTRADIUS ヘッダーの終わりと AVP の開始点の間の位置を返します。書き換えアクションで使用されます。例:
add rewrite action insert1 insert_after radius.req.avp_start radius.new_avp(33, "NEW AVP")
-
RADIUS.REQ.AVP_ENDRADIUSメッセージ内のRADIUSメッセージの最後 (つまり、すべてのAVPの最後) の位置を返します。書き換えアクションを実行するときに使用されます。例:
add rewrite action insert2 insert_before radius.req.avp_end "radius.new_avp(33, "NEW AVP")"
-
RADIUS.REQ.AVP_LISTRADIUS メッセージ内の AVP の開始位置と、ヘッダーを除く RADIUS メッセージの長さを返します。つまり、RADIUS メッセージ内のすべての AVP を返します。書き換えアクションを実行するために使用されます。例:
add rewrite action insert3 insert_before_all radius.req.avp_list "radius.new_avp(33, "NEW AVP")" -search "avp(33)"
-
INSERT_AFTER
-
INSERT_BEFORE
-
INSERT_AFTER_ALL
-
INSERT_BEFORE_ALL
-
削除
-
DELETE_ALL
-
REPLACE
-
REPLACE_ALL
INSERT_ actions これらすべてを使用して、RADIUS AVP を RADIUS 接続に挿入できます。
使用例
ユーザー名 AVP の書き換え
add rewrite action rwActRadiusDomainDel replace radius.req.user_name q/RADIUS.NEW_AVP(1,RADIUS.REQ.USER_NAME.VALUE.AFTER_STR(" "))/
add rewrite policy RadiusRemoveDomainPol true rwActRadiusDomainDel
ベンダー固有の AVP の挿入
add rewrite action rwActRadiusInsMSISDN insert_after radius.req.avp_start RADIUS.NEW_VENDOR_SPEC_AVP(<VENDOR ID>, "RADIUS.NEW_AVP(<Attribute Code>, <MSISDN>)")
add rewrite policy rwPolRadiusInsMSISDN true rwActRadiusInsMSISDN
bind rewrite global rwPolRadiusInsMSISDN 100 NEXT -type RADIUS_REQ_DEFAULT