メインコンテンツまでスキップ

5. Attributes (属性)

5. Attributes (属性)

RADIUS Attributes (属性) は、リクエストとレスポンスの特定の認証、認可、情報、および構成の詳細を伝えます。

Attributes リストの終わりは、RADIUS パケットの Length フィールドによって示されます。

一部の Attributes は複数回含まれる可能性があります。これの効果は Attribute 固有であり、各 Attribute の説明で指定されています。"Attributes" セクションの最後に要約表が提供されています。

同じ Type の複数の Attributes が存在する場合、同じ Type の Attributes の順序はすべてのプロキシによって保持されなければなりません。異なる Type の Attributes の順序を保持する必要はありません。RADIUS サーバーまたはクライアントは、異なるタイプの属性の順序に依存してはなりません。RADIUS サーバーまたはクライアントは、同じタイプの属性が連続していることを要求してはなりません。

Attribute の説明が、それを含めることができるパケットの種類を制限している場合、これはこの文書で定義されているパケットタイプ、すなわち Access-Request, Access-Accept, Access-Reject, Access-Challenge (コード 1, 2, 3, 11) にのみ適用されます。他のパケットタイプを定義する他の文書も、ここで説明されている Attributes を使用する場合があります。Accounting-Request および Accounting-Response パケット (コード 4 および 5) でどの Attributes が許可されているかを判断するには、RADIUS Accounting ドキュメント [5] を参照してください。

同様に、ここで定義されているパケットタイプが特定の Attributes のみが許可されていると述べている場合、新しい Attributes を定義する将来のメモは、新しい Attributes がどのパケットタイプに存在できるかを示す必要があります。

Attribute 形式の要約を以下に示します。フィールドは左から右に送信されます。

 0                   1                   2
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
| Type | Length | Value ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-

Type

Type フィールドは 1 オクテットです。RADIUS Type フィールドの最新の値は、最新の "Assigned Numbers" RFC [6] で指定されています。値 192-223 は実験的使用のために予約されており、値 224-240 は実装固有の使用のために予約されており、値 241-255 は予約されており使用すべきではありません。

RADIUS サーバーは、未知の Type の Attributes を無視してもよい。

RADIUS クライアントは、未知の Type の Attributes を無視してもよい。

この仕様は以下の値に関係します:

    1      User-Name
2 User-Password
3 CHAP-Password
4 NAS-IP-Address
5 NAS-Port
6 Service-Type
7 Framed-Protocol
8 Framed-IP-Address
9 Framed-IP-Netmask
10 Framed-Routing
11 Filter-Id
12 Framed-MTU
13 Framed-Compression
14 Login-IP-Host
15 Login-Service
16 Login-TCP-Port
17 (unassigned)
18 Reply-Message
19 Callback-Number
20 Callback-Id
21 (unassigned)
22 Framed-Route
23 Framed-IPX-Network
24 State
25 Class
26 Vendor-Specific
27 Session-Timeout
28 Idle-Timeout
29 Termination-Action
30 Called-Station-Id
31 Calling-Station-Id
32 NAS-Identifier
33 Proxy-State
34 Login-LAT-Service
35 Login-LAT-Node
36 Login-LAT-Group
37 Framed-AppleTalk-Link
38 Framed-AppleTalk-Network
39 Framed-AppleTalk-Zone
40-59 (reserved for accounting)
60 CHAP-Challenge
61 NAS-Port-Type
62 Port-Limit
63 Login-LAT-Port

Length

Length フィールドは 1 オクテットで、Type, Length, Value フィールドを含むこの Attribute の長度を示します。Access-Request で無効な Length の Attribute を受信した場合、Access-Reject を送信すべきです。Access-Accept, Access-Reject, または Access-Challenge パケットで無効な長さの Attribute を受信した場合、そのパケットは Access-Reject として扱われるか、静かに破棄されなければなりません。

Value

Value フィールドは 0 個以上のオクテットであり、Attribute に固有の情報を含みます。Value フィールドの形式と長さは、Type および Length フィールドによって決定されます。

RADIUS の型はいずれも NUL (16 進数 00) で終端しないことに注意してください。特に、RADIUS の "text" および "string" 型は NUL (16 進数 00) で終端しません。Attribute には長さフィールドがあり、終端記号を使用しません。Text には UTF-8 エンコードされた 10646 [7] 文字が含まれ、String には 8 ビットのバイナリデータが含まれます。サーバーとクライアントは、埋め込まれた null を処理できなければなりません。C を使用する RADIUS 実装者は、文字列を処理する際に strcpy() を使用しないように注意する必要があります。

value フィールドの形式は、5 つのデータ型のいずれかです。"text" 型は "string" 型のサブセットであることに注意してください。

  • text: UTF-8 エンコードされた 10646 [7] 文字を含む 1-253 オクテット。長さゼロ (0) の Text を送信してはなりません; 代わりに属性全体を省略してください。

  • string: バイナリデータ (値 0 から 255 の 10 進数、両端を含む) を含む 1-253 オクテット。長さゼロ (0) の Strings を送信してはなりません; 代わりに属性全体を省略してください。

  • address: 32 ビット値、最上位オクテットが先頭。

  • integer: 32 ビット符号なし値、最上位オクテットが先頭。

  • time: 32 ビット符号なし値、最上位オクテットが先頭 -- 1970 年 1 月 1 日 00:00:00 UTC からの秒数。標準 Attributes はこのデータ型を使用しませんが、将来の属性で使用される可能性があるためここに示されています。

属性の説明