RFC: 2866
Оригинал: RADIUS Accounting
Предыдущие версии: RFC 2059, RFC 2139
Категория: Информационный
Дата публикации:
Автор:
Перевод: Николай Малых

5. Атрибуты

Атрибуты RADIUS используются для передачи информации, связанной с аутентификацией и проверкой полномочий пользователей, а также учетом их работы.

Некоторые атрибуты могут присутствовать в пакете в нескольких экземплярах (это указывается ниже при описании атрибутов).

Завершение списка атрибутов определяется значением поля Length в пакетах RADIUS.

Формат атрибутов показан ниже. Поля атрибута передаются слева направо.

 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
  • Однооктетное поле, определяющее тип атрибута. Актуальные значения поля типа для атрибутов RADIUS вы можете узнать из последнего варианта документа Assigned Numbers [6]. Значения 192-223 предназначены для экспериментальных целей, значения 224-240 зарезервированы для разработчиков (специфические для реализации типы), а значения 241-255 являются резервными и не должны использоваться. Рассматриваемые в данной спецификации значения приведены в таблице.

    ЗначениеТип
    1-39См. спецификацию RADIUS [2]
    40Acct-Status-Type
    41Acct-Delay-Time
    42Acct-Input-Octets
    43Acct-Output-Octets
    44Acct-Session-Id
    45Acct-Authentic
    46Acct-Session-Time
    47Acct-Input-Packets
    48Acct-Output-Packets
    49Acct-Terminate-Cause
    50Acct-Multi-Session-Id
    51Acct-Link-Count
    60+См. спецификацию RADIUS [2]
  • Length
  • Однооктетное поле Length указывает размер данного атрибута с учетом полей Type, Length и Value. При получении атрибута с некорректно указанным размером в пакетах Accounting-Request, такие пакеты должны отбрасываться без уведомления.
  • Value
  • Необязательное поле Value содержит значение атрибута. Формат и размер значения атрибута определяются значениями полей Type и Length.

    Отметим, что ни один из типов RADIUS не использует в качестве завершения NUL-символ (hex 00). В частности, значения типа text и string в протоколе RADIUS не завершаются NUL-символом. Для каждого атрибута имеется поле размера, поэтому символы завершения не требуются. Значения типа text представляет собой последовательность символов в кодировке UTF-8 10646 [7], а значения типа string содержат 8-битовые бинарные данные. Серверы и клиенты RADIUS должны быть способны работать со строками, содержащими NUL-символы. При реализации RADIUS на основе языка C не следует использовать для обработки строк функцию strcpy().

    Значение атрибута может относиться к одному из пяти поддерживаемых типов данных. Отметим, что тип text является частным случаем (подмножеством) типа string.

    • text
    • от 1 до 253 октетов, содержащих символы в кодировке UTF-8 10646 [7]. Недопустима передача текстовых атрибутов нулевой длины. В таких случаях следует просто исключить атрибут.
    • string
    • от 1 до 253 октетов, содержащих бинарные данные (значения от 0 до 255, включительно). Недопустима передача string-атрибутов нулевой длины. В таких случаях следует просто исключить атрибут.
    • address
    • 32-битовое значение, первый октет является старшим.
    • integer
    • 32-битовое беззнаковое целое, первый октет является старшим.
    • time
    • 32-битовое беззнаковое целое (первый октет является старшим), показывающее число секунд, прошедших с 1 января 1970 г. (00:00:00 по Гринвичу — UTC). Стандартные атрибуты RADIUS не используют этот тип, но он добавлен для будущих расширений.
2007 - 2018 © Русские переводы RFC, IETF, ISOC.