Zum Hauptinhalt springen

5. Attributes (Attribute)

5. Attributes (Attribute)

RADIUS Attributes (Attribute) übertragen die spezifischen Authentifizierungs-, Autorisierungs-, Informations- und Konfigurationsdetails für die Anfrage und Antwort.

Das Ende der Attributes-Liste wird durch die Länge des RADIUS-Pakets angezeigt.

Einige Attributes können mehrfach enthalten sein. Die Wirkung ist Attribute-spezifisch und wird in jeder Attribute-Beschreibung angegeben. Eine Zusammenfassungstabelle wird am Ende des Abschnitts "Attributes" bereitgestellt.

Wenn mehrere Attributes mit demselben Type vorhanden sind, muss die Reihenfolge der Attributes mit demselben Type von allen Proxies beibehalten werden. Die Reihenfolge der Attributes verschiedener Types muss nicht beibehalten werden. Ein RADIUS-Server oder -Client darf keine Abhängigkeiten von der Reihenfolge der Attribute verschiedener Typen haben. Ein RADIUS-Server oder -Client darf nicht verlangen, dass Attribute desselben Typs zusammenhängend sind.

Wenn die Beschreibung eines Attributes einschränkt, in welchen Paketarten es enthalten sein kann, gilt dies nur für die in diesem Dokument definierten Pakettypen, nämlich Access-Request, Access-Accept, Access-Reject und Access-Challenge (Codes 1, 2, 3 und 11). Andere Dokumente, die andere Pakettypen definieren, können ebenfalls die hier beschriebenen Attributes verwenden. Um zu bestimmen, welche Attributes in Accounting-Request- und Accounting-Response-Paketen (Codes 4 und 5) zulässig sind, siehe das RADIUS Accounting-Dokument [5].

Ebenso sollten zukünftige Memos, die neue Attributes definieren, angeben, in welchen Pakettypen die neuen Attributes vorhanden sein können, wenn hier definierte Pakettypen angeben, dass nur bestimmte Attributes in ihnen zulässig sind.

Eine Zusammenfassung des Attribute-Formats wird unten gezeigt. Die Felder werden von links nach rechts übertragen.

 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

Das Type-Feld ist ein Oktett. Aktuelle Werte des RADIUS Type-Feldes sind im neuesten "Assigned Numbers" RFC [6] spezifiziert. Die Werte 192-223 sind für experimentelle Nutzung reserviert, die Werte 224-240 sind für implementierungsspezifische Nutzung reserviert, und die Werte 241-255 sind reserviert und sollten nicht verwendet werden.

Ein RADIUS-Server kann Attributes mit einem unbekannten Type ignorieren.

Ein RADIUS-Client kann Attributes mit einem unbekannten Type ignorieren.

Diese Spezifikation betrifft die folgenden Werte:

    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

Das Length-Feld ist ein Oktett und gibt die Länge dieses Attributes einschließlich der Felder Type, Length und Value an. Wenn ein Attribute in einem Access-Request empfangen wird, aber mit einer ungültigen Length, sollte ein Access-Reject übertragen werden. Wenn ein Attribute in einem Access-Accept-, Access-Reject- oder Access-Challenge-Paket mit einer ungültigen Länge empfangen wird, muss das Paket entweder als Access-Reject behandelt oder stillschweigend verworfen werden.

Value

Das Value-Feld enthält null oder mehr Oktetts und enthält Informationen, die spezifisch für das Attribute sind. Das Format und die Länge des Value-Feldes werden durch die Felder Type und Length bestimmt.

Beachten Sie, dass keiner der Typen in RADIUS mit einem NUL (hex 00) endet. Insbesondere enden die Typen "text" und "string" in RADIUS nicht mit einem NUL (hex 00). Das Attribute hat ein Längenfeld und verwendet keinen Terminator. Text enthält UTF-8 kodierte 10646 [7] Zeichen und String enthält 8-Bit-Binärdaten. Server und Clients müssen in der Lage sein, eingebettete Nullen zu verarbeiten. RADIUS-Implementierer, die C verwenden, sollten beim Umgang mit Strings darauf achten, strcpy() nicht zu verwenden.

Das Format des Value-Feldes ist einer von fünf Datentypen. Beachten Sie, dass der Typ "text" eine Teilmenge des Typs "string" ist.

  • text: 1-253 Oktetts, die UTF-8 kodierte 10646 [7] Zeichen enthalten. Text der Länge null (0) darf nicht gesendet werden; lassen Sie stattdessen das gesamte Attribut weg.

  • string: 1-253 Oktetts, die Binärdaten enthalten (Werte 0 bis 255 dezimal, einschließlich). Strings der Länge null (0) dürfen nicht gesendet werden; lassen Sie stattdessen das gesamte Attribut weg.

  • address: 32-Bit-Wert, höchstwertiges Oktett zuerst.

  • integer: 32-Bit-Wert ohne Vorzeichen, höchstwertiges Oktett zuerst.

  • time: 32-Bit-Wert ohne Vorzeichen, höchstwertiges Oktett zuerst -- Sekunden seit 00:00:00 UTC, 1. Januar 1970. Die Standard-Attributes verwenden diesen Datentyp nicht, aber er wird hier für eine mögliche Verwendung in zukünftigen Attributen präsentiert.

Attributbeschreibungen