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

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Current »

Мета

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

  • No labels