Авторизационная модель Телеметрии¶
Сервис идентификации (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)¶
Используется абстрактный сервис управления доступом. Справочники сервиса наполняются группами и разрешениями специфичными для Телеметрии