5. Attributes (属性)
5. Attributes (属性)
RADIUS Attributes (RADIUS属性) は, 要求と応答に対する認証, 認可, アカウンティングの具体的な詳細を運びます.
一部の属性は複数回含めてもよい. その効果は属性ごとに異なり, 各属性の説明で規定されます.
属性リストの終端は RADIUS パケットの Length によって示されます.
属性形式の要約を以下に示します. フィールドは左から右へ送信されます.
0 1 2
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | Value ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type
Type フィールドは 1 オクテットです. RADIUS Type フィールドの最新の値は, 最新の "Assigned Numbers" RFC [6] で規定されます. 値 192-223 は実験用に予約され, 224-240 は実装固有の利用のために予約され, 241-255 は予約され使用すべきではない. 本仕様が扱う値は次のとおりです.
1-39 (RADIUS 文書 [2] を参照)
40 Acct-Status-Type
41 Acct-Delay-Time
42 Acct-Input-Octets
43 Acct-Output-Octets
44 Acct-Session-Id
45 Acct-Authentic
46 Acct-Session-Time
47 Acct-Input-Packets
48 Acct-Output-Packets
49 Acct-Terminate-Cause
50 Acct-Multi-Session-Id
51 Acct-Link-Count
60+ (RADIUS 文書 [2] を参照)
Length
Length フィールドは 1 オクテットであり, Type, Length および Value フィールドを含む当該属性の長さを示します. Accounting-Request で無効な Length を伴う属性を受信した場合, 要求全体を黙って破棄しなければならない.
Value
Value フィールドはゼロ個以上のオクテットであり, 属性固有の情報を含みます. Value フィールドの形式と長さは Type および Length フィールドによって決まります.
RADIUS の型のいずれも NUL (16 進 00) で終端しません. 特に RADIUS の "text" および "string" 型は NUL (16 進 00) で終端しません. 属性には長さフィールドがあり, 終端記号は用いません. Text には UTF-8 で符号化された 10646 [7] 文字が含まれ, String には 8 ビットバイナリデータが含まれます. サーバおよびクライアントは, 埋め込まれたヌル (null) を扱えなければならない. C を用いる RADIUS 実装者は, 文字列の扱いに strcpy() を用いないよう注意すること.
Value フィールドの形式は 5 つのデータ型のいずれかです. "text" 型は "string" 型の部分集合であることに注意してください.
text
1-253 オクテットの UTF-8 で符号化された 10646 [7] 文字. 長さゼロ (0) のテキストは送信してはならない, 代わりに属性全体を省略する.
string
1-253 オクテットのバイナリデータ (10 進 0 から 255 までの値を含む). 長さゼロ (0) の文字列は送信してはならない, 代わりに属性全体を省略する.
address
32 ビット値, 最上位オクテットが先.
integer
32 ビット符号なし値, 最上位オクテットが先.
time
32 ビット符号なし値, 最上位オクテットが先, 1970 年 1 月 1 日 00:00:00 UTC からの秒. 標準属性はこのデータ型を用いませんが, 将来の属性での利用のためにここに示します.