ЕСОЗ - публічна документація

UA_Get nonce

Мета

Цей 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. Відобразити відповідь у віповідності до специфікації.

ЕСОЗ - публічна документація