Guia d'integració d'una API d'eID: patrons, codi i seguretat
Guia centrada en el codi per integrar eID nacionals amb una API d'eID: fluxos de redirecció, push a l'app, QR, targeta NFC i OpenID4VP, què cal construir, camps de resultat, alternatives i una llista de control de seguretat.

En resum
Una API d'eID permet que el vostre procés de registre demani a un sistema nacional d'identificació electrònica (eID) que autentiqui una persona i retorni atributs d'identitat signats. Cada sistema fa servir un d'aquests cinc patrons: una redirecció al navegador, una notificació push a l'app amb un codi de comparació, un codi QR o l'obertura d'una app, una targeta amb xip llegida per comunicació de camp proper (NFC), o una presentació des de la cartera europea d'identitat digital (EUDI Wallet) mitjançant OpenID for Verifiable Presentations (OpenID4VP).[2][6][8][14]
- Tot i així, comproveu la signatura i el nivell de garantia.
- La majoria de sistemes exigeixen un contracte, un certificat o un intermediari certificat abans de la primera crida.[12][13][15]
Aquesta guia centrada en el codi és per a enginyers que afegeixen eID nacionals a l'alta de clients.
Com funciona una API d'eID: cinc patrons d'interacció
El vostre sistema és la part usuària (RP). Mai no veu la credencial en si, només una resposta signada sobre la persona.
| Patró | Què fa l'usuari | Com rep la resposta el vostre backend | Exemple |
|---|---|---|---|
| Redirecció (OpenID Connect, OIDC) | Surt de la vostra pàgina cap a l'inici de sessió del sistema, s'hi identifica i torna | Un codi d'autorització, que s'intercanvia per un token d'identitat signat | ID Austria, l'inici de sessió OIDC del qual només admet el flux de codi d'autorització[6] |
| Notificació push a l'app amb un codi | Introdueix un codi personal, compara el codi de la pantalla amb el de l'app i introdueix el PIN a l'app | Espereu o consulteu periòdicament fins a obtenir un resultat signat | Smart-ID, Mobile-ID[10][20] |
| Codi QR o obertura d'una app | Escaneja un QR animat en un ordinador, o l'app s'obre al mateix telèfon | Consulteu periòdicament el sistema fins que l'ordre es completa | BankID Sweden[8] |
| Targeta i NFC | Acosta la targeta amb xip al telèfon i introdueix el PIN de la targeta | Un servidor d'eID llegeix el xip i retorna els atributs | Carnet d'identitat electrònic alemany[14] |
| Presentació des de la cartera (OpenID4VP) | Aprova en una app de cartera quins atributs comparteix | Una presentació d'atributs signats i divulgats de manera selectiva | Cartera europea d'identitat digital (EUDI Wallet)[2] |
Alguns sistemes funcionen darrere d'una passarel·la pública: TARA, d'Estònia, és una passarel·la de codi d'autorització situada davant del document d'identitat, Smart-ID, Mobile-ID i les eID de la UE.[7] Vegeu Sistemes d'eID per país per saber quin patró fa servir cada sistema.
Què construïu vosaltres i què gestiona un proveïdor
L'accés va abans que el codi. A Dinamarca, tot proveïdor de serveis ha de passar per un intermediari certificat de MitID.[12] A Suècia, compreu BankID a un banc o a un revenedor i sol·liciteu un certificat de part usuària.[15] A Alemanya, podeu gestionar el vostre propi servidor eID, fer servir un servei eID allotjat amb el vostre propi certificat o fer servir un servei d'identificació sense tenir cap certificat propi.[13] Per a la cartera europea d'identitat digital (EUDI Wallet), una part usuària s'ha de registrar a l'Estat membre on està establerta.[1]
| Capa | Directament, sistema per sistema | A través d'una única API d'eID |
|---|---|---|
| Contractes i certificats | Un per sistema, renovat segons el cicle de cada sistema | Els té el proveïdor; vosaltres teniu un sol contracte |
| Codi de protocol | OIDC, API de consulta periòdica (polling), un servidor eID, OpenID4VP | Una sola API de sessió i un sol format de resultat |
| Pantalles | Selector, QR, codi de comparació, errors, per sistema | Flux allotjat o SDK |
| Verificació de la signatura | Us correspon a vosaltres, segons la clau i el format de cada sistema | La fa el proveïdor, que la comunica com a veredicte |
| Nivell de garantia | Us correspon sol·licitar-lo i verificar-lo | Queda registrat al resultat; la política encara la definiu vosaltres |
| Alternativa per a persones sense eID | Un segon proveïdor o una via manual | Una via documental dins del mateix flux |
| La decisió d'alta | Us correspon a vosaltres | Continua sent cosa vostra |
Hi ha intermediaris certificats per a la majoria dels sistemes nòrdics i bàltics. Connecteu-vos directament si treballeu amb un sol sistema i un volum alt; feu servir una sola API quan els usuaris vénen de diversos països.
El flux de redirecció, pas a pas
Aquest és el flux de codi d'autorització d'OIDC. El vostre backend envia el navegador a fora amb un state i un nonce aleatoris, després intercanvia el codi retornat per un ID token i el comprova.
L'usuari inicia la sessió amb l'eID
Comproveu state, nonce, signatura i acr
Un inici de sessió per redirecció. Els intermediaris i les passarel·les afegeixen salts al pas 2, no passos nous per a vosaltres.
La comprovació després del pas 5 és la més important. Segons la documentació d'ID-porten de Digdir, el client «HA DE validar que el nivell de seguretat (acr) és prou alt».[5] Llegiu acr com el nivell de garantia (LoA) que afirma el sistema, i rebutgeu qualsevol valor per sota de la vostra política.
El flux de notificació a l'app amb un codi de comparació
Smart-ID i Mobile-ID no surten mai de la vostra pàgina. L'usuari escriu un codi d'identificació personal (Mobile-ID també demana el número de telèfon), la vostra pàgina mostra un codi curt i el mateix codi apareix a l'app. L'usuari aprova amb el PIN al telèfon només quan els codis coincideixen.[20] Smart-ID també pot mostrar tres codis i demanar a l'usuari que triï el correcte.[10]
Tria com vols verificar-te
Inicia la sessió amb la identificació electrònica que ja fas servir.
Smart-ID
Fes servir un document d'identitat
1L'usuari tria un eID d'entre els que accepteu.
Comprova el codi
4821
El mateix codi apareix a la teva app Smart-ID.
2La vostra pàgina de verificació, al dispositiu que s'està fent servir, mostra un codi de comparació. El mateix codi apareix a l'app.
Introdueix el PIN
Només si el codi coincideix amb el de la pantalla.
3L'usuari escriu el PIN a l'app, mai a la vostra pàgina.
Estàs verificat
- Nom completCompartit
- Data de naixementCompartida
- Codi personalCompartit
- AdreçaNo compartida
4Els atributs signats arriben al vostre backend.
BankID Sweden segueix el mateix esquema, però amb un QR en lloc d'un codi escrit. L'usuari obre l'app al mateix dispositiu amb un token d'inici automàtic, o escaneja un QR animat que es mostra a l'altre dispositiu. El vostre backend consulta /collect fins que l'ordre es completa. L'ordre completada inclou el número personal, el nom, el nom de pila i el cognom, a més de camps de dispositiu, de signatura i, opcionalment, de risc.[8] Smart-ID+ porta Smart-ID a aquest model (QR dinàmic a l'ordinador, d'app a app al mòbil), de manera que els usuaris ja no escriuen un codi personal en un lloc web.[11]
L'app mostra el mateix codi i l'usuari introdueix el PIN
Un inici de sessió amb Smart-ID o Mobile-ID, en l'ordre en què el veu l'usuari: codi personal, codi de comparació a la vostra pàgina, el mateix codi a l'app i, després, el PIN.[20] En la variant QR de BankID, el pas 1 desapareix i el pas 2 mostra un codi QR.
Targeta i NFC, i la cartera europea d'identitat digital (EUDI Wallet) amb OpenID4VP
Amb el carnet d'identitat electrònic alemany, l'usuari apropa la targeta a un telèfon amb NFC a l'AusweisApp. Abans que l'usuari introdueixi el PIN, la llei obliga l'app a mostrar el nom i l'adreça del proveïdor i les categories de dades sol·licitades. Només s'envien aquestes categories.[14]
Segons l'OpenID Foundation, OpenID4VP 1.0 és una especificació final.[16] L'Architecture and Reference Framework (ARF) recull aquestes vies de presentació remota: OpenID4VP mitjançant redireccions i esquemes d'URI personalitzats com openid4vp://, OpenID4VP mitjançant la W3C Digital Credentials API, o ISO/IEC 18013-7 mitjançant aquesta API.[2][17] Abans de compartir res, la cartera autentica el vostre certificat d'accés, comprova que no demaneu més atributs dels que vau registrar i permet a l'usuari aprovar-los un per un.[2] El retrat només esdevé obligatori a les dades d'identificació de la persona (PID) a partir de l'11 d'agost de 2028, excepte quan l'usuari hi renunciï expressament.[18]
- 23 de juliol de 2026ARF v3.0.0Versió actual del marc de la cartera.
- 24 de desembre de 2026Termini de les carteresCada estat membre ofereix almenys una cartera.
- 24 de desembre de 2027AcceptacióLes parts usuàries privades obligades per llei o per contracte a utilitzar una autenticació forta de l'usuari l'accepten a petició de l'usuari. Les microempreses i les petites empreses n'estan exemptes.
- 11 d'agost de 2028RetratEl retrat de la PID esdevé obligatori llevat que l'usuari hi renunciï.
Dates de l'EUDI Wallet que condicionen el full de ruta d'una API d'eID.[1][2][18]
La guia de l'EUDI Wallet explica el registre de les parts usuàries i el grau de preparació per país.
Errors, alternatives i reintents
Un inici de sessió acaba completat, cancel·lat, caducat o fallit. Tracta els tres últims casos de la mateixa manera i decideix per país què passa després.
1Oferiu les eID del país de l'usuari
Llista d'acceptació per país. L'usuari tria.
L'inici de sessió s'ha completat amb una signatura vàlida i el nivell requerit
Deseu els atributs signats
Nom, data de naixement, identificador, nivell.
Alternativa o rebuig
Document amb lectura del xip, o finalitzeu la sessió.
2Feu el cribratge i decidiu
Apliqueu les vostres pròpies regles de risc a les dades verificades.
No tornis a intentar mai automàticament un inici de sessió cancel·lat. Fes que el callback sigui idempotent, perquè una recàrrega o un esdeveniment duplicat no pugui obrir dos comptes. Mantén una via per a les persones sense eID, normalment un document d'identitat amb lectura del xip NFC, prova de vida i comparació facial. La verificació d'eID per NFC i la seguretat del xip explica aquesta via.
Llista de control de seguretat per a una integració d'API d'eID
- Genera un
statei unnoncenous per a cada inici de sessió i rebutja qualsevol callback que no hi coincideixi. - Verifiqueu la signatura de cada token o resultat abans de llegir cap atribut.
- Comproveu el nivell de garantia en el resultat, no només en la sol·licitud.[5]
- Exigeix el nivell substancial o alt quan se t'apliqui la via d'eID de l'AMLR.[3]
- No recullis mai el PIN de l'eID a la teva pàgina; correspon a l'app del sistema.[20]
- Prioritzeu el codi QR o l'obertura d'app a app per davant dels codis escrits en els inicis de sessió entre dispositius.[11]
- Sol·liciteu només els atributs que heu registrat i que necessiteu.[1]
- Verifica les signatures i les marques de temps dels webhooks abans de confiar en un resultat.
L'ancoratge legal és el Reglament contra el blanqueig de capitals (AMLR), aplicable a partir del 10 de juliol de 2027: l'article 22(6)(b) admet "mitjans d'identificació electrònica que compleixin els requisits del Reglament (UE) núm. 910/2014 pel que fa als nivells de garantia 'substancial' o 'alt'".[3] No tots els sistemes estan notificats: MitID és a la llista de la UE de sistemes notificats, Smart-ID no.[4]
Atenció
L'ARF adverteix que els fluxos entre dispositius amb URI personalitzats "són vulnerables a atacs de phishing i de retransmissió" i no recomana els esquemes d'URI personalitzats per a la presentació entre dispositius.[2] Segons Computer Sweden, la policia va informar el juliol de 2019 d'una caiguda del 90% de les estafes telefòniques amb BankID després de la introducció dels codis QR.[9]
Com us ajuda Didit amb la integració d'API d'eID
Didit ofereix cinc eID en funcionament darrere d'una única API de sessions (MitID, BankID Sweden, Finnish Trust Network, Smart-ID i Mobile-ID, en set països), amb una via documental en el mateix flux de treball. Hi ha més sistemes al full de ruta de Didit, i l'acceptació de la cartera europea d'identitat digital (EUDI Wallet) arribarà aviat. Didit no demana mai el PIN. Més informació a la pàgina de carteres d'identitat digital i a la documentació de les carteres.[19]
Activeu les eID en funcionament per país
A la consola: Workflows, el pas ID Verification, Countries, "Wallets accepted". Per API, la funció ID Verification (OCR) rep un objecte methods indexat pel codi de país ISO 3166-1 alpha-3, enviat amb POST /v3/workflows/. El fragment documentat per a Dinamarca:[21]
{ "feature": "OCR", "config": { "methods": { "DNK": { "document": { "enabled": true }, "wallet": { "enabled": true, "providers": ["mitid"], "on_failure": "fallback_to_document" } } } } }
I per a Estònia, acceptant totes dues eID basades en el telèfon:[20]
{ "EST": { "document": { "enabled": true }, "wallet": { "enabled": true, "providers": ["smart_id", "mobile_id"], "on_failure": "fallback_to_document" } } }
providers és una llista d'acceptació, no una classificació. on_failure és fallback_to_document o decline. Una cartera que no està disponible al teu entorn fa que es rebutgi tot el desament, així que consulta primer el catàleg.[21]
Captura de pantalla pendent: console-wallets-accepted
Selecció de les eID acceptades per a un país a la consola de Didit.
Crea una sessió i llegeix el resultat
POST /v3/session/ amb el teu workflow_id (i opcionalment vendor_data i un callback) retorna session_id, url i session_token. Obre l'URL o fes servir l'SDK.[24] El resultat arriba per webhook o per GET /v3/session/{id}/decision/, amb verification_method: "wallet", assurance: "cryptographic" i un objecte wallet_verification.[19]
| Camp | Exemple | Què us indica |
|---|---|---|
provider | mitid | Quina eID ha triat l'usuari |
issuing_authority | Danish Agency for Digital Government | Qui avala la identitat |
issuing_country | DNK | La via d'identificació, no la nacionalitat |
level_of_assurance | substantial | El nivell que ha declarat el sistema |
signature_valid | true | L'asserció signada s'ha verificat correctament |
attributes | full_name, date_of_birth, cpr_alias | Declaracions validades. Els noms varien segons l'eID |
portrait, face_match_score | null | Cap eID en funcionament comparteix un retrat |
Un nivell inferior al sol·licitat fa que l'inici de sessió falli. Només es facturen els inicis de sessió completats.[19] Preus: MitID, Finnish Trust Network $0.25; BankID Sweden, Smart-ID, Mobile-ID $0.20.
Webhooks i entorn de proves
Verifiqueu X-Signature-V2 amb el secret de la vostra destinació, rebutgeu qualsevol X-Timestamp de més de 300 segons d'antiguitat i baseu la idempotència en event_id. Un lliurament fallit es reintenta fins a dues vegades.[22] Una aplicació a l'entorn de proves pot activar totes les carteres, aprova sense un inici de sessió real i ofereix wallet_cancelled, wallet_timeout i wallet_provider_error per provar la vostra alternativa.[23]
| eID | Països | Nivell a Didit | Estat a Didit |
|---|---|---|---|
| MitID | Dinamarca | Substancial | En funcionament |
| BankID Sweden | Suècia | Substancial | En funcionament |
| Finnish Trust Network | Finlàndia | Substancial | En funcionament |
| Smart-ID | Estònia, Letònia, Lituània, Bèlgica | Alt | En funcionament |
| Mobile-ID | Estònia, Lituània | Alt | En funcionament |
| BankID Norway | Noruega | No definit | Properament |
| Freja eID | Suècia | No definit | Properament |
| itsme | Bèlgica | No definit | Properament |
| iDIN | Països Baixos | No definit | Properament |
| Carnet d'identitat electrònic alemany | Alemanya | No definit | Properament |
| FranceConnect | França | No definit | Properament |
| ID Austria | Àustria | No definit | A petició |
| Cl@ve | Espanya | No definit | A petició |
| SPID | Itàlia | No definit | A petició |
| E-ID suïssa | Suïssa | No definit | A petició |
| Cartera europea d'identitat digital (EUDI Wallet) | UE i EEE | No definit | Properament |
Didit proporciona
- Accés als sistemes, certificats i verificació de la signatura
- Una única API de sessió, flux allotjat i SDK
- La via documental amb lectura del xip NFC per als usuaris sense eID
Queda a les vostres mans
- Quines eID acceptar a cada país
- El nivell de garantia que exigeix la vostra política
- La decisió d'incorporació del client i la responsabilitat
Una sola API d'eID per a tots els països on opereu
Activeu les eID en funcionament per país, mantingueu els documents com a alternativa i pagueu només pels inicis de sessió completats.
Punts clau
- Totes les eID fan servir un d'aquests cinc patrons: redirecció, notificació push a l'app amb un codi, QR o obertura de l'app, targeta i NFC, o OpenID4VP.
- Primer cal l'accés: intermediaris, contractes, certificats o registre.
- Comproveu la signatura i el nivell de garantia de cada resultat.
- Les parts usuàries privades obligades per llei o per contracte a utilitzar una autenticació forta de l'usuari han d'acceptar la cartera europea d'identitat digital (EUDI Wallet) a petició de l'usuari com a màxim el 24 de desembre de 2027 (les microempreses i les petites empreses n'estan exemptes).
Preguntes freqüents
Què és una API d'eID?
És una interfície que permet a la vostra aplicació demanar a un sistema nacional d'identificació electrònica, o a un proveïdor que es connecta a diversos sistemes, que autentiqui una persona i retorni atributs d'identitat signats. Tot i així, vosaltres continueu comprovant la signatura i el nivell de garantia de la seva resposta.
Necessito una integració diferent per a cada sistema d'eID?
Si hi aneu directament, sí: cada sistema té el seu propi contracte, certificat i protocol. A Dinamarca cal fer servir un intermediari de MitID certificat, i BankID Sweden es compra a un banc o a un revenedor.[12][15] Una sola API d'eID amaga aquestes diferències darrere d'una única sessió i un únic format de resultat.
Quin protocol fan servir les eID nacionals?
Molts utilitzen OpenID Connect, sovint a través d'una passarel·la com ID-porten o TARA.[5][7] Altres utilitzen les seves pròpies API de consulta periòdica (polling) (BankID Sweden, Smart-ID) o un servidor d'eID que llegeix una targeta amb xip (Alemanya).[8][13] La cartera europea d'identitat digital (EUDI Wallet) utilitza OpenID4VP o ISO/IEC 18013-7.[2]
Quines dades retorna un inici de sessió amb eID?
Depèn del sistema. BankID Sweden retorna el número personal, el nom, el nom de pila i el cognom.[8] El carnet d'identitat electrònic alemany envia només les categories de dades indicades al certificat del proveïdor (§ 18(5)), i no el número d'identificació nacional de la targeta, que la llista del § 18(3) no inclou.[14]
Com puc fer complir el nivell de garantia?
Sol·liciteu el nivell que necessiteu i comproveu el nivell declarat al resultat, com ara la declaració acr a OIDC. ID-porten indica que els clients han de validar que el nivell de seguretat és prou alt.[5] Considereu insuficient qualsevol nivell per sota de la vostra política i no obriu el compte.
Què ha de passar quan un usuari no té eID o cancel·la el procés?
Decidiu per a cada país entre una alternativa i un rebuig. No torneu a intentar automàticament un inici de sessió cancel·lat.
Com puc provar una integració d'eID sense usuaris reals?
Simuleu aprovacions, cancel·lacions i temps d'espera esgotats a l'entorn de proves (sandbox) del proveïdor. Una aprovació simulada no demostra que una identitat real pugui iniciar sessió: feu una prova autoritzada amb un dispositiu real abans del desplegament.[20]
Quan han d'acceptar les empreses la cartera europea d'identitat digital (EUDI Wallet)?
Les parts usuàries privades obligades per llei o per contracte a utilitzar l'autenticació forta d'usuari l'han d'acceptar a petició de l'usuari com a màxim el 24 de desembre de 2027. Les microempreses i les petites empreses n'estan exemptes.[1]
Fonts
- Reglament (UE) 2024/1183 (eIDAS 2), EUR-Lex, Diari Oficial del 30 d'abril de 2024, articles 5a, 5b i 5f.
- Architecture and Reference Framework v3.0.0, projecte EUDI Wallet de la Comissió Europea, publicat el 23 de juliol de 2026, seccions 4.4.3, 5.7.1 i 6.6.3.
- Reglament (UE) 2024/1624 (AMLR), EUR-Lex, article 22(6).
- Overview of pre-notified and notified eID schemes under eIDAS, Comissió Europea, consultat el 5 d'octubre de 2026.
- ID token d'ID-porten, Agència Noruega de Digitalització (Digdir).
- Anbindung mit OpenID Connect, documentació per a desenvolupadors d'ID Austria.
- Especificació tècnica de TARA, Autoritat del Sistema d'Informació d'Estònia (RIA).
- Auth and sign: collect, documentació per a desenvolupadors de BankID.
- QR-koden gjorde susen: BankID-bedrägerierna ned med 90 procent, Computer Sweden, 3 de juliol de 2019 (font secundària).
- Per què de vegades veig un codi de confirmació i de vegades tres, Smart-ID.
- Com em protegeix del frau el nou Smart-ID, Smart-ID.
- Intermediaris de MitID, Agència Danesa per al Govern Digital.
- Esdevenir proveïdor de serveis, AusweisApp, Govern federal alemany.
- Secció 18 de la Llei de passaports i documents d'identitat (PAuswG), Gesetze im Internet.
- Connecteu la vostra empresa a BankID, BankID.
- Aprovada l'especificació final d'OpenID for Verifiable Presentations 1.0, OpenID Foundation.
- Digital Credentials, W3C.
- Reglament d'Execució (UE) 2026/1731 de la Comissió, EUR-Lex, retrat al PID a partir de l'11 d'agost de 2028.
- Carteres d'identitat digital, documentació de Didit.
- Integració de Smart-ID i Mobile-ID, documentació de Didit.
- Configuració de funcions dels fluxos de treball, documentació de Didit.
- Webhooks, documentació de Didit.
- Sandbox i dades de prova, documentació de Didit.
- Inici ràpid, documentació de Didit.
Consulteu cada eID nacional, el seu nivell i el seu estat a la pàgina de verificació amb eID.
Activeu l'inici de sessió amb eID sense un contracte per a cada sistema
Comenceu amb les eID en funcionament, afegiu sistemes a mesura que els vostres usuaris els necessitin i mantingueu els documents per a la resta.
Articles relacionats
- Integració de Cl@ve a Espanya: qui s'hi pot connectar i què fer servir en lloc seu
- Verificació PhilSys: com comproven les empreses el National ID
- Guia OpenID4VP: verificar i acceptar la cartera europea d'identitat digital (EUDI Wallet)
- Reglament eIDAS explicat: què canvia eIDAS 2 (2024/1183)
- API de Smart-ID: guia de la RP API v3 per a desenvolupadors
- Identitat digital nacional al món: models, líders i estàndards