リライト機能に対する RADIUS のサポート
-
RADIUS ユーザ名 AVP のドメイン部分を削除して、シングルサインオン(SSO)を簡素化します。
-
電話会社の操作で使用される MSISDN フィールドなど、ベンダー固有の AVP を挿入し、加入者情報を格納します。
-
Citrix ADCは、書き換えられた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 要求 ID を返します。この番号は、各要求に割り当てられた番号で、要求を対応する応答に一致させることができます。 num_at クラスの導関数です。 -
RADIUS.REQ.AVP(<AVP Code No>).VALUE型 text_tの文字列として、このAVPの最初の出現の値を返します。 -
RADIUS.REQ.AVP(<AVP code no>).INSTANCE(instance number)AVP の指定されたインスタンスを RAVP_t 型の文字列として返します。特定の RADIUS AVP は、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メッセージからアカウントセッション 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