Passa al contenuto principale

5. Attributes (Attributi)

Gli attributi RADIUS trasportano i dettagli specifici di autenticazione, autorizzazione e accounting per la richiesta e la risposta.

Alcuni attributi possono essere inclusi più di una volta. L'effetto è specifico dell'attributo ed è specificato in ciascuna descrizione di attributo.

La fine dell'elenco di attributi è indicata dal Length del pacchetto RADIUS.

Un riepilogo del formato dell'attributo è mostrato sotto. I campi sono trasmessi da sinistra a destra.

 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

Il campo Type è un octet. I valori aggiornati del campo RADIUS Type sono specificati nella RFC «Assigned Numbers» più recente [6]. I valori 192-223 sono riservati per uso sperimentale, i valori 224-240 sono riservati per uso specifico dell'implementazione, e i valori 241-255 sono riservati e non dovrebbero essere usati. Questa specifica riguarda i seguenti valori:

     1-39   (si veda il documento 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+ (si veda il documento RADIUS [2])

Length

Il campo Length è un octet e indica la lunghezza di questo attributo inclusi i campi Type, Length e Value. Se un attributo viene ricevuto in un Accounting-Request con un Length non valido, l'intera richiesta DEVE essere scartata silenziosamente.

Value

Il campo Value è zero o più octet e contiene informazioni specifiche dell'attributo. Il formato e la lunghezza del campo Value sono determinati dai campi Type e Length.

Si noti che nessuno dei tipi in RADIUS termina con un NUL (hex 00). In particolare, i tipi «text» e «string» in RADIUS non terminano con un NUL (hex 00). L'attributo ha un campo length e non usa un terminatore. Text contiene caratteri UTF-8 codificati secondo 10646 [7] e String contiene dati binari a 8 bit. Server e client DEVONO essere in grado di gestire null incorporati. Gli implementatori RADIUS che usano C sono avvertiti di non usare strcpy() nella gestione delle stringhe.

Il formato del campo value è uno di cinque tipi di dati. Si noti che il tipo «text» è un sottoinsieme del tipo «string».

  • text: 1-253 octet contenenti caratteri UTF-8 codificati secondo 10646 [7]. Testo di lunghezza zero (0) NON DEVE essere inviato; omettere l'intero attributo.

  • string: 1-253 octet contenenti dati binari (valori da 0 a 255 decimale, inclusi). Stringhe di lunghezza zero (0) NON DEVONO essere inviate; omettere l'intero attributo.

  • address: valore a 32 bit, octet più significativo per primo.

  • integer: valore senza segno a 32 bit, octet più significativo per primo.

  • time: valore senza segno a 32 bit, octet più significativo per primo, secondi da 00:00:00 UTC, 1 gennaio 1970. Gli attributi standard non usano questo tipo di dati ma è presentato qui per un possibile uso in attributi futuri.