Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents

Мета

Цей WS дозволяє отримати nonce (одноразовий JWT) для активного клієнта системи.

Ключові положення

  1. Даний метод REST використовується тільки активними клієнтами системи.

Специфікація

Apiary

Перевірити запит

  • Перевірити, що client_id вказано

    • в разі помилки - повернути 422 ('can't be blank')

  • Перевірити, що client_id існує в базі даних mithril

    • в разі помилки - повернути 404 ('Client is not found.')

  • Перевірити, що client_id не заблоковано (is_blocked != true)

    • в разі помилки - повернути 401 ('Client is blocked')

Перевірити тип клієнта

  • Отримати client_type з client_id

  • Перевірити, що client_secretвказано, якщо client_type = TRUSTED_PIS

    • в разі помилки - повернути 422 ('required property <property> was not present')

  • Перевірити, що client_secret належить клієнту (через таблицю взаємозв'язків)

    • в разі помилки - повернути 401 ('Invalid client id or secret.')

Сервісна логіка

  1. Отримати значення JWT TTL з env параметру JWT_LOGIN_TTL (в хвилинах).

  2. Згенерувати JWT з наступними параметрами:

    1. alg = HS512

    2. aud = trusted-client if client_type = TRUSTED_PIS, інакше mithril-login

    3. exp = iat + JWT_LOGIN_TTL

    4. iat = now()

    5. iss = EHealth

    6. jti = згенерувати uuid для JWT

    7. nbf = now() - 1 секунда

    8. nonce = згенерувати uuid для nonce

    9. sub = nonce

    10. typ = access

  3. Відобразити відповідь у віповідності до специфікації.