◄ Назад
Документация
Изтеглете сорс кода на демо система, написана на .net и js, която използва тази услуга за реализиране на вход чрез КЕП.

Бърз тест
/Api/GetParsed Разчита и валидира КЕП или друг клиентски сертификат от текущия connection. Връща JSON. Вижте също раздел "Валидиране".
/Api/GetRaw Оставя разчитането и валидирането във Вашите ръце.
/Api/GetFile Изтегля клиентския сертификат във файл.
JS тест на GetParsed Вижте сорс кода
За production цели
/Api/GetKey Запомня клиентския сертификат и връща ключ за изтеглянето му с валидност 1 минута.
/Api/GetKey?keep=300 Така ключът е с валидност 5 минути. Максимумът е 1 час (keep=3600).
/Api/GetParsed?key=... Валидира и връща запомнения сертификат. Изтрива ключа. Вижте също раздел "Валидиране".
/Api/GetParsed?key=...&keep=180 Така запазва ключа за още 3 минути.
/Api/GetRaw?key=...
/Api/GetFile?key=...

Как се ползва:
  1. Извикайте /Api/GetKey от browser-а. Потребителят ще бъде поканен да избере клиентски сертификат.
  2. Подайте получения key на Вашия сървър.
  3. Извикайте /Api/GetParsed?key=... от сървъра, без клиентски сертификат.
    Целта е Вашият сървър да получи информацията за клиентския сертификат директно от тази услуга, а не от browser-а.
    Информацията не е подписана от тази услуга. Клиентът (browser, Postman, Burp Suite или друго) може да излъже, като подаде на Вашия сървър информация за произволен КЕП.
  4. Като минимум, проверете subject.pid и trust.isTrusted, т.е. дали има ЕГН/ЛНЧ и дали издетелят е доверен.
Услугата извлича, каквото е възможно от произволен клиентски сертификат, но маркира isTrusted само за български КЕП. Вижте също раздел "Валидиране".

Валидиране
Може да промените валидирането на GetParsed, като подадате други вериги на издадели в HTTP header "X-Client-Cert-Chain".
Query параметри на GetParsed:
- ignoreDefaultCa Дали да се зачитат И веригите на българските издадели (false) или само изрично подадените (true). По подразбиране false.
- caHeader Име на друг HTTP header, различен от "X-Client-Cert-Chain", в който са записани допълнителните вериги на издадели.
Пример с custom header /Api/GetParsed?caHeader=Custom-Authorities&ignoreDefaultCa=true

Валидиране на чужд сертификат
/Api/ParseHeader Прочита сертификата от HTTP header "X-Client-Cert", а не от текущия connection.
/Api/ParseHeader?header=... Прочита сертификата от друг HTTP header.
Пример с всички опции /Api/ParseHeader?header=Custom-Cert&caHeader=Custom-Authorities&ignoreDefaultCa=true
Тест на валидирането ►

Видове грешки
400 Bad Request Не е подаден клиентски сертификат. Потребителят е затворил диалога за избор на сертификат или няма инсталиран такъв.
400 Bad Request Невалиден параметър keep.
400 Bad Request Невалиден header "X-Client-Cert" или "X-Client-Cert-Chain", или съответните custom имена.
404 Not Found Невалиден, изтекъл или използван параметър key.
403 Forbidden Не връща такава грешка.