Запросы на восстановление паролей (pwd_reset_requests)

Обзор

Производит управление самостоятельными регистрациями пользователей.

Двухэтапный алгоритм:

  • 1. POST-запрос от неавторизованного пользователя на отправку письма со ссылкой подтверждения email-адреса.

    • 1.1. Проверка наличия полей 'domain', 'login', 'name', 'email' в JSON-теле запроса. Домен из списка разрешающих самостоятельную регистрацию (defaults.json, Settings поля 'self_register_*').

    • 1.2. Проверяет корректность заданных значений, при необходимости проверяет уникальность.

    • 1.3. Создание сущности system/SelfRegisterRequests с ограничением времени жизни в 1 день.

    • 1.4. Отправка письма на почту пользователя со ссылкой, содержащей UUID запроса на регистрацию. Ссылка ведет на системное веб-приложение /app-root, однако она содержит идентификатор, который может быть применен для непосредственного вызова API запросом PATCH.

  • 2. PATCH-запрос на подтверждение email и назначение пароля.

    • 2.1. Проверка наличия поля 'pwd' в JSON-теле запроса.

    • 2.2. Проверка актуальности приглашения на основании идентификатора, переданного в URL.

    • 2.3. Отправка запроса на создание учетной записи пользователя в MDC и проверка политики сложности паролей.

    • 2.4. В случае успеха удаление сущности system/SelfRegisterRequests.

Создаваемая учетная запись пользователя формируется объединением шаблона (настройка домена 'self_register_template') и заданных в ходе самостоятельной регистрации значений: 'name', 'login', 'pwd', 'opts.email'. Идентификатор генерируется случайно. Выставляется в 'true' поле 'opts.self_registered'.

Обслуживание производится микросервисами mware, email, ws.

Для успешной отправки писем необходимо настроить профиль почтового сервера, учетную запись почтового сервера и выставить ей флаг 'isSystem'.

Запросы

HTTP verb Endpoint Описание

POST

/rest/v1/iam/pwd_reset_requests

Отправка приглашения

PATCH

/rest/v1/iam/pwd_reset_requests/<id>

Подтверждение почтового ящика и установка пароля


Отправка приглашения

Шаг 1/2 двухэтапного алгоритма самостоятельной регистрации.

Создает заготовку учетной записи пользователя и отправляет email для подтверждения электронного адреса.

Выполняется неавторизованным пользователем.

В качестве домена может быть указан только существующий домен, разрешающий самостоятельную регистрацию (настройка 'self_register_allowed').

Запрос разрешено проводить не чаще чем 1 раз в 2 минуты с одного и того же IP-адреса.

Запрос

Пример запроса
POST /rest/v1/iam/self_register_requests HTTP/1.1
Content-Type: application/json; charset=utf-8

{
  "domain": "pbx.era-platform.ru",
  "login": "my_login",
  "name": "My Name",
  "email": "my.address@email.com",
}

Ответ

Пример успешного ответа
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8

{
  "error_code": 0,
  "result": true,
  "result_msg": "Check your email box for confirmation URL"
}
Пример неудачного ответа
HTTP/1.1 412 Precondition failed
Content-Type: application/json; charset=utf-8

{
  "error_code": 1501,
  "error_message": "login already exists",
  "error_details":{
    "field": "login"
  }
}

Подтверждение почтового ящика и установка пароля

Шаг 2/2 двухэтапного алгоритма самостоятельной регистрации.

Запрос

Пример запроса
PATCH /rest/v1/iam/self_register_requests/19738eb3-0183-b148-9420-7cd30a921f58 HTTP/1.1
Content-Type: application/json; charset=utf-8

{
  "pwd": "ew!hIb3V"
}

Ответ

Пример успешного ответа
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8

{
  "error_code": 0,
  "result": true,
  "result_msg": "Now login with new password",
  "user":{
    "domain": "pbx.era-platform.ru",
    "login": "mylogin"
  }
}
Пример неудачного ответа
HTTP/1.1 412 Precondition failed
Content-Type: application/json; charset=utf-8

{
  "error_code": 1501,
  "error_message": "pwd contains invalid symbols. Expected: A-Za-z0-9_-.~!",
  "error_details":{
    "field": "pwd"
  }
}

Коды ошибок

Возможные типы сообщений (поле 'error_details.msg_code'): 100xx, 101xx, 102xx, 152xx.