Шаг 1. Чтобы хоть что-то полезное работало
Рассмотрим самую простую систему, работающую на одном сервере. Там работает экземпляр платформы (программы).
Кейс: администратор домена выполняет API-метод для создания учетной записи другого пользователя.
Веб-сервер (роль WS) – приложение платформы «Era», которое открывает на сервере HTTP порт для обслуживания API, и обрабатывает поступающие туда API-запросы. Поступает HTTP запрос – обрабатывается, отправляется ответ, подключение закрывается. Основной формат данных во всех API – JSON.
Основной объем полезных действий WS осуществляет только после авторизации (атрибут качества "защищенность"). Авторизация может производиться отдельным API-запросом, создавая сессию на Cookie-файлах, либо параметры авторизации указываются в каждом API-запросе к системе – логин и пароль. Система при этом должна заранее знать о существовании этого пользователя. Знает она о нем через сущность учетной записи пользователя (user), которая содержится в одном из доменов. Таким образом пользователь для выполнения API должен указать свои домен, логин и пароль.
Администратор домена – это особый пользователь, учетной записи которого выделена роль позволяющая выполнять запросы на управление сущностями домена, в частности просматривать, создавать, удалять, изменять (CRUD) учетные записи других пользователей домена.
или детальнее
Итак,
-
Администратор домена выполняет HTTP запрос к серверу с установленной системой на порт HTTP, открытый веб-сервером. Осуществляет его к странице управления учетными записями (/api/crud/v1/user/create). В API-запросе он указывает домен, логин, пароль, а также другие параметры конкретного API-метода (в приведенном примере это data).
-
WS осуществляет проверку наличия указанной учетной записи в домене путем запроса к доменному центру (роль DC).
-
При наличии у учетной записи роли позволяющей выполнять запросы на управление сущностями домена WS авторизует запрос и передает его на исполнение доменному центру. Иначе ответ с ошибкой на API запрос.
-
Доменный центр проверяет корректность параметров запроса и осуществляет CRUD-операцию создания учетной записи пользователя в домене администратора. Если параметры некорректны, то ответ с ошибкой на API-запрос (содержит причину). Затем
-
сохраняет учетную запись в своей оперативной памяти,
-
проводит запрос на добавление пользователя в таблицу пользователей в БД этого домена, подключенной к доменному центру.
-
фиксирует в таблице истории изменений той же БД факт проведенной операции с упоминанием всех [модифицированных] полей.
-
Похожим образом создаются дочерние домены. Усложняющая разница, важная на этом этапе, состоит в том, что создание домена включает в себя создание новой базы данных в DomainDB. Соответственно запрос выполняется дольше и имеет больше вариантов ошибок.
Термин | Определение |
---|---|
|
! |
|
! |
|
! |
|
! |
|
! |
|
! |
|
! |
|
! |
|
! |
|
! |
-
Какая роль обслуживает web-api запросы?
-
Какие существуют способы авторизации для выполнения запросов?
-
Какие данные необходимо указать для авторизации?
-
Какой ролью доступа должен обладать пользователь для создания учетной записи нового пользователя?
-
Какая роль выполняет операцию создания учетной записи?