Спецификация службы регистрации
Служба регистриции сайтов
| Автор: | Крюков А.П. |
|---|---|
| Версия: | 0.1 |
Содержание:
Введение
В настоящем документе описывается спецификация на API Службы регистриции сайтов ГридННС - "RegServ". Основное назначение системы |---| регистрация сайтов ГридННС, их сервисов и администраторов сайтов и сервисов.,
Общие положения
Сайт
Сайт |---| это административный домен, в рамках которого управляются зарегистрированные службы и сервисы.
Службы и сервисы
Набор Веб-сервисов, которые предоставляются данным сайтом и управляются персоналом сайта.
Персонал сайта
Персонал сайта, зарегистрированные в Службе регистрации (далее СРРГ), который обеспечивает работ сайта и его сервисов. В чило персонала сайта, который должен быть зарегистрирован в СРРГ входят:
- менеджер сайта
- ответственный за безопасность сайта
- системый администратор службы/сервиса.
Допускается совмещение ряда ролей. Например системный администратор может обслуживать несколько служб и сервисов одноваременно. Таким образом минимальное количество персонала является три человека.
Менеджер сайта
Менеджер сайта отвечает за функционирование сайта в целом и является представителем собственика ресурсов, на которых развернуты службы и сервисы ГридННС, в вышестоящих органах ГридННС.
Ответственный за безопасность сайта
Ответственный за безопасность отвечает за безопасность сайта, сооветствие его эксплуатации регламентам ГридННС, а так же участвует в разборах инцендентов, связанных с безопасностью инфраструктуры ГридННС, в том числе предоставлении файлов-протоколов в случае их необходимости.
Системый администратор службы/сервиса
Системный администратор отвечает за устанвку, настройку и эксплуатацию сервиса на сайте в соответствии с регламентирующей локументацией.
API
Служьа СРРГ реализована как веб-сервис, следующий концепции REST, с представлением документов в виде JSON-документов.
Описание протокола
Используемые URI
Далее будем считать, что элементу |base| соответствует корневой URI всех сервисов, например, https://regserv.ngrid.ru/.
Ресурсы сервиса:
- <base>/sites/ |---| все сайты, зарегистрированные службой;
- <base>/sites/<site_name>/ |---| описание сайта;
- <base>/sites/<site_name>/management/ |---| список должностей персонала сайта;
- <base>/sites/<site_name>/management/manager/< |---| менеджер сайта;
- <base>/sites/<site_name>/management/manager_alt/< |---| заместитель менеджера сайта;
- <base>/sites/<site_name>/management/security/< |---| ответственный за безопасность;
Возможны и другие должности, которые должны войти в соответствующий сисок.
- <base>/sites/<site_name>/services/ |---| сервисы и службы, зарегистрированные для данного сайта;
- <base>/sites/<site_name>/services/<service_name>/ |---| сервис, зарегистрированные для данного сайта;
- <base>/sites/<site_name>/services/<service_name>/management/ |---| список лиц, обслуживающих этот сервис;
- <base>/sites/<site_name>/services/<service_name>/management/sysadmin/ |---| системный администратор службы;
- <base>/sites/<site_name>/services/<service_name>/EPR/ |---| End-point-refernce службы;
| URI | Метод | Действие | Входное представление | Выходное представление | Коды состояния |
| <base>/sites/ | GET | Сайтов | --- | Site List Format | 200_, 401_ |
| <base>/sites/ | POST | Создание нового сайта | `Site Format`_ | Site List Format | 201_, 400_, 401_, 412_ |
| <base>/sites/<site_name>/ | GET | Получение описание сайта | --- | `Site Format`_ | 200_, 401_, 404_ |
| <base>/jobs/<site_name>/ | PUT | Изменение параметров сайта. | `Site Modification Format`_ | --- | 204_, 401_, 404_ |
| <base>/jobs/<site_name>/ | DELETE | Удаление сайта. | --- | --- | 204_, 401_, 404_ |
Общие параметры запросов
При отправке всех запросов для установления https-соединения необходимо использовать прокси-сертификат пользователя, со всеми необходимыми расширениями.
Все запросы, отправляемые на сервер, имеющие не пустое тело, должны содержать заголовок Content-MD5. Все ответы сервера, имеющие не пустое тело, всегда содержат заголовок Content-MD5.
Коды состояния и ошибок
200 OK
Запрос обработан без ошибок, тело ответа содержит ответ на запрос в указанном выше формате.
201 Created
Запрос обработан без ошибок, ответ имеет пустое тело и заголовок Location, содержащий URI созданного ресурса.
204 No Content
Запрос обработан без ошибок, ответ имеет пустое тело, содержательонго ответа на запрос не предполагается по спецификации протокола. Такой ответ обычно является подтверждением удаления какого-либо ресурса.
400 Bad Request
Ошибка обработки запроса. Запрос содержал данные в неправильном формате, либо пытался изменить параметры, которые нельзя изменить. Тело ответа содержит подробное описание ошибки в формате `Error Format`_.
401 Unauthorized
Ошибка обработки запроса. Доступ к запрашиваемому объекту запрещен. Тело ответа содержит подробное описание ошибки в формате `Error Format`_.
404 Not Found
Ошибка обработки запроса. Запрашиваемый ресурс не существует. Тело ответа содержит подробное описание ошибки в формате `Error Format`_.
412 Precondition Failed
Ошибка обработки запроса. Контролная сумма тела запроса не соответствует заголовку Content-MD5 запроса. Тело ответа пустое.
Форматы данных
Все данные передаются в формате JSON. Формальные описания форматов приводятся в виде JSON Schema
Site List Format
Формальное описание
{ "description": "Список зарегистрированных сайтов",
"type": "array",
"items":
{ "type": "object",
"properties":
{ "site_name":
{ "type": "string",
"description": "Имя сайта",
"format": "string"
}
"additionalProperties": false
}
}
Назначение полей
Данный формат представляет собой список названий зарегистрированных сайтов. Каждое задание является объектом, у которого атрибут site_name является названием соответствующего сайта.
Пример списка заданий
[ { "site_name": "sinpNNN" },
{ "site_name": "jinrNNN" } ]
Site Creation Format
Формальное описание
{ "description": "Запрос на создание сайта",
"type": "array",
"items":
{
"type": "object",
"properties":
{ "manager":
{ "type": "string",
"description": "DN сертификата зарегистрированного пользователя СРРГ с ролью менеджера",
"format": "DN"
}
},
{ "site_name":
{ "type": "string",
"description": "Название сайта",
"format": "string"
}
}
}
"additionalProperties": false
}
Пример запроса
{
"manager": "C=RU, O=RDIG, OU=users, OU=sinp.msu.ru, CN=Alexander Kryukov",
"site_name": "sinpNNN"
]
