Перейти к основному содержимому
Didit привлёк $7,5 млн на инфраструктуру для идентификации и борьбы с мошенничеством
Didit
В блог
Блог · 6 октября 2026 г.

Руководство по интеграции eID API: паттерны, код и безопасность

Руководство с кодом по интеграции национальных eID через eID API: перенаправление, push в приложение, QR, NFC-карта и OpenID4VP, что разработать, поля результата, резервные сценарии и чек-лист безопасности.

Автор: DiditОбновлено
eid-api-integration-guide-cover.png

Коротко

eID API позволяет вашему процессу регистрации запросить у национальной схемы электронного удостоверения личности (eID) аутентификацию человека и получить подписанные атрибуты личности. Каждая схема использует один из пяти шаблонов: перенаправление в браузере, push-запрос в приложение с кодом для сверки, QR-код или запуск приложения, считывание чип-карты по технологии ближней бесконтактной связи (NFC) или предъявление данных из европейского кошелька цифровой идентичности (EUDI Wallet) по протоколу OpenID for Verifiable Presentations (OpenID4VP).[2][6][8][14]

  • Подпись и уровень доверия вы всё равно проверяете сами.
  • Для большинства схем до первого вызова нужен договор, сертификат или сертифицированный брокер.[12][13][15]

Последняя проверка: 5 октября 2026 · Не является юридической консультацией

Это руководство с упором на код предназначено для инженеров, которые подключают национальные eID к онбордингу.

Как работает eID API: пять шаблонов взаимодействия

Ваша система выступает доверяющей стороной (relying party, RP). Она никогда не видит само средство идентификации, только подписанный ответ о человеке.

ШаблонЧто делает пользовательКак ваш бэкенд получает ответПример
Перенаправление (OpenID Connect, OIDC)Уходит с вашей страницы на страницу входа схемы, входит в систему, возвращаетсяКод авторизации, который обменивается на подписанный ID-токенID Austria, где вход через OIDC поддерживает только поток с кодом авторизации[6]
Push-запрос в приложение с кодомВводит персональный код, сверяет код на экране с кодом в приложении, вводит PIN в приложенииВы ждете подписанный результат или периодически опрашиваете схемуSmart-ID, Mobile-ID[10][20]
QR-код или запуск приложенияСканирует анимированный QR-код на компьютере, или приложение открывается на том же телефонеВы опрашиваете схему, пока запрос не будет завершенBankID Sweden[8]
Карта и NFCПрикладывает чип-карту к телефону, вводит PIN картыСервер eID считывает чип и возвращает атрибутыНемецкая карта eID[14]
Предъявление из кошелька (OpenID4VP)Подтверждает в приложении-кошельке, какими атрибутами поделитьсяПредъявление подписанных атрибутов с выборочным раскрытиемEUDI Wallet[2]

Некоторые схемы работают через публичный шлюз: эстонский TARA представляет собой шлюз с потоком authorization code, через который подключаются ID-карта, Smart-ID, Mobile-ID и eID других стран ЕС.[7] Какую модель использует каждая схема, см. в материале Схемы eID по странам.

Что разрабатываете вы и что берет на себя провайдер

Сначала доступ, потом код. В Дании каждый поставщик услуг обязан подключаться через сертифицированного брокера MitID.[12] В Швеции BankID приобретают у банка или реселлера и заказывают сертификат доверяющей стороны.[15] В Германии можно развернуть собственный eID-сервер, использовать размещенный у провайдера eID-сервис со своим сертификатом или работать через сервис идентификации и не иметь собственного сертификата.[13] Для EUDI Wallet доверяющая сторона должна зарегистрироваться в государстве-члене, в котором она учреждена.[1]

СлойНапрямую, по каждой схеме отдельноЧерез один eID API
Договоры и сертификатыОтдельно для каждой схемы, продление по графику каждой схемыИх держит провайдер; у вас один договор
Код протоколовOIDC, API с опросом (polling), eID-сервер, OpenID4VPОдин API сессий и единый формат результата
ЭкраныВыбор схемы, QR-код, код сверки, ошибки, для каждой схемыРазмещенный у провайдера сценарий или SDK
Проверка подписиНа вашей стороне, для ключа и формата каждой схемыВыполняет провайдер, результат передается в виде вердикта
Уровень доверияЗапрашиваете и проверяете выФиксируется в результате; политику по-прежнему задаете вы
Резервный вариант для людей без eIDВторой поставщик или ручная проверкаПроверка по документу в том же сценарии
Решение об онбордингеЗа вамиПо-прежнему за вами

Сертифицированные брокеры есть для большинства северных и балтийских схем. При большом объеме по одной схеме подключайтесь напрямую; если пользователи приходят из нескольких стран, используйте один API.

Поток с перенаправлением, шаг за шагом

Это поток OIDC с кодом авторизации. Ваш бэкенд перенаправляет браузер со случайными state и nonce, затем обменивает полученный код на ID-токен и проверяет его.

Пользователь Ваш бэкенд Провайдер eID
1Начинает регистрацию
2Перенаправление с state, nonce

Пользователь входит с помощью eID

3Код на ваш callback
4Обмен кода на токены
5Подписанный ID-токен

Проверка state, nonce, подписи, acr

6Учётная запись открыта

Вход с перенаправлением. Брокеры и шлюзы добавляют промежуточные переходы на шаге 2, но не новые шаги для вас.

Важнее всего проверка после шага 5. Согласно документации Digdir по ID-porten, клиент «ОБЯЗАН проверить, что уровень безопасности (acr) достаточно высок».[5] Понимайте acr как уровень доверия (LoA), который подтверждает схема, и отклоняйте всё, что ниже требований вашей политики.

Поток с push-уведомлением в приложении и кодом для сверки

При Smart-ID и Mobile-ID пользователь не покидает вашу страницу. Пользователь вводит личный идентификационный код (Mobile-ID также запрашивает номер телефона), ваша страница показывает короткий код, и тот же код появляется в приложении. Пользователь подтверждает операцию PIN-кодом на телефоне, только если коды совпадают.[20] Smart-ID также может показать три кода и попросить пользователя выбрать правильный.[10]

Подтвердите свою личность

Выберите способ проверки

Войдите с помощью электронного удостоверения личности, которым вы уже пользуетесь.

Smart-ID

1Пользователь выбирает eID из тех, что вы принимаете.

Подтвердите свою личность

Сверьте код

4821

Тот же код появляется в вашем приложении Smart-ID.

2Ваша страница проверки на используемом устройстве показывает код для сверки. Тот же код появляется в приложении.

Smart-ID

Введите PIN-код

Только если код совпадает с кодом на экране.

3Пользователь вводит PIN-код в приложении, никогда на вашей странице.

Подтвердите свою личность

Вы прошли верификацию

  • Полное имяПередается
  • Дата рожденияПередается
  • Персональный кодПередается
  • АдресНе передается

4Подписанные атрибуты поступают на ваш бэкенд.

BankID Sweden устроен так же, только вместо ввода кода используется QR. Пользователь открывает приложение на том же устройстве с помощью autostart-токена или сканирует анимированный QR-код на другом устройстве. Ваш бэкенд опрашивает /collect, пока заказ не завершится. Завершенный заказ содержит персональный номер, полное имя, имя и фамилию, а также данные об устройстве, подпись и необязательные поля оценки риска.[8] Smart-ID+ переводит Smart-ID на эту модель: динамический QR на десктопе, переход из приложения в приложение на мобильных устройствах. Пользователям больше не нужно вводить персональный код на сайте.[11]

Пользователь Ваш бэкенд API схемы Приложение схемы
1Вводит персональный код
2Показывает контрольный код
3Запускает запрос аутентификации
4Push-уведомление на телефон

Приложение показывает тот же код, пользователь вводит PIN

5Опрашивает результат
6Подписанный результат

Вход через Smart-ID или Mobile-ID в том порядке, в котором его видит пользователь: персональный код, контрольный код на вашей странице, тот же код в приложении, затем PIN.[20] В варианте BankID с QR шаг 1 исчезает, а на шаге 2 показывается QR-код.

Карта и NFC, а также EUDI Wallet через OpenID4VP

При использовании немецкой ID-карты с функцией eID пользователь прикладывает карту к телефону с NFC в приложении AusweisApp. По закону до ввода PIN приложение должно показать наименование и адрес поставщика услуги и запрашиваемые категории данных. Передаются только эти категории.[14]

По данным OpenID Foundation, OpenID4VP 1.0 является финальной спецификацией.[16] Architecture and Reference Framework (ARF) предусматривает следующие варианты удаленного предъявления: OpenID4VP через редиректы и пользовательские URI-схемы, например openid4vp://, OpenID4VP через W3C Digital Credentials API или ISO/IEC 18013-7 через этот API.[2][17] Прежде чем что-либо передать, кошелек проверяет подлинность вашего сертификата доступа, убеждается, что вы не запрашиваете больше атрибутов, чем зарегистрировали, и дает пользователю подтвердить каждый атрибут.[2] Портрет становится обязательным в данных идентификации личности (PID) только с 11 августа 2028, за исключением случаев, когда пользователь явно от него отказывается.[18]

  1. 23 июля 2026ARF v3.0.0Текущая версия рамочной архитектуры кошелька.
  2. 24 декабря 2026Срок для кошельковКаждое государство-член предоставляет как минимум один кошелек.
  3. 24 декабря 2027Обязательный приемЧастные доверяющие стороны, которые по закону или договору обязаны применять строгую аутентификацию пользователя, принимают кошелек по запросу пользователя. Микро- и малые предприятия освобождены.
  4. 11 августа 2028ПортретПортрет в PID становится обязательным, если пользователь от него не отказался.

Даты по EUDI Wallet, которые определяют дорожную карту eID API.[1][2][18]

В руководстве по EUDI Wallet описаны регистрация доверяющей стороны и готовность по странам.

Ошибки, резервные сценарии и повторные попытки

Вход заканчивается одним из исходов: завершен, отменен, истекло время ожидания или сбой. Последние три обрабатывайте одинаково и для каждой страны решайте, что происходит дальше.

1Предложите eID страны пользователя

Список допустимых схем для каждой страны, выбирает пользователь.

Вход завершен с действительной подписью и требуемым уровнем

Да

Сохраните подписанные атрибуты

Имя, дата рождения, идентификатор, уровень.

Нет

Переход на резервный путь или отказ

Документ с чтением чипа или завершение сессии.

2Проверка и решение

Примените собственные правила оценки риска к проверенным данным.

Никогда не повторяйте отменённый вход автоматически. Сделайте обработку callback идемпотентной, чтобы обновление страницы или повторное событие не могли открыть два аккаунта. Сохраните путь для людей без eID. Обычно это документ, удостоверяющий личность, с чтением чипа по NFC, проверкой liveness и сравнением лица. Этот путь описан в статье Проверка eID по NFC и безопасность чипа.

Чек-лист безопасности для интеграции eID API

  • Генерируйте новые state и nonce для каждого входа и отклоняйте callback, который им не соответствует.
  • Проверяйте подпись каждого токена или результата до чтения любого атрибута.
  • Проверяйте уровень доверия в результате, а не только в запросе.[5]
  • Требуйте уровень «существенный» или «высокий», если к вам применяется путь eID по AMLR.[3]
  • Никогда не принимайте PIN-код eID на своей странице. Его вводят в приложении схемы.[20]
  • Для входа с другого устройства используйте QR-код или запуск из приложения в приложение, а не ввод кодов вручную.[11]
  • Запрашивайте только те атрибуты, которые вы зарегистрировали и которые вам нужны.[1]
  • Проверяйте подписи и временные метки webhook, прежде чем доверять результату.

Правовая основа: Регламент о противодействии отмыванию денег (AMLR), который применяется с 10 июля 2027 года. Статья 22(6)(b) допускает «средства электронной идентификации, отвечающие требованиям Регламента (ЕС) № 910/2014 в отношении уровней доверия „существенный“ или „высокий“».[3] Не все схемы нотифицированы: MitID входит в список нотифицированных схем ЕС, Smart-ID нет.[4]

Обратите внимание

ARF предупреждает, что межустройственные сценарии с пользовательскими URI «уязвимы для фишинга и атак ретрансляции», и не рекомендует пользовательские схемы URI для предъявления с другого устройства.[2] По данным Computer Sweden, в июле 2019 года полиция сообщила о снижении телефонного мошенничества с BankID на 90% после внедрения QR-кодов.[9]

Как Didit помогает с интеграцией eID API

Didit объединяет пять действующих eID в одном API сессий (MitID, BankID Sweden, Finnish Trust Network, Smart-ID и Mobile-ID, в семи странах), с путём проверки по документу в том же рабочем процессе. Другие схемы есть в дорожной карте Didit, а приём EUDI Wallet скоро появится. Didit никогда не запрашивает PIN-код. Подробнее на странице цифровых ID-кошельков и в документации по кошелькам.[19]

Включите действующие eID по странам

В консоли: Workflows, шаг ID Verification, Countries, «Wallets accepted». Через API функция ID Verification (OCR) принимает объект methods с ключами в виде кодов стран ISO 3166-1 alpha-3, который передаётся в POST /v3/workflows/. Документированный фрагмент для Дании:[21]

{ "feature": "OCR", "config": { "methods": { "DNK": { "document": { "enabled": true }, "wallet": { "enabled": true, "providers": ["mitid"], "on_failure": "fallback_to_document" } } } } }

И для Эстонии, с приёмом обоих eID на базе телефона:[20]

{ "EST": { "document": { "enabled": true }, "wallet": { "enabled": true, "providers": ["smart_id", "mobile_id"], "on_failure": "fallback_to_document" } } }

providers является списком разрешённых провайдеров, а не рейтингом. on_failure принимает значение fallback_to_document или decline. Если кошелёк недоступен в вашей среде, сохранение отклоняется целиком, поэтому сначала изучите каталог.[21]

Скриншот ожидается: console-wallets-accepted

Выбор принимаемых eID для одной страны в консоли Didit.

Создайте сессию и получите результат

POST /v3/session/ с вашим workflow_id (и, при необходимости, vendor_data и callback) возвращает session_id, url и session_token. Откройте URL или используйте SDK.[24] Результат приходит через вебхук или GET /v3/session/{id}/decision/ с verification_method: "wallet", assurance: "cryptographic" и объектом wallet_verification.[19]

ПолеПримерЧто оно означает
providermitidКакой eID выбрал пользователь
issuing_authorityDanish Agency for Digital GovernmentКто стоит за идентичностью
issuing_countryDNKМаршрут идентификации, а не гражданство
level_of_assurancesubstantialУровень, заявленный схемой
signature_validtrueПодписанное утверждение прошло проверку
attributesfull_name, date_of_birth, cpr_aliasПроверенные атрибуты, названия зависят от eID
portrait, face_match_scorenullНи один действующий eID не передает фотографию

Если уровень ниже запрошенного, вход не проходит. Оплачиваются только завершённые входы.[19] Цены: MitID, Finnish Trust Network $0.25; BankID Sweden, Smart-ID, Mobile-ID $0.20.

Вебхуки и песочница

Проверяйте X-Signature-V2 с помощью секрета получателя, отклоняйте X-Timestamp старше 300 секунд и обеспечивайте идемпотентность по event_id. Неудачная доставка повторяется до двух раз.[22] В песочнице приложение может включить все кошельки, одобряет сессии без реального входа и предлагает wallet_cancelled, wallet_timeout и wallet_provider_error для проверки вашего резервного сценария.[23]

eIDСтраныУровень в DiditСтатус в Didit
MitIDДанияСущественныйДоступно
BankID SwedenШвецияСущественныйДоступно
Finnish Trust NetworkФинляндияСущественныйДоступно
Smart-IDЭстония, Латвия, Литва, БельгияВысокийДоступно
Mobile-IDЭстония, ЛитваВысокийДоступно
BankID NorwayНорвегияНе заданСкоро
Freja eIDШвецияНе указаноСкоро
itsmeБельгияНе указаноСкоро
iDINНидерландыНе указаноСкоро
Немецкая ID-карта с функцией eIDГерманияНе указаноСкоро
FranceConnectФранцияНе указаноСкоро
ID AustriaАвстрияНе указаноПо запросу
Cl@veИспанияНе указаноПо запросу
SPIDИталияНе указаноПо запросу
Swiss E-IDШвейцарияНе определеноПо запросу
EUDI WalletЕС и ЕЭЗНе определеноСкоро

Didit обеспечивает

  • Доступ к схемам, сертификаты и проверку подписи
  • Единый API сессий, размещенный сценарий и SDK
  • Проверку по документу с чтением NFC-чипа для пользователей без eID

Остается за вами

  • Какие eID принимать в каждой стране
  • Уровень доверия, которого требует ваша политика
  • Решение об онбординге и ответственность

Один eID API для всех стран, в которых вы работаете

Включайте действующие eID по странам, сохраняйте документы как резервный вариант и платите только за завершенные входы.

Начать бесплатноСвязаться с намиЧитать документацию

Главное

  • Каждая eID использует один из пяти шаблонов: перенаправление, push-уведомление в приложении с кодом, QR-код или запуск приложения, карта и NFC либо OpenID4VP.
  • Сначала нужен доступ: брокеры, договоры, сертификаты или регистрация.
  • Проверяйте подпись и уровень доверия в каждом результате.
  • Частные доверяющие стороны, которые по закону или договору обязаны применять строгую аутентификацию пользователей, должны принимать EUDI Wallet по запросу пользователя до 24 декабря 2027 (микро- и малые предприятия освобождены).

Часто задаваемые вопросы

Что такое eID API?

Это интерфейс, через который ваше приложение запрашивает у национальной схемы электронной идентификации или у провайдера, подключенного к нескольким схемам, аутентификацию человека и получает подписанные атрибуты личности. Подпись и уровень доверия в ответе вы по-прежнему проверяете сами.

Нужна ли отдельная интеграция для каждой схемы eID?

При прямом подключении да: у каждой схемы свой договор, сертификат и протокол. В Дании необходимо использовать сертифицированного брокера MitID, а BankID Sweden приобретается у банка или реселлера.[12][15] Единый eID API скрывает эти различия за одной сессией и одним форматом результата.

Какой протокол используют национальные eID?

Многие схемы используют OpenID Connect, часто через шлюз, например ID-porten или TARA.[5][7] Другие используют собственные API с опросом статуса (BankID Sweden, Smart-ID) или eID-сервер, который считывает чип-карту (Германия).[8][13] Кошелек EUDI использует OpenID4VP или ISO/IEC 18013-7.[2]

Какие данные возвращает вход через eID?

Это зависит от схемы. BankID Sweden возвращает персональный номер, полное имя, имя и фамилию.[8] Немецкая eID-карта передает только категории данных, указанные в сертификате поставщика услуг (§ 18(5)). Она не передает номер национального удостоверения личности, так как его нет в перечне § 18(3).[14]

Как обеспечить соблюдение уровня доверия?

Запрашивайте нужный уровень и проверяйте уровень, указанный в результате, например claim acr в OIDC. ID-porten указывает, что клиенты обязаны проверять, достаточно ли высок уровень доверия.[5] Считайте недостаточным все, что ниже уровня вашей политики, и не открывайте счет.

Что делать, если у пользователя нет eID или он отменил вход?

Для каждой страны решите, предлагать резервный способ или отказывать. Не повторяйте отмененный вход автоматически.

Как протестировать интеграцию eID без реальных пользователей?

Смоделируйте подтверждения, отмены и тайм-ауты в песочнице поставщика. Смоделированное подтверждение не доказывает, что реальный человек сможет пройти вход: перед запуском проведите санкционированный тест на реальном устройстве.[20]

Когда компании обязаны принимать кошелек EUDI?

Частные доверяющие стороны, которые по закону или договору обязаны применять строгую аутентификацию пользователей, должны принимать его по запросу пользователя до 24 декабря 2027. Микро- и малые предприятия освобождены от этого требования.[1]

Источники

  1. Регламент (ЕС) 2024/1183 (eIDAS 2), EUR-Lex, Официальный журнал от 30 апреля 2024, статьи 5a, 5b и 5f.
  2. Architecture and Reference Framework v3.0.0, проект Европейской комиссии EUDI Wallet, выпуск от 23 июля 2026, разделы 4.4.3, 5.7.1 и 6.6.3.
  3. Регламент (ЕС) 2024/1624 (AMLR), EUR-Lex, статья 22(6).
  4. Обзор предварительно уведомленных и уведомленных схем eID в рамках eIDAS, Европейская комиссия, просмотрено 5 октября 2026.
  5. ID-токен ID-porten, Агентство по цифровизации Норвегии (Digdir).
  6. Anbindung mit OpenID Connect, документация для разработчиков ID Austria.
  7. Техническая спецификация TARA, Департамент государственных информационных систем Эстонии (RIA).
  8. Auth and sign: collect, документация для разработчиков BankID.
  9. QR-koden gjorde susen: BankID-bedrägerierna ned med 90 procent, Computer Sweden, 3 июля 2019 (вторичный источник).
  10. Почему я иногда вижу один код подтверждения, а иногда три, Smart-ID.
  11. Как новый Smart-ID защищает меня от мошенничества, Smart-ID.
  12. Брокеры MitID, Агентство цифрового государственного управления Дании.
  13. Стать поставщиком услуг, AusweisApp, федеральное правительство Германии.
  14. Параграф 18 Закона о паспортах и удостоверениях личности (PAuswG), Gesetze im Internet.
  15. Подключите свою компанию к BankID, BankID.
  16. Утверждена финальная спецификация OpenID for Verifiable Presentations 1.0, OpenID Foundation.
  17. Digital Credentials, W3C.
  18. Имплементационный регламент Комиссии (ЕС) 2026/1731, EUR-Lex, портрет в PID с 11 августа 2028.
  19. Кошельки цифровой идентификации, документация Didit.
  20. Интеграция Smart-ID и Mobile-ID, документация Didit.
  21. Настройки функций рабочих процессов, документация Didit.
  22. Вебхуки, документация Didit.
  23. Песочница и тестовые данные, документация Didit.
  24. Быстрый старт, документация Didit.

Все национальные eID, их уровень и статус смотрите на странице верификации eID.

Запустите вход через eID без отдельного договора по каждой схеме

Начните с уже работающих eID, подключайте схемы по мере того, как они нужны вашим пользователям, а для всех остальных сохраните проверку по документам.

Начать бесплатноСвязаться с нами

Инфраструктура для идентификации и борьбы с мошенничеством.

Единый API для KYC, KYB, мониторинга транзакций и проверки кошельков. Интеграция за 5 минут.

Попросите ИИ кратко изложить эту страницу