Приглашения на регистрацию (invites)

Обзор

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

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

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

    • 1.1. Проверка наличия поля 'userid' в JSON-теле запроса. Домен тот же самый, куда авторизован админстратор.

    • 1.2. Создание сущности system/Invites с ограничением времени жизни в 3 дня.

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

  • 2. PATCH-запрос на изменение пароля.

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

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

    • 2.3. Отправка запроса на изменение пароля и опционально логина и имени в MDC и проверка политики сложности паролей.

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

Обслуживание производится микросервисами 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-адреса и с одного и того же IP-адреса.

Запрос

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

{
  "userid": "12341234-1234-1234-1234-123412341234"
}

Ответ

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

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

{
  "error_code": 1413,
  "error_message": "User not found."
}

Замена забытого пароля (без авторизации)

Шаг 2/2 двухэтапного алгоритма восстановления забытого пароля.

Поля login и name опциональны, по умолчанию не изменяются.

Запрос

Пример запроса
PATCH /rest/v1/iam/invites/602c559c-0183-a834-ee7d-7cd30a921f58 HTTP/1.1
Content-Type: application/json; charset=utf-8

{
  "pwd": "ew!hIb3V",
  "login": "mylogin",
  "name": "My Name"
}

Ответ

Пример успешного ответа
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, 151xx.