Проблема

На настоящий момент логины и пароли на доступы на каждую железку задаются независимо, что приводит к ряду неудобств:

Предлагаемое решение

Auth Profile

Вводим сущность AuthProfile, как множество Managed Object с совпадающими реквизитами доступа

ПолеТипConstraintОписание
idINTEGERNOT NULL PRIMARY KEYУникальный идентификатор
nameVARCHARNOT NULL UNIQUEУникальное название AuthProfile
typeVARCHAR

NOT NULL

Тип профиля. Одно из:

  • localgroup – локальная база пользователей для железки, при этом в пределах группы логины и пароли совпадают (административное ограничение)
  • radius – RADIUS authentication
  • tacplus – TACACS+ authentication
  • ldap - LDAP authentication
userVARCHAR Имя пользователя, используется NOC по умолчанию
passwordVARCHAR Пароль
super_passwordVARCHAR Пароль на дополнительные функции, в случае необходимости (enable для Cisco)
snmp_roVARCHAR SNMP RO community
snmp_rwVARCHAR SNMP RW community

Доработка ManagedObject

В таблицу sa_managedobject добавляется поле

ПолеТипConstraintОписание
auth_profile_idINTEGERREFERENCES sa_authprofileСсылка на AuthProfile

Алгоритм определения логина и пароля для доступа к железке

Авторизация пользователей в консоли

Добавляем коллекцию noc.console_credentials

ПолеТипОписание
_idObjectIdИдентификатор записи
userintИдентификатор пользователя NOC
auth_profileintИдентификатор auth profile
managed_objectintИдентификатор managed object'а (только для пустых auth_profile_id)
userstrИмя пользователя
passwordstrПароль

В профиле пользователя необходимо добавить поле

ПолеТипConstraintОписание
save_console_passwordBOOLEAN Сохранять ли пароли в консоли

Для определения имени пользователя и пароля для доступа на железку

Доработки SAE

В таблице map_task придется добавить поле credentials, с возможностью задавать логины и пароли для запуска скрипта

Дальнейшее развитие

Возможно создание каналов синхронизации для noc-sync для автоматического provisioning RADIUS и TACACS+ для централизованного управления учетными записями через NOC