Перейти к содержанию

Авторизационная модель Телеметрии

Сервис идентификации (IdentityService)

Домен Телеметрии работает с удостоверяющими сервисами сегмента "Ключ"

Сервис ресурсов (ResourceService)

Сервисы управления бизнес-сущностями Телеметрии. Имеют методы для привязки ресурсов к группам пользователей.

Группы пользователей (UserGroup)

Администраторы

Группа определяется Типом пользователя Ключа type=admin Заводится группа

  {
   "id": 1234,
   "title": "Администраторы",
   "requirements": [
           {
            "key": "key_user_type",
            "value": "admin"
           }
   ]
  }

Привязываются все существующие разрешения

Сотрудник БТИ

Для каждого филиала создана группа вида

  {
   "id": 1234,
   "title": "БТИ-МРФ-Центр",
   "requirements": [
           {
            "key": "key_user_type",
            "value": "bti"
           },
           {
            "key": "key_mrf",
            "value": "1"
           }
   ],
   "claims": [
           {
            "key": "permission",
            "value": "telemetry:group:edit"
           }
   ]
  }

Разрешения привязываются Администратором

permission
Создание/редактирование группы для Подрядчика telemetry:group:edit
Создание/редактирование юзера для Подрядчика telemetry:user:edit
Добавление юзеру разрешения на Добавление юзера в собственные группы telemetry:user_permission:edit:user_group_own_group
Добавление юзера в собственные группы telemetry:user:edit:add_own_group
Назначение группы (Кроме admin) юзеру telemetry:user:edit_group:except_admin
Привязка ПУ своего филиала к группе подрядчика telemetry:device_group_access:edit:own
Привязка Строения своего филиала к группе подрядчика telemetry:building_group_access:edit:own
Просмотр страницы UI telemetry:web:view:foo

Администратор привязывает строения к группе в соответствии с привязкой строений к МРФ

ГРЗУК

Для каждого филиала создана группа вида

  {
   "id": 1234,
   "title": "ГРЗУК-МРФ-Центр",
   "requirements": [
           {
            "key": "key_user_type",
            "value": "seller"
           },
           {
            "key": "key_mrf",
            "value": "1"
           }
   ],
   "claims": [
           {
            "key": "permission",
            "value": "telemetry:group:edit"
           }
   ]
  }

Разрешения создаются и привязываются Администратором

permission
Создание/редактирование группы для УК, РСО telemetry:group:edit
Создание/редактирование юзера для УК, РСО telemetry:user:edit
Добавление юзеру разрешения на Добавление юзера в собственную группу telemetry:user_permission:edit:user_group_own_group
Добавление юзера в собственную группу telemetry:user:edit:add_own_group
Назначение группы (Кроме admin) юзеру telemetry:user:edit_group:except_admin
Привязка ПУ своего филиала к группе УК, РСО telemetry:device_group_access:edit:own
Привязка Строения своего филиала к группе УК, РСО telemetry:building_group_access:edit:own
Просмотр страницы UI telemetry:web:view:foo

Администратор привязывает строения к группе в соответствии с привязкой строений к МРФ

Подрядчик-строитель

Для каждого ЮЛ соответствующий БТИ создает группу вида

  {
   "id": 1234,
   "title": "НафНафСтрой",
   "requirements": [
           {
            "key": "company_id",
            "value": "4321"
           }
   ],
   "claims": [
           {
            "key": "permission",
            "value": "telemetry:group:edit"
           }
   ]
  }

БТИ создает создает и привязывает к группе разрешения для управления ресурсами, привязанными к группе подрядчика.

permission
Изменение статуса дома своей группы telemetry:building:edit:own
Просмотр дома своей GROUP telemetry:building:read:own

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

  {
   "id": 1235,
   "title": "НафНафСтрой Админ",
   "requirements": [
           {
            "key": "key_user_type",
            "value": "owner"
           },
           {
            "key": "company_id",
            "value": "4321"
           }
   ],
   "claims": [
           {
            "key": "permission",
            "value": "telemetry:user:edit:add_own_group"
           }
   ]
  }
permission
Добавление юзера в собственную группу telemetry:user:edit:add_own_group

БТИ привязывает строения к группе в соответствии с зоной ответственности Подрядчика-строителя

Сотрудник Ресурсо-снабжающая организация

Для каждого ЮЛ соответствующий ГРЗУК создает группу вида

  {
   "id": 1234,
   "title": "НафНафРСО",
   "requirements": [
           {
            "key": "company_id",
            "value": "4321"
           }
   ],
   "claims": [
           {
            "key": "permission",
            "value": "telemetry:group:edit"
           }
   ]
  }

ГРЗУК создает создает и привязывает к группе разрешения для управления ресурсами, привязанными к группе РСО.

permission
Изменение статуса дома своей группы telemetry:device:edit:own
Просмотр дома своей кампании telemetry:building:read:own

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

  {
   "id": 1235,
   "title": "НафНафРСО Админ",
   "requirements": [
           {
            "key": "key_user_type",
            "value": "owner"
           },
           {
            "key": "company_id",
            "value": "4321"
           }
   ],
   "claims": [
           {
            "key": "permission",
            "value": "telemetry:user:edit:add_own_group"
           }
   ]
  }
permission
Добавление юзера в собственную группу telemetry:user:edit:add_own_group

ГРЗУК привязывает строения и ПУ к группе в соответствии с зоной ответственности РСО

Владелец и сотрудник УК ЮЛ

Для каждого ЮЛ соответствующий ГРЗУК создает группу вида

  {
   "id": 1234,
   "title": "НафНафУК",
   "requirements": [
           {
            "key": "company_id",
            "value": "4321"
           }
   ],
   "claims": [
           {
            "key": "permission",
            "value": "telemetry:group:edit"
           }
   ]
  }

ГРЗУК создает создает и привязывает к группе разрешения для управления ресурсами, привязанными к группе.

permission
Управление приборами своей УК telemetry:device:edit:own
Просмотр дома своей УК telemetry:building:read:own

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

  {
   "id": 1235,
   "title": "НафНафУК Админ",
   "requirements": [
           {
            "key": "key_user_type",
            "value": "owner"
           },
           {
            "key": "company_id",
            "value": "4321"
           }
   ],
   "claims": [
           {
            "key": "permission",
            "value": "telemetry:user:edit:add_own_group"
           }
   ]
  }
permission
Добавление юзера в собственную группу telemetry:user:edit:add_own_group

ГРЗУК привязывает строения и ПУ к группе в соответствии с зоной ответственности УК

Вендор метрик

Администратор создает группу с требованием невозможных атрибутов для того, чтобы группа была доступна только для доступа по Api-Key.

  {
   "id": 1234,
   "title": "ООО Источник",
   "requirements": [
           {"key": "not_for_token", "value": "no_any_token"},
           {"key": "no_token_at_all", "value": "without_token"}
   ],
   "claims": [
           {
            "key": "permission",
            "value": "telemetry:group:edit"
           }
   ]
  }

Администратор создает и привязывает к группе разрешения для управления ресурсами, привязанными к группе подрядчика.

permission
Просмотр ПУ своей группы telemetry:device:read:own

Администратор привязывает строения и ПУ к группе в соответствии с зоной ответственности вендора. Администратор выпускает Api-Key для этой группы и передает его вендору метрик.

Житель

Администратор создает группу вида

  {
   "id": 1234,
   "title": "Пользователи ключа",
   "requirements": [
           {
            "key": "key_user_type",
            "value": "master"
           }
   ],
   "claims": [
           {
            "key": "permission",
            "value": "telemetry:room_layout:read:own"
           }
   ]
  }
permission
получить отчет по своей(FIAS_ID - ROOM_ID) дом-квартире telemetry:room_layout:read:own

Отчет по квартире строится по полученной в атрибутах пользователя квартире

Сервис управления доступом (AccessService)

Используется абстрактный сервис управления доступом. Справочники сервиса наполняются группами и разрешениями специфичными для Телеметрии