7. Infrastruttura del Registro¶
L'ecosistema IT-Wallet opera attraverso un'Infrastruttura del Registro che fornisce definizioni standardizzate dei dati, registrazione delle entità e capacità di discovery delle Credenziali. Il sistema di registro è composto da molteplici componenti interconnessi che supportano il ciclo di vita completo delle operazioni sulle Credenziali digitali, dall'onboarding delle entità alla presentazione delle Credenziali.
L'architettura del registro risponde ai requisiti di standardizzazione semantica, gestione della fiducia federata e discovery delle Credenziali attraverso componenti specializzati che garantiscono interoperabilità e conformità nell'intero ecosistema.
7.1. Panoramica dell'Architettura di Registro¶
Il Registro di Sistema IT-Wallet comprende sei componenti principali:
Registro dei Claims: Definizioni semantiche standardizzate per i singoli attributi delle Credenziali, i tipi di dati e le regole di validazione.
Registro delle Fonti Autentiche (FA): Catalogo dei fornitori di dati registrati con le loro capacità dichiarate e i claim disponibili.
Registro della Federazione: Elenco autorevole delle entità fidate che partecipano alla federazione con le loro configurazioni tecniche.
Catalogo delle Credenziali Digitali: Meccanismo pubblico di discovery per le tipologie di Credenziale disponibili con i loro metadati e le informazioni di emissione.
Registro degli Schemi: Elenco autorevole degli Schemi di Credenziale.
Tassonomia: Sistema di classificazione gerarchica che organizza le Credenziali per dominio e finalità.
Questi componenti del registro sono interconnessi e mantenuti dall'Organismo di Vigilanza per garantire coerenza, sicurezza e conformità normativa nell'intero ecosistema.
7.2. Endpoint di Discovery del Registro¶
Il Trust Anchor DEVE fornire un meccanismo di discovery per tutti i componenti del registro attraverso endpoint well-known standardizzati che forniscono metadati e informazioni di discovery REST API per gestire operazioni complesse come paginazione e filtraggio.
Il Trust Anchor DEVE pubblicare i metadati di discovery del registro all'endpoint .well-known/it-wallet-registry con supporto alla negoziazione del contenuto:
Content-Type predefinito:
application/jwt(JWT firmato che garantisce autenticità e integrità)Content-Type alternativo:
application/json(JSON semplice per scopi di sviluppo/debug)
Inoltre, il Registro di Sistema IT-Wallet DEVE utilizzare due distinti pattern di accesso:
API dei Registri Dati: DEVONO supportare capacità di paginazione e filtraggio.
Infrastruttura di Fiducia della Federazione: come definito in L'Infrastruttura di Trust.
Di seguito è riportato un esempio non normativo.
GET /.well-known/it-wallet-registry HTTP/1.1
Host: trust-anchor.eid-wallet.example.it
Accept: application/jwt
HTTP/1.1 200 OK
Content-Type: application/jwt
eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...
GET /.well-known/it-wallet-registry HTTP/1.1
Host: trust-anchor.eid-wallet.example.it
Accept: application/json
HTTP/1.1 200 OK
Content-Type: application/json
7.2.1. Parametri dell'Endpoint di Discovery del Registro¶
Il payload JWT della risposta dell'Endpoint di Discovery del Registro DEVE contenere i seguenti parametri:
Nome Campo |
Descrizione |
|---|---|
id |
OBBLIGATORIO. Identificatore univoco del documento di discovery (es. |
version |
OBBLIGATORIO. Versione del formato del documento di discovery (es. |
last_updated |
OBBLIGATORIO. Timestamp dell'ultima modifica al documento di discovery (es. |
endpoints |
OBBLIGATORIO. Oggetto JSON contenente gli URI di tutti i componenti del registro. Devono essere presenti le seguenti chiavi di endpoint:
|
content_negotiation |
OBBLIGATORIO. Array dei tipi di contenuto supportati dall'endpoint di discovery (es. |
Struttura del payload JWT (in forma decodificata):
{
"id": "urn:it-wallet-registry:it-wallet",
"version": "1.0.0",
"last_updated": "2024-03-15T10:30:00Z",
"endpoints": {
"claims_registry": "https://trust-anchor.eid-wallet.example.it/api/v1/claims",
"authentic_sources": "https://trust-anchor.eid-wallet.example.it/api/v1/authentic-sources",
"credential_catalog": "https://trust-anchor.eid-wallet.example.it/api/v1/.well-known/credential-catalog",
"taxonomy": "https://trust-anchor.eid-wallet.example.it/api/v1/taxonomy",
"schema_registry": "https://trust-anchor.eid-wallet.example.it/api/v1/schemas",
"federation_list": "https://trust-anchor.eid-wallet.example.it/list",
"federation_fetch": "https://trust-anchor.eid-wallet.example.it/fetch",
"federation_resolve": "https://trust-anchor.eid-wallet.example.it/resolve",
"federation_trust_mark_status": "https://trust-anchor.eid-wallet.example.it/trust_mark_status",
"federation_historical_keys": "https://trust-anchor.eid-wallet.example.it/historical-jwks"
},
"content_negotiation": ["application/json", "application/jwt"]
}
7.3. Registro dei Claims¶
Il Registro dei Claims fornisce definizioni semantiche standardizzate per i singoli attributi delle Credenziali, i tipi di dati e le regole di validazione. Questo registro funge da fondamento semantico per la standardizzazione degli attributi delle Credenziali nell'intero ecosistema IT-Wallet, operando in coordinamento con il componente Tassonomia per la classificazione gerarchica.
L'Organismo di Vigilanza DEVE mantenere il Registro dei Claims per garantire la coerenza semantica e la conformità normativa nell'intero ecosistema. Il registro DEVE contenere:
Claims Standardizzati: Definizioni semantiche per tutti gli attributi delle Credenziali con tipi di dati e regole di validazione.
Mappature di Interoperabilità: Definizioni di alias per i claim che utilizzano terminologie diverse tra gli standard (es.
place_of_birthdi ISO18013-5 mappato al canonicobirth_place).Formati dei Dati: Tipi di dati standardizzati (stringa, data, numerico, booleano, email, url, immagine, array, oggetto) con pattern di validazione.
Il Registro dei Claims DEVE garantire:
Coerenza Semantica: Previene conflitti tra claim duplicati o sovrapposti nell'intero ecosistema.
Interoperabilità Transfrontaliera: Garantisce la conformità EU e l'interpretazione coerente dei claim.
Validazione degli Schemi: Fornisce definizioni autorevoli per la validazione dei claim in tutti gli scenari di Credenziale.
Allineamento Normativo: Si coordina con il quadro normativo nazionale ed europeo.
Scenari Credential-Agnostic: Supporta scenari in cui la comodità dell'utente e l'efficienza operativa aziendale sono prioritarie rispetto alla conformità normativa e alle audit trail.
Nota
Il Registro dei Claims definisce le proprietà semantiche dei singoli attributi, ma NON DEVE specificare le capacità di selective disclosure. La selective disclosure dipende dalle implementazioni del formato della Credenziale (SD-JWT, mDocs), dalle configurazioni tecniche dell'emittente e dal contesto di presentazione. Queste capacità sono specificate a livello di tipologia di Credenziale all'interno del Catalogo delle Credenziali Digitali e implementate durante i flussi di presentazione delle Credenziali.
7.3.1. Utilizzo del Registro dei Claims¶
Il Registro dei Claims DEVE supportare il ciclo di vita completo dell'ecosistema:
Durante il Processo di Onboarding:
Registrazione FA: Le Fonti Autentiche dichiarano i claim disponibili dal registro standardizzato durante la registrazione delle capacità.
Registrazione EI: Gli Emittenti di Credenziali selezionano le entità FA in base ai claim richiesti e registrano le tipologie di Credenziale per la pubblicazione nel catalogo.
Registrazione RP: Le Relying Party specificano i requisiti di autorizzazione utilizzando domini/finalità per tipologie specifiche di Credenziale e/o attributi dell'Utente.
Durante le Attività Operative:
Emissione di Credenziali: Le definizioni dei claim garantiscono una rappresentazione coerente dei dati tra le diverse tipologie di Credenziale.
Richieste di Presentazione: Le RP fanno riferimento ai claim per la validazione degli schemi e la verifica dell'autorizzazione in scenari sia credential-specific che credential-agnostic.
Applicazione delle Politiche: Le politiche di autorizzazione sfruttano le classificazioni per dominio/finalità per il controllo degli accessi.
7.3.2. Struttura del Registro dei Claims¶
Il Registro dei Claims mantiene definizioni tecniche neutrali rispetto alla lingua per la coerenza semantica nell'intero ecosistema. Le localizzazioni per gli utenti finali dei nomi e delle descrizioni dei claim sono fornite tramite bundle di localizzazione dedicati referenziati attraverso il campo localization.base_uri, abilitando un efficiente supporto multilingue senza compromettere l'integrità strutturale del registro.
Nome Campo |
Descrizione |
|---|---|
id |
OBBLIGATORIO. Identificatore univoco del Registro dei Claims (es. |
version |
OBBLIGATORIO. La versione del Registro dei Claims (es. |
last_modified |
OBBLIGATORIO. Il timestamp che indica quando il registro è stato aggiornato l'ultima volta (es. |
localization |
OBBLIGATORIO. Oggetto di configurazione della localizzazione contenente:
|
claims |
OBBLIGATORIO. Un Oggetto JSON in cui ogni chiave è il nome di un claim e ogni valore è un Oggetto JSON che descrive tale claim. Ogni oggetto claim contiene i parametri definiti nella tabella "Parametri di una Voce di Claim" di seguito. |
Nome Campo |
Descrizione |
|---|---|
description_l10n_id |
OBBLIGATORIO. Chiave di localizzazione che fa riferimento alla descrizione leggibile del claim nel bundle di localizzazione (es. |
type |
OBBLIGATORIO. Tipo di dato del claim. Valori supportati: |
format |
OPZIONALE. Qualificatore di formato semantico per i tipi stringa (es. |
encoding |
OPZIONALE. Codifica applicata al valore (es. |
aliases |
OPZIONALE. Array di nomi alternativi del claim utilizzati in altri standard che si mappano su questo claim canonico (es. |
nested_claims |
OPZIONALE. Array di nomi di claim che costituiscono le proprietà di un claim di tipo |
nested_item_claims |
OPZIONALE. Array di nomi di claim che rappresentano le proprietà di ogni elemento in un claim di tipo |
items |
OPZIONALE. Oggetto JSON che descrive lo schema di ogni elemento in un claim di tipo |
Di seguito è fornito un esempio non normativo della struttura del Registro dei Claims:
{
"id": "urn:claims:it-wallet",
"version": "1.0.0",
"last_modified": "2026-03-06T00:00:00Z",
"localization": {
"available_locales": [
"en",
"it"
],
"base_uri": "https://trust-registry.eid-wallet.example.it/.well-known/l10n/claims/",
"default_locale": "it",
"version": "1.0.0"
},
"claims": {
"academic_qualification_date": {
"description_l10n_id": "claim.academic_qualification_date.description",
"format": "date",
"type": "string"
},
"academic_year": {
"description_l10n_id": "claim.academic_year.description",
"type": "string"
},
"address": {
"description_l10n_id": "claim.address.description",
"nested_claims": [
"country",
"house_number",
"locality",
"locality_fraction",
"postal_code",
"region",
"street_address"
],
"type": "object"
},
"birth_date": {
"aliases": [
"birthdate"
],
"description_l10n_id": "claim.birth_date.description",
"format": "date",
"type": "string"
},
"birth_place": {
"description_l10n_id": "claim.birth_place.description",
"type": "string"
},
"codes": {
"description_l10n_id": "claim.codes.description",
"items": {
"properties": {
"code": {
"description_l10n_id": "claim.code.description",
"type": "string"
},
"sign": {
"description_l10n_id": "claim.sign.description",
"type": "string"
},
"value": {
"description_l10n_id": "claim.value.description",
"type": "string"
}
},
"type": "object"
},
"nested_item_claims": [
"code",
"sign",
"value"
],
"type": "array"
},
"constant_attendance_allowance": {
"description_l10n_id": "claim.constant_attendance_allowance.description",
"type": "boolean"
},
"consulate_code": {
"description_l10n_id": "claim.consulate_code.description",
"type": "string"
},
"consulate_name": {
"description_l10n_id": "claim.consulate_name.description",
"type": "string"
},
"content": {
"description_l10n_id": "claim.content.description",
"encoding": "base64",
"format": "data",
"type": "string"
},
"country": {
"description_l10n_id": "claim.country.description",
"type": "string"
},
"cpia_school_year": {
"description_l10n_id": "claim.cpia_school_year.description",
"type": "string"
},
"degree_class": {
"description_l10n_id": "claim.degree_class.description",
"type": "string"
},
"degree_class_name": {
"description_l10n_id": "claim.degree_class_name.description",
"type": "string"
},
"degree_course_name": {
"description_l10n_id": "claim.degree_course_name.description",
"type": "string"
},
"degree_course_year": {
"description_l10n_id": "claim.degree_course_year.description",
"type": "string"
},
"document_iss_authority": {
"description_l10n_id": "claim.document_iss_authority.description",
"type": "string"
},
"document_iss_country": {
"description_l10n_id": "claim.document_iss_country.description",
"type": "string"
},
"document_number": {
"description_l10n_id": "claim.document_number.description",
"type": "string"
},
"driving_privileges": {
"description_l10n_id": "claim.driving_privileges.description",
"nested_item_claims": [
"vehicle_category_code",
"issue_date",
"expiry_date",
"codes"
],
"type": "array"
},
"education_degrees": {
"description_l10n_id": "claim.education_degrees.description",
"nested_item_claims": [
"academic_qualification_date",
"degree_class",
"degree_class_name",
"degree_course_name",
"institute_name",
"programme_type_name",
"qualification_grade_value",
"qualification_name"
],
"type": "array"
},
"education_enrollments": {
"description_l10n_id": "claim.education_enrollments.description",
"nested_item_claims": [
"academic_year",
"degree_class",
"degree_class_name",
"degree_course_name",
"degree_course_year",
"institute_name",
"programme_type_name"
],
"type": "array"
},
"educational_track": {
"description_l10n_id": "claim.educational_track.description",
"type": "string"
},
"effective_date": {
"description_l10n_id": "claim.effective_date.description",
"format": "date",
"type": "string"
},
"expiry_date": {
"aliases": [
"date_of_expiry"
],
"description_l10n_id": "claim.expiry_date.description",
"format": "date",
"type": "string"
},
"family_name": {
"description_l10n_id": "claim.family_name.description",
"type": "string"
},
"foreign_residence": {
"description_l10n_id": "claim.foreign_residence.description",
"type": "boolean"
},
"given_name": {
"description_l10n_id": "claim.given_name.description",
"type": "string"
},
"house_number": {
"description_l10n_id": "claim.house_number.description",
"type": "string"
},
"institute_code": {
"description_l10n_id": "claim.institute_code.description",
"type": "string"
},
"institute_name": {
"description_l10n_id": "claim.institute_name.description",
"type": "string"
},
"issue_date": {
"description_l10n_id": "claim.issue_date.description",
"format": "date",
"type": "string"
},
"link_qr_code": {
"description_l10n_id": "claim.link_qr_code.description",
"format": "uri",
"type": "string"
},
"locality": {
"description_l10n_id": "claim.locality.description",
"type": "string"
},
"locality_fraction": {
"description_l10n_id": "claim.locality_fraction.description",
"type": "string"
},
"nationalities": {
"description_l10n_id": "claim.nationalities.description",
"items": {
"type": "string"
},
"type": "array"
},
"place_of_birth": {
"description_l10n_id": "claim.place_of_birth.description",
"nested_claims": [
"country",
"locality",
"region"
],
"type": "object"
},
"portrait": {
"description_l10n_id": "claim.portrait.description",
"encoding": "base64",
"format": "data",
"type": "string"
},
"postal_code": {
"description_l10n_id": "claim.postal_code.description",
"type": "string"
},
"professional_qualification": {
"description_l10n_id": "claim.professional_qualification.description",
"type": "string"
},
"programme_type_name": {
"description_l10n_id": "claim.programme_type_name.description",
"type": "string"
},
"qualification_grade_value": {
"description_l10n_id": "claim.qualification_grade_value.description",
"type": "string"
},
"qualification_name": {
"description_l10n_id": "claim.qualification_name.description",
"type": "string"
},
"qualification_type": {
"description_l10n_id": "claim.qualification_type.description",
"type": "string"
},
"qualification_type_description": {
"description_l10n_id": "claim.qualification_type_description.description",
"type": "string"
},
"qualification_year": {
"description_l10n_id": "claim.qualification_year.description",
"type": "string"
},
"region": {
"description_l10n_id": "claim.region.description",
"type": "string"
},
"restrictions_conditions": {
"description_l10n_id": "claim.restrictions_conditions.description",
"type": "string"
},
"school_attendance_type": {
"description_l10n_id": "claim.school_attendance_type.description",
"type": "string"
},
"school_code": {
"description_l10n_id": "claim.school_code.description",
"type": "string"
},
"school_course_year": {
"description_l10n_id": "claim.school_course_year.description",
"type": "string"
},
"school_name": {
"description_l10n_id": "claim.school_name.description",
"type": "string"
},
"school_qualifications": {
"description_l10n_id": "claim.school_qualifications.description",
"nested_item_claims": [
"educational_track",
"institute_code",
"institute_name",
"professional_qualification",
"qualification_grade_value",
"qualification_type",
"qualification_type_description",
"qualification_year",
"school_code",
"school_name",
"school_year"
],
"type": "array"
},
"school_year": {
"description_l10n_id": "claim.school_year.description",
"type": "string"
},
"street_address": {
"description_l10n_id": "claim.street_address.description",
"type": "string"
},
"tax_id_code": {
"description_l10n_id": "claim.tax_id_code.description",
"type": "string"
},
"un_distinguishing_sign": {
"description_l10n_id": "claim.un_distinguishing_sign.description",
"type": "string"
},
"vehicle_category_code": {
"description_l10n_id": "claim.vehicle_category_code.description",
"type": "string"
}
}
}
Nota
Per una gestione migliore e più efficiente della localizzazione delle informazioni contenute nel Registro dei Claims, un'Entità che lo consulta DOVREBBE:
Scaricare la versione base del Registro dei Claims (compatta, senza localizzazioni) utilizzando l'endpoint
.well-known/claims.Determinare la lingua preferita dall'Utente.
Scaricare solo i bundle di localizzazione necessari.
Unire dinamicamente il contenuto localizzato con la struttura del Registro dei Claims.
Di seguito è fornito un esempio non normativo dell'output di un bundle di localizzazione:
{
"claim.given_name.description": "Person's given name(s) as they appear on official documents.",
"claim.birth_date.description": "Date of birth, in ISO 8601 format (YYYY-MM-DD). Also known as birthdate.",
"claim.driving_privileges.description": "Array of authorized vehicle categories with details.",
"...": "..."
}
I bundle di localizzazione DEVONO essere disponibili all'URI composto aggiungendo il codice locale e .json al valore localization.base_uri (es. https://trust-registry.eid-wallet.example.it/.well-known/l10n/claims/it.json).
7.4. Registro delle Fonti Autentiche¶
L'Organismo di Vigilanza DEVE mantenere il Registro delle Fonti Autentiche per abilitare l'accesso coordinato ai dati e l'emissione di Credenziali nell'intero ecosistema. Il Registro FA DEVE contenere almeno:
Informazioni sull'Organizzazione: Dettagli della persona giuridica, stato normativo e ruolo autorevole in domini specifici.
Capacità sui Dati: Disponibilità dei claim dichiarati facendo riferimento alle definizioni standardizzate del Registro dei Claims con le corrispondenti classificazioni della Tassonomia.
Metodi di Integrazione: Meccanismi tecnici di accesso (PDND).
Finalità Previste: Tipologie di Credenziale supportate e contesti aziendali per il coordinamento FA-EI.
Garanzia della Qualità dei Dati: Stato autorevole, frequenza di aggiornamento e capacità di audit trail.
Il Registro FA DEVE garantire:
Accesso Coordinato ai Dati: Consente agli EI di scoprire i dati appropriati dalle Fonti Autentiche per l'emissione delle Credenziali.
Integrazione FA-EI: Facilita i flussi di approvazione e il coordinamento dell'accesso ai dati tra le entità.
Garanzia della Qualità: Mantiene lo stato autorevole e l'affidabilità dei dati nei diversi domini.
Conformità Normativa: Supporta i requisiti di trasparenza della pubblica amministrazione e di coordinamento del settore privato.
Nota
Il Registro delle Fonti Autentiche è un registro tecnico e non pubblico che fornisce orientamento all'Emittente di Credenziali per il provisioning delle Credenziali.
7.4.1. Utilizzo del Registro delle Fonti Autentiche¶
Il Registro FA supporta il coordinamento dell'ecosistema durante l'intero ciclo di vita operativo:
- Durante il Processo di Onboarding:
Auto-Dichiarazione FA: Le Fonti Autentiche registrano le capacità prima che esistano tipologie di Credenziale nel catalogo.
Discovery EI: Gli Emittenti di Credenziali ricercano le entità FA in base ai claim richiesti e alle tipologie di Credenziale previste.
Coordinamento delle Approvazioni: Le entità FA valutano e approvano le richieste di accesso degli EI per la fornitura dei dati.
- Durante le Attività Operative:
Risoluzione delle Sorgenti Dati: I sistemi EI fanno riferimento al Registro FA per l'accesso in tempo reale ai dati durante l'emissione delle Credenziali.
Validazione della Qualità: Le informazioni del Registro FA supportano la verifica dell'origine dei dati e i requisiti di audit.
Gestione dell'Integrazione: Gli endpoint tecnici e i metodi di accesso consentono la comunicazione standardizzata FA-EI.
7.4.2. Coordinamento FA Pubblica vs FA Privata¶
L'architettura del Registro FA supporta diversi pattern di coordinamento che riflettono distinte esigenze operative:
FA della Pubblica Amministrazione (Integrazione Standardizzata): Gli enti pubblici forniscono dati autorevoli attraverso meccanismi regolamentati:
Integrazione PDND:
"integration_method": "pdnd"per l'accesso standardizzato ai dati pubblici.Conformità Normativa: Requisiti di piena trasparenza con pubblicazione pubblica nel catalogo.
Requisiti di Audit: Tracciabilità completa per i processi di emissione di Credenziali pubbliche.
FA del Settore Privato (Integrazione Flessibile): Le entità private forniscono dati specializzati tramite accordi personalizzati:
API Personalizzate:
"integration_method": "pdnd"per l'accesso ai dati specifici del business.Conformità Normativa: Requisiti di piena trasparenza con pubblicazione pubblica nel catalogo.
Selective Disclosure: Visibilità pubblica limitata con flussi di approvazione specifici per EI.
Flessibilità Aziendale: Integrazione su misura a supporto di casi d'uso diversificati del settore privato.
Questo approccio consente sia la trasparenza normativa per la pubblica amministrazione sia la flessibilità aziendale per le entità del settore privato, mantenendo al contempo un accesso coordinato ai dati nell'intero ecosistema.
7.4.3. Struttura del Registro FA¶
Durante la registrazione, le Fonti Autentiche dichiarano le proprie capacità prima che le tipologie di Credenziale esistano nel catalogo. Questa dichiarazione costituisce la base per la successiva registrazione degli EI e la creazione delle tipologie di Credenziale.
7.4.3.1. Schema di Identificazione Univoca delle FA¶
A ciascuna Fonte Autentica DEVE essere assegnato un identificatore univoco che segue lo schema URL HTTPS definito di seguito. Questo identificatore è utilizzato per referenziare le entità FA nell'intero sistema di registro e nel Catalogo delle Credenziali Digitali, garantendo la coerenza con i pattern di identificazione delle entità di OpenID Federation.
Schema di Identificazione FA:
https://{organization_domain}[/{optional_path}]
Componenti dello Schema:
organization_domain: Dominio DNS controllato dall'organizzazione
optional_path: Componente di percorso aggiuntivo per servizi o dipartimenti specifici
L'identificatore FA DEVE seguire le seguenti regole normative:
Protocollo HTTPS: DEVE utilizzare lo schema HTTPS per sicurezza e verifica della fiducia
Proprietà del Dominio: L'organizzazione DEVE controllare il dominio DNS utilizzato nell'identificatore
Unicità: Garantita attraverso l'unicità del namespace DNS
Stabilità: DOVREBBE rimanere stabile nel tempo per evitare la rottura dei riferimenti
Risolvibilità: L'URL DOVREBBE essere risolvibile (ma non è obbligatorio che restituisca contenuto)
Esempi di identificatori FA conformi:
https://motorizzazione.gov.example: Pubblico - Ministero dei Trasporti, Direzione Motorizzazionehttps://registry.anpr.example: Pubblico - Anagrafe Nazionale della Popolazione Residentehttps://api.bank.example/auth-source: Privato - Servizi Finanziari Banca Esempio
7.4.3.2. Parametri del Registro delle Fonti Autentiche¶
Il Registro delle Fonti Autentiche DEVE contenere i seguenti parametri per ciascuna Fonte Autentica registrata:
Nome Campo |
Descrizione |
|---|---|
id |
OBBLIGATORIO. Identificatore univoco del Registro delle Fonti Autentiche (es. |
version |
OBBLIGATORIO. La versione del Registro delle Fonti Autentiche (es. |
last_modified |
OBBLIGATORIO. Il timestamp che indica quando l'elenco è stato aggiornato l'ultima volta (es. |
localization |
OBBLIGATORIO. Oggetto di configurazione della localizzazione contenente:
|
authentic_sources |
OBBLIGATORIO. Un Array JSON in cui ogni voce è un Oggetto JSON che rappresenta un'entità Fonte Autentica. Ogni oggetto contiene i parametri definiti nella tabella "Parametri delle Fonti Autentiche" di seguito, inclusi identificazione dell'entità, informazioni organizzative, capacità sui dati e metodi di integrazione. |
Parametro |
Tipo |
Descrizione |
|---|---|---|
entity_id |
string |
OBBLIGATORIO. Identificatore univoco che segue lo schema normativo: |
organization_info |
oggetto JSON |
OBBLIGATORIO. Dettagli della persona giuridica e metadati organizzativi. |
organization_info.organization_name_l10n_id |
string |
OBBLIGATORIO. Chiave di localizzazione che fa riferimento al nome localizzato dell'organizzazione nel bundle di localizzazione (es. |
organization_info.organization_type |
string |
OBBLIGATORIO. Classificazione dell'entità: |
organization_info.ipa_code |
string |
OBBLIGATORIO solo per FA Pubbliche. Codice di registrazione IPA per gli enti pubblici. |
organization_info.legal_identifier |
string |
OBBLIGATORIO. Identificativo di registrazione legale (Codice Fiscale/Partita IVA, o equivalente identificativo nazionale per entità straniere). |
organization_info.homepage_uri |
string |
OBBLIGATORIO. URL della homepage dell'organizzazione. |
organization_info.contacts |
Array di stringhe |
OBBLIGATORIO. Array di indirizzi email di contatto per almeno un referente di supporto utenti, uno applicativo e uno sistemistico. |
organization_info.dpa_contact |
string |
OBBLIGATORIO. Indirizzo email del DPA della Fonte Autentica. |
organization_info.policy_uri |
string |
OBBLIGATORIO. URL del documento di informativa sulla privacy. |
organization_info.tos_uri |
string |
OPZIONALE. URL del documento dei termini di servizio. |
organization_info.organization_country |
string |
OBBLIGATORIO. Codice paese ISO 3166-1 alpha-2 a due lettere dell'organizzazione. |
organization_info.logo_uri |
string |
OPZIONALE. URL dell'immagine del logo dell'organizzazione. |
organization_info.logo_uri#integrity |
string |
CONDIZIONALE. Digest crittografico della risorsa immagine del logo per la verifica dell'integrità. OBBLIGATORIO se |
organization_info.logo_alt_text_l10n_id |
string |
OPZIONALE. Testo alternativo per l'immagine del logo dell'organizzazione. |
organization_info.logo_extended_uri |
string |
OPZIONALE. URL dell'immagine del logo esteso dell'organizzazione. |
organization_info.logo_extended_uri#integrity |
string |
CONDIZIONALE. Digest crittografico della risorsa immagine del logo esteso per la verifica dell'integrità. OBBLIGATORIO se |
organization_info.logo_extended_alt_text_l10n_id |
string |
OPZIONALE. Testo alternativo per l'immagine del logo esteso dell'organizzazione. |
data_capabilities |
Array di oggetti JSON |
OBBLIGATORIO. Array contenente le specifiche delle capacità sui dati. |
data_capabilities[].dataset_id |
string |
OBBLIGATORIO. L'identificatore univoco del dataset nell'ambito della Fonte Autentica, che PUÒ essere utilizzato come parametro di query per il servizio |
data_capabilities[].data_origin_l10n_id |
string |
OBBLIGATORIO. Chiave di localizzazione che fa riferimento al nome leggibile dell'origine o del dipartimento che fornisce i dati (es. |
data_capabilities[].intended_purposes |
Array di stringhe |
OBBLIGATORIO. Finalità aziendali soddisfatte, utilizzando gli identificatori di finalità della tassonomia (es. |
data_capabilities[].available_claims |
Array di stringhe |
OBBLIGATORIO. Claim disponibili da questa capacità dati. |
data_capabilities[].available_claims.claim_name |
string |
OBBLIGATORIO. Contiene il nome del claim. |
data_capabilities[].available_claims.order |
number |
OBBLIGATORIO. Definisce l'ordine in cui le informazioni vengono mostrate. |
data_capabilities[].available_claims.mandatory |
boolean |
OBBLIGATORIO. Definisce se un claim è sempre disponibile o meno. |
data_capabilities[].integration_method |
string |
OBBLIGATORIO. Framework di autorizzazione utilizzato per l'accesso ai dati. DEVE essere |
data_capabilities[].integration_endpoint |
string |
OPZIONALE. Punto di accesso al servizio (endpoint PDND). |
data_capabilities[].api_specification |
string |
OPZIONALE. URL del documento di specifica OAS3 per questa capacità dati. |
data_capabilities[].data_provision |
oggetto JSON |
OPZIONALE. Capacità di fornitura dei dati e specifiche temporali. |
data_capabilities[].data_provision.immediate_flow |
boolean |
OBBLIGATORIO. Indica se la Fonte Autentica supporta la fornitura immediata dei dati. |
data_capabilities[].data_provision.deferred_flow |
boolean |
OBBLIGATORIO. Indica se la Fonte Autentica supporta la fornitura differita dei dati. |
data_capabilities[].data_provision.max_response_time_minutes |
integer |
CONDIZIONALE. Tempo massimo in minuti per la risposta della Fonte Autentica a una richiesta di fornitura dati differita. OBBLIGATORIO se |
data_capabilities[].data_provision.notification_methods |
Array di stringhe |
CONDIZIONALE. Array dei metodi di notifica supportati dalla Fonte Autentica per la fornitura dati differita, come |
data_capabilities[].user_information_l10n_id |
string |
OPZIONALE. Chiave di localizzazione che fa riferimento a una stringa in formato Markdown con informazioni leggibili sulla capacità dati rilevanti per l'Utente (es. |
data_capabilities[].service_documentation |
string |
OPZIONALE. URL che punta alla documentazione del servizio della Fonte Autentica. |
data_capabilities[].update_frequency |
string |
OPZIONALE. Indica la frequenza con cui la Fonte Autentica aggiorna i propri dati. Valori possibili: |
data_capabilities[].logo_uri |
string |
OPZIONALE. URL dell'immagine del logo relativa ai dati. |
data_capabilities[].logo_uri#integrity |
string |
CONDIZIONALE. Digest crittografico della risorsa immagine del logo per la verifica dell'integrità. OBBLIGATORIO se |
data_capabilities[].logo_alt_text_l10n_id |
string |
OPZIONALE. Testo alternativo per l'immagine del logo dell'organizzazione. |
data_capabilities[].background_color |
string |
OPZIONALE. Valore stringa del colore di sfondo da visualizzare insieme ai dati. |
data_capabilities[].contacts |
Array di stringhe |
OPZIONALE. Array di indirizzi email di contatto del servizio clienti o dei canali di supporto per gli utenti. |
Nota
Per ulteriori dettagli sulle funzionalità richieste e sul risultato atteso in termini di esperienza utente, si rimanda alla Sezione Ottenimento degli Attestati Elettronici di Attributi per il parametro data_capabilities.user_information e alla Sezione Focus sugli Attestati Elettronici di Attributi per i parametri organization_info.logo_uri, organization_info.logo_extended_uri, data_capabilities.logo_uri, data_capabilities.background_color e data_capabilities.available_claims.order.
7.4.3.3. Esempio di Registro FA¶
Di seguito è fornito un esempio non normativo della struttura del Registro FA:
{
"id": "urn:authentic-sources:it-wallet",
"version": "1.0.0",
"last_modified": "2025-03-15T12:00:00Z",
"localization": {
"default_locale": "it",
"available_locales": [
"en",
"it"
],
"base_uri": "https://trust-registry.eid-wallet.example.it/.well-known/l10n/authentic-sources/",
"version": "1.0.0"
},
"authentic_sources": [
{
"entity_id": "https://motorizzazione.gov.example",
"organization_info": {
"contacts": [
"registry@motorizzazione.gov.example",
"technical-support@motorizzazione.gov.example"
],
"dpa_contact": "dpa@motorizzazione.gov.example",
"homepage_uri": "https://www.gov.example/transport",
"ipa_code": "m_inf",
"legal_identifier": "80192770587",
"logo_extended_uri": "https://trust-registry.eid-wallet.example.it/logos/m_inf/extended-image.svg",
"logo_extended_uri#integrity": "sha-256-a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3",
"logo_uri": "https://trust-registry.eid-wallet.example.it/logos/m_inf/image.svg",
"logo_uri#integrity": "sha-256-a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3",
"organization_country": "IT",
"organization_name": "Ministero dei Trasporti - Direzione generale per la Motorizzazione",
"organization_name_l10n_id": "authentic_source1.name",
"organization_type": "public",
"policy_uri": "https://www.gov.example/transport/privacy-policy",
"tos_uri": "https://www.gov.example/transport/terms-of-service"
},
"data_capabilities": [
{
"api_specification": "https://docs.gov.example/transport/api-oas3.yaml",
"available_claims": [
{
"claim_name": "given_name",
"mandatory": true,
"order": 1
},
{
"claim_name": "family_name",
"mandatory": true,
"order": 2
},
{
"claim_name": "birth_date",
"mandatory": true,
"order": 3
},
{
"claim_name": "birth_place",
"mandatory": true,
"order": 4
},
{
"claim_name": "issue_date",
"mandatory": true,
"order": 5
},
{
"claim_name": "document_iss_country",
"mandatory": true,
"order": 6
},
{
"claim_name": "document_iss_authority",
"mandatory": true,
"order": 7
},
{
"claim_name": "expiry_date",
"mandatory": true,
"order": 8
},
{
"claim_name": "document_number",
"mandatory": true,
"order": 9
},
{
"claim_name": "portrait",
"mandatory": true,
"order": 10
},
{
"claim_name": "un_distinguishing_sign",
"mandatory": true,
"order": 11
},
{
"claim_name": "restrictions_conditions",
"mandatory": false,
"order": 12
},
{
"claim_name": "driving_privileges",
"mandatory": true,
"order": 13
}
],
"background_color": "#12107c",
"contacts": [
"citizen-support@motorizzazione.gov.example"
],
"data_origin_l10n_id": "authentic_source1.dataset1.origin",
"data_provision": {
"deferred_flow": false,
"immediate_flow": true
},
"dataset_id": "38832801",
"integration_endpoint": "https://api.gov.example/transport/driving-license",
"integration_method": "pdnd",
"intended_purposes": [
"IDENTITY_VERIFICATION",
"PERSON_IDENTIFICATION",
"DRIVING_RIGHTS_VERIFICATION",
"LAW_ENFORCEMENT_CONTROLS"
],
"logo_uri": "https://trust-registry.eid-wallet.example.it/logos/38832801/image.svg",
"logo_uri#integrity": "sha-256-b1946ac92492d2347c6235b4d2611184e2a3f8b8c8f8f8e8f8f8f8f8f8f8f8f8",
"service_documentation": "https://docs.gov.example/transport/api-docs",
"update_frequency": "real_time",
"user_information_l10n_id": "authentic_source1.dataset1.userinfo"
}
]
},
{
"entity_id": "https://api.bank.example/auth-source",
"organization_info": {
"contacts": [
"digital-credentials@bank.example",
"api-support@bank.example"
],
"dpa_contact": "dpa@bank.example",
"homepage_uri": "https://www.bank.example",
"legal_identifier": "12345678901",
"logo_extended_uri": "https://trust-registry.eid-wallet.example.it/logos/12345678901/extended-image.svg",
"logo_extended_uri#integrity": "sha-256-a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3",
"logo_uri": "https://trust-registry.eid-wallet.example.it/logos/12345678901/image.svg",
"logo_uri#integrity": "sha-256-a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3",
"organization_country": "IT",
"organization_name": "Banca Esempio SpA",
"organization_name_l10n_id": "authentic_source2.name",
"organization_type": "private",
"policy_uri": "https://www.bank.example/privacy-policy",
"tos_uri": "https://www.bank.example/terms-of-service"
},
"data_capabilities": [
{
"api_specification": "https://api.bank.example/docs/psd2-openapi.yaml",
"available_claims": [
{
"claim_name": "given_name",
"mandatory": true,
"order": 1
},
{
"claim_name": "family_name",
"mandatory": true,
"order": 2
},
{
"claim_name": "birth_date",
"mandatory": false,
"order": 3
},
{
"claim_name": "tax_id_code",
"mandatory": true,
"order": 4
},
{
"claim_name": "account_holder_name",
"mandatory": true,
"order": 5
},
{
"claim_name": "iban",
"mandatory": true,
"order": 6
},
{
"claim_name": "account_status",
"mandatory": false,
"order": 7
},
{
"claim_name": "account_opening_date",
"mandatory": false,
"order": 8
},
{
"claim_name": "bank_name",
"mandatory": true,
"order": 9
},
{
"claim_name": "bank_code",
"mandatory": true,
"order": 10
}
],
"background_color": "#003366",
"contacts": [
"digital-credentials@bank.example"
],
"data_origin_l10n_id": "authentic_source2.dataset1.origin",
"data_provision": {
"deferred_flow": false,
"immediate_flow": true
},
"dataset_id": "38854801",
"integration_endpoint": "https://api.bank.example/psd2/v1/accounts",
"integration_method": "pdnd",
"intended_purposes": [
"PAYMENT_AUTHORIZATION",
"ELIGIBILITY_VERIFICATION"
],
"logo_uri": "https://trust-registry.eid-wallet.example.it/logos/38854801/image.svg",
"logo_uri#integrity": "sha-256-d8e8fca2dc0f896fd7cb4cb0031ba249e3f8b8c8f8f8e8f8f8f8f8f8f8f8f8f9",
"service_documentation": "https://docs.bank.example/psd2-api",
"update_frequency": "daily",
"user_information_l10n_id": "authentic_source2.dataset1.userinfo"
},
{
"api_specification": "https://api.bank.example/docs/psd2-openapi.yaml",
"available_claims": [
{
"claim_name": "given_name",
"mandatory": true,
"order": 1
},
{
"claim_name": "family_name",
"mandatory": true,
"order": 2
},
{
"claim_name": "tax_id_code",
"mandatory": true,
"order": 3
},
{
"claim_name": "transaction_history",
"mandatory": true,
"order": 4
},
{
"claim_name": "average_balance",
"mandatory": false,
"order": 5
},
{
"claim_name": "credit_score_indicator",
"mandatory": false,
"order": 6
}
],
"background_color": "#003366",
"contacts": [
"digital-credentials@bank.example"
],
"data_origin_l10n_id": "authentic_source2.dataset2.origin",
"data_provision": {
"deferred_flow": true,
"immediate_flow": false,
"max_response_time_minutes": 1440,
"notification_methods": [
"push",
"poll"
]
},
"dataset_id": "38854802",
"integration_endpoint": "https://api.bank.example/psd2/v1/transactions",
"integration_method": "pdnd",
"intended_purposes": [
"PROOF_OF_PAYMENT",
"RECURRING_PAYMENT_MANAGEMENT"
],
"logo_uri": "https://trust-registry.eid-wallet.example.it/logos/38854802/image.svg",
"logo_uri#integrity": "sha-256-f4a2b7e1dc0f896fd7cb4cb0031ba249e3f8b8c8f8f8e8f8f8f8f8f8f8f8f8fb",
"service_documentation": "https://docs.bank.example/psd2-api",
"update_frequency": "weekly",
"user_information_l10n_id": "authentic_source2.dataset2.userinfo"
}
]
}
]
}
Nota
Per una gestione migliore e più efficiente della localizzazione delle informazioni contenute nel Registro delle Fonti Autentiche, un'Entità che lo consulta DOVREBBE:
Scaricare la versione base del Registro delle Fonti Autentiche (compatta, senza localizzazioni) utilizzando l'endpoint
.well-known/authentic-sources.Determinare la lingua preferita dall'Utente.
Scaricare solo i bundle di localizzazione necessari.
Unire dinamicamente il contenuto localizzato con la struttura del Registro delle Fonti Autentiche.
Di seguito è fornito un esempio non normativo dell'output di un bundle di localizzazione:
{
"authentic_source1.name": "Ministero delle infrastrutture e dei trasporti",
"authentic_source1.dataset1.origin": "MIT -- Direzione Generale per la Motorizzazione",
"authentic_source1.dataset1.userinfo": "###### Patente di Guida\nSono disponibili le patenti rilasciate dopo il 1° gennaio 2020. Per le patenti più vecchie, contattare l'ufficio motorizzazione locale.",
"authentic_source2.name": "Banca Esempio SpA",
"authentic_source2.dataset1.origin": "Esempio origine dei dati 1",
"authentic_source2.dataset1.userinfo": "###### Informazioni sulla disponibilità dei dati\nL'accesso ai dati finanziari richiede il consenso del cliente ed è soggetto alla normativa PSD2. Le informazioni sui conti sono disponibili solo per i conti attivi.",
"...": "..."
}
I bundle di localizzazione DEVONO essere disponibili all'URI composto aggiungendo il codice locale e .json al valore localization.base_uri definito nel registro. Ciascun bundle locale DEVE essere accessibile seguendo il pattern di denominazione {locale_code}.json, dove {locale_code} è sostituito con il codice locale corrispondente dall'array available_locales.
Un esempio non normativo dell'URI di localizzazione italiana per il bundle sarebbe https://trust-registry.eid-wallet.example.it/.well-known/l10n/authentic-sources/it.json.
7.4.4. Coordinamento FA-EI¶
A seguito della registrazione FA, il Registro FA consente agli Emittenti di Credenziali di individuare entità FA idonee e richiedere l'approvazione dell'integrazione. Questo processo di coordinamento è descritto in dettaglio in Processo di Autorizzazione dalla Fonte Autentica all'Emittente di Credenziali.
7.5. Registro della Federazione¶
Il Registro della Federazione fornisce l'infrastruttura di fiducia crittografica per tutti i partecipanti all'ecosistema IT-Wallet. Il Registro della Federazione mantiene l'elenco autorevole delle entità fidate e il loro stato operativo utilizzando endpoint specifici della federazione come definito in Endpoint API di Federazione.
7.5.1. Ruolo di Integrazione del Registro¶
All'interno dell'architettura del Registro di Sistema IT-Wallet, il Registro della Federazione funge da livello di validazione della fiducia per:
Autenticazione delle Entità: Valida l'identità crittografica di tutti i partecipanti prima delle operazioni di registro
Verifica della Catena di Fiducia: Fornisce il fondamento crittografico per la validazione delle entità Emittenti di Credenziali, Relying Party e Fornitori di Wallet
Verifica della Conformità: Mantiene i Trust Mark che attestano la conformità normativa e lo stato operativo
7.5.2. Accesso al Registro della Federazione¶
Le operazioni del Registro della Federazione sono accessibili attraverso gli endpoint di federazione del Trust Anchor come dettagliato in Endpoint API di Federazione. L'architettura di discovery del registro fornisce informazioni sugli endpoint di federazione tramite l'endpoint di discovery del registro descritto in Endpoint di Discovery del Registro.
Nota
Gli endpoint di federazione sono disponibili sia attraverso il meccanismo di discovery del registro (per l'accesso unificato al registro) sia attraverso la Configurazione dell'Entità del Trust Anchor all'indirizzo .well-known/openid-federation (per operazioni specifiche della federazione). Entrambe le sorgenti forniscono gli stessi URL degli endpoint ma servono diversi pattern di discovery: la discovery del registro per l'orientamento iniziale nell'ecosistema, la Configurazione dell'Entità per la conformità standard a OpenID Federation 1.0.
Per le specifiche tecniche complete dei protocolli di federazione, le configurazioni delle entità, i meccanismi di valutazione della fiducia e la validazione della catena di fiducia, vedere L'Infrastruttura di Trust.
7.6. Catalogo degli Attestati Elettronici¶
Il Catalogo delle Credenziali Digitali è il registro di tutte le Credenziali Digitali disponibili riconosciute nell'ecosistema IT-Wallet. È pubblicato dal Trust Anchor ed è pubblicamente disponibile per tutte le Entità tramite un endpoint specializzato della Federazione. Funge da unico punto di riferimento per tutti gli attori coinvolti nel processo di emissione, verifica e utilizzo delle Credenziali Digitali.
Il Catalogo delle Credenziali Digitali si prefigge di:
Facilitare la discovery delle Credenziali Digitali per gli Utenti.
Standardizzare la descrizione tecnica e funzionale delle Credenziali Digitali.
Abilitare l'interoperabilità tra diversi Emittenti e Relying Party.
Semplificare il processo di integrazione per i Fornitori di Wallet e le Relying Party.
Garantire la fiducia nell'ecosistema attraverso informazioni verificabili e attendibili.
Fornire trasparenza sull'ecosistema delle Credenziali Digitali disponibili.
Le principali Entità coinvolte nel Catalogo delle Credenziali Digitali sono:
Trust Anchor: Gestisce e mantiene il Catalogo delle Credenziali Digitali, garantendone l'autenticità e l'integrità.
Organismo di Vigilanza: Interagisce con il Trust Anchor e il Catalogo delle Credenziali Digitali per monitorare la fase di registrazione garantendo sicurezza e privacy secondo la normativa nazionale/europea, mantenendo tutte le informazioni affidabili e aggiornate.
Emittenti di Credenziali Digitali: Le entità autorizzate a emettere Credenziali Digitali, registrandole nel Catalogo.
Relying Party: Utilizzano il Catalogo delle Credenziali Digitali per raccogliere tutte le informazioni necessarie sulle Credenziali Digitali che intendono richiedere durante la fase di presentazione.
Fornitori di Wallet: Accedono al Catalogo delle Credenziali Digitali per identificare le Credenziali Digitali disponibili e recuperare tutte le informazioni necessarie per integrarle nelle proprie Soluzioni Wallet.
Utenti: Gli Utenti che utilizzano indirettamente il Catalogo delle Credenziali Digitali attraverso le proprie Istanze Wallet per scoprire e richiedere Credenziali Digitali.
Fonti Autentiche: Le Entità che detengono i dati originali attestati nelle Credenziali Digitali. Forniscono supporto agli Emittenti nella registrazione delle Credenziali Digitali nel Catalogo.
Fig. 7.1 Diagramma Entità-Relazione del Catalogo delle Credenziali Digitali.¶
La seguente tabella riepiloga le principali informazioni che DEVONO essere fornite dal Catalogo delle Credenziali Digitali:
Informazioni relative a |
Descrizione |
|---|---|
Metadati della Credenziale Digitale |
Informazioni identificative essenziali e caratteristiche della Credenziale Digitale, tra cui:
|
Emittenti della Credenziale Digitale |
Dettagli sull'organizzazione autorizzata a emettere la Credenziale Digitale, quali:
|
Fonti Autentiche |
Informazioni sulla fonte di dati autorevole. |
Specifica Tecnica |
Dettagli tecnici, tra cui:
|
Termini di Utilizzo |
Condizioni e limitazioni per l'utilizzo della Credenziale Digitale, quali:
|
Il Trust Anchor DEVE pubblicare e mantenere aggiornate tutte le informazioni all'endpoint .well-known del Catalogo delle Credenziali Digitali garantendo affidabilità, autenticità e integrità dei dati. In particolare, il Catalogo delle Credenziali Digitali DEVE essere disponibile attraverso l'endpoint .well-known/credential-catalog. DEVE supportare application/jose come content-type.
Di seguito è riportato un esempio non normativo.
GET /.well-known/credential-catalog HTTP/1.1
Host: trust-anchor.eid-wallet.example.it
Accept: application/jose
HTTP/1.1 200 OK
Content-Type: application/jose
eyJhbGciOiJSUzI1NiIsImtpZCI6ImV4YW1w...
Nella sezione Struttura del Catalogo degli Attestati Elettronici è fornito un esempio del Catalogo delle Credenziali Digitali decodificato in JSON.
7.6.1. Gerarchia delle Credenziali Digitali¶
Le Credenziali Digitali riconosciute nell'ecosistema IT-Wallet sono classificate e standardizzate secondo il seguente modello gerarchico multilivello, progettato per migliorare la chiarezza semantica, la discovery delle credenziali e la compatibilità con i flussi di verifica sia credential-specific che claim-based.
La gerarchia è definita come segue:
Dominio
Un Dominio rappresenta un'area tematica di alto livello che raggruppa famiglie di Credenziali afferenti allo stesso contesto generale (es. Identità, Salute, Istruzione, Mobilità). I Domini forniscono un livello organizzativo di primo piano.
Classe di Credenziale
Una Classe di Credenziale rappresenta una famiglia di Credenziali che condividono natura, funzione o struttura simili (es. Documenti di Identità, Certificati di Stato Civile).
Ogni Classe DOVREBBE definire:
un identificatore di Classe stabile (URI),
la semantica attesa della Famiglia di Credenziali.
Le Classi consentono alle Relying Party e alle Soluzioni Wallet di richiedere o abbinare le Credenziali in base alla loro categoria tipologica.
Tipologia di Credenziale
Una Tipologia di Credenziale rappresenta una Credenziale specifica all'interno di una Classe (es. Credenziale di Viaggio Digitale, Certificato di Nascita, Patente di Guida Mobile). Ogni Tipologia di Credenziale DEVE includere:
un identificatore univoco,
l'identificatore dell'Emittente della Credenziale,
l'insieme degli Attributi che possono essere inclusi nelle presentazioni.
Le Tipologie di Credenziale consentono il targeting preciso per i flussi di verifica conformi o normativamente mandatati.
Finalità (Intento di Verifica)
Una Finalità (Intento di Verifica) descrive perché una credenziale può essere richiesta da una Relying Party (es. Verifica dell'Identità, Verifica dell'Età, Idoneità a servizi specifici). Le Finalità DEVONO descrivere gli esiti della verifica. Ogni Tipologia di Credenziale DEVE dichiarare il proprio Dominio, Classe e Finalità supportate.
Le tabelle seguenti forniscono esempi non esaustivi che illustrano le relazioni tra Domini, Classi di Credenziale e Tipologie di Credenziale, seguiti dalla loro mappatura sulle Finalità di verifica. Domini, Classi, Credenziali specifiche e Finalità di verifica aggiuntive POSSONO essere aggiunti nel tempo con l'evolversi dell'ecosistema IT-Wallet.
Dominio |
Descrizione |
Classe di Credenziale |
Tipologia di Credenziale |
|---|---|---|---|
IDENTITÀ |
Credenziali che stabiliscono o confermano l'identità legale di una persona e il suo status personale, civile o giuridico. |
|
|
CASA E FAMIGLIA |
Credenziali che attestano la composizione del nucleo familiare, la residenza e i rapporti giuridici o fiscali legati all'abitazione. |
|
|
ISTRUZIONE |
Credenziali che attestano risultati scolastici, titoli accademici e formazione professionale. |
|
|
SALUTE |
Credenziali relative alla copertura sanitaria, allo stato di salute e a certificazioni di carattere sanitario. |
|
|
FINANZIARIO |
Credenziali relative a strumenti di pagamento, autorizzazioni finanziarie e prove di pagamento. |
|
|
CULTURA E TEMPO LIBERO |
Credenziali che attestano l'appartenenza, l'affiliazione o la partecipazione a programmi culturali o ricreativi. |
|
|
LAVORO |
Credenziali che attestano rapporti di lavoro, status professionale e contribuzione previdenziale. |
|
|
MOBILITÀ E VIAGGI |
Credenziali che attestano diritti di mobilità, stato del veicolo e titolarità in ambito di viaggio. |
|
|
BONUS |
Credenziali che attestano il diritto a benefici economici, incentivi o voucher. |
|
|
Classe di Credenziale |
Finalità Supportate |
|---|---|
Documenti di Identità |
|
Certificati Anagrafici e di Stato Civile |
|
Stato Economico e Giuridico |
|
Documenti Catastali e Immobiliari |
|
Documenti Familiari |
|
Documenti Tributari Locali |
|
Titoli di Studio |
|
Certificazioni Professionali |
|
Certificazioni e Idoneità |
|
Cartelle Cliniche |
|
Strumenti di Pagamento |
|
Credenziali e Autorizzazioni di Pagamento |
|
Pagamenti e Tributi Pubblici |
|
Pagamenti Ricorrenti e Abbonamenti |
|
Carte e Benefici Culturali |
|
Programmi di Fidelizzazione e Associativi |
|
Documenti di Lavoro |
|
Stato Occupazionale |
|
Patenti e Autorizzazioni |
|
Documenti del Veicolo |
|
Abbonamenti al Trasporto |
|
Documenti di Viaggio |
|
Assicurazione Viaggio e Prenotazioni |
|
Sconti e Agevolazioni |
|
Benefici Economici e Sussidi |
|
Incentivi e Voucher |
|
Bonus Salute e Benessere |
|
Affiliazione Lavorativa |
|
Ogni Credenziale DEVE specificare domini, classi e finalità per abilitare sia gli Scenari Credential-Specific che gli Scenari Credential-Agnostic in base ai requisiti della Relying Party e ai pattern di richiesta di presentazione, come definito nelle tabelle di mappatura sopra.
Scenari Credential-Specific (Primari per il settore governativo/regolamentato): Le RP richiedono tipologie specifiche di Credenziale per requisiti di conformità e audit, inclusi ad esempio:
Servizi Governativi:
"credential_type":"pid"per la verifica dell'identità specifica con PID.Controlli di Polizia:
"credential_type":"mDL"per la verifica della patente di guida.KYC Bancario: Tipologie specifiche di credenziale previste dalla normativa finanziaria.
Servizi Sanitari:
"credential_type":"european_disability_card"per l'accesso ai benefici per disabilità conformi EU.
Scenari Credential-Agnostic (Tipici per le aziende private): Le RP richiedono claim specifici indipendentemente dalla fonte della Credenziale per l'efficienza operativa, quali:
Consegna E-commerce: Qualsiasi credenziale, tra quelle a cui è autorizzato ad accedere, contenente
given_name,family_name,addressper la spedizione.Abbonamenti: Qualsiasi credenziale, tra quelle a cui è autorizzato ad accedere, con
given_name,Personalizzazione del Servizio: Applicazioni aziendali che richiedono dati personali di base senza forti requisiti sulla fonte.
Questo approccio consente:
Autorizzazione basata su politiche tramite mappature Dominio / Classe / Tipologia di Credenziale / Finalità.
Registrazione flessibile delle RP a supporto sia delle esigenze di conformità governativa che dei requisiti operativi aziendali.
7.6.2. Struttura del Catalogo degli Attestati Elettronici¶
Il contenuto del Catalogo delle Credenziali Digitali è protetto in un JWS che contiene i seguenti parametri dell'intestazione JOSE:
Intestazione JOSE |
Descrizione |
Riferimento |
|---|---|---|
typ |
OBBLIGATORIO. DEVE essere impostato su |
[RFC 7515 Section 4.1.9]. |
alg |
OBBLIGATORIO. Identificatore di algoritmo di firma digitale come da registro IANA "JSON Web Signature and Encryption Algorithms". DEVE essere uno degli algoritmi supportati nella Sezione Algoritmi Crittografici e NON DEVE essere impostato su |
[RFC 7515 Section 4.1.1]. |
kid |
OBBLIGATORIO. Identificatore univoco della chiave pubblica. |
[RFC 7515 Section 4.1.4]. |
x5c |
OPZIONALE. Contiene il Certificato X.509 della chiave pubblica o la catena di certificati [RFC 5280] corrispondente alla chiave utilizzata per firmare digitalmente il JWS. Quando il parametro di intestazione kid è presente, DEVE fare riferimento alla stessa chiave pubblica crittografica foglia utilizzata con il Certificato X.509. |
[RFC 7515 Section 4.1.6.]. |
cty |
OBBLIGATORIO. DEVE essere impostato su |
[RFC 7515 Section 4.1.6.]. |
Il payload JWS contiene i seguenti parametri:
Nome Campo |
Descrizione |
|---|---|
id |
OBBLIGATORIO. Identificatore univoco del Catalogo delle Credenziali Digitali (es. |
version |
OBBLIGATORIO. Versione del formato del Catalogo delle Credenziali Digitali. |
last_modified |
OBBLIGATORIO. Timestamp dell'ultima modifica al Catalogo delle Credenziali Digitali. |
iss |
OBBLIGATORIO. Identificatore dell'emittente del Catalogo delle Credenziali Digitali. |
credentials |
OBBLIGATORIO. Array contenente le definizioni delle Credenziali Digitali. |
Ogni elemento dell'array credentials contiene almeno le seguenti informazioni:
Nome Campo |
Descrizione |
|---|---|
version |
OBBLIGATORIO. Versione della definizione della Credenziale Digitale. |
credential_type |
OBBLIGATORIO. Identificatore univoco della tipologia di Credenziale Digitale. Per il PID DEVE essere |
credential_name_l10n_id |
OBBLIGATORIO. Chiave di localizzazione che fa riferimento al nome leggibile della Credenziale Digitale nel bundle di localizzazione (es. |
legal_type |
OBBLIGATORIO. Classificazione legale della Credenziale (es. |
restriction_policy |
OPZIONALE. Restrizioni legali sulle Soluzioni Wallet e/o sugli Emittenti di Credenziali autorizzati a richiedere/emettere la Credenziale Digitale.
|
pricing_policy |
OPZIONALE. Informazioni sul prezzo della Credenziale Digitale, inclusi:
|
validity_info |
Informazioni sulla validità della Credenziale Digitale, inclusi almeno:
|
authentication |
OBBLIGATORIO. Requisiti di autenticazione della Credenziale Digitale.
|
domains |
OBBLIGATORIO. Array di domini a cui appartiene la Credenziale Digitale, quali:
|
classes |
OBBLIGATORIO. Array di classi a cui appartiene la Credenziale Digitale, quali:
|
purposes |
OBBLIGATORIO. Array delle finalità di utilizzo per cui la Credenziale Digitale può essere impiegata, definendo contesti d'uso specifici e claim richiesti per ciascuna finalità, quali:
|
issuers |
OBBLIGATORIO. Array di informazioni rilevanti sugli Emittenti di Credenziali autorizzati, inclusi dati amministrativi e tecnici quali nome dell'organizzazione, riferimento al documento di specifica API e meccanismi di emissione supportati (ad esempio il supporto al flusso differito). |
authentic_sources |
OBBLIGATORIO. Array di oggetti JSON delle Fonti Autentiche che fanno riferimento alle Fonti Autentiche autorizzate. Ogni oggetto DEVE contenere l'identificatore dell'entità FA e l'identificatore specifico della capacità dati:
|
Nota
L'unione di credential_type e version DEVE essere univoca nel Catalogo delle Credenziali.
Il corrispondente esempio di Catalogo delle Credenziali Digitali decodificato in JSON sia per l'intestazione che per il payload è il seguente:
{
"typ":"JOSE",
"alg":"ES256",
"kid":"e9bc097a-ce51-4036-9562-d2ade882db0d",
"cty":"application/json"
}
{
"id": "urn:credential-catalog:it-wallet",
"version": "1.0.0",
"last_modified": "2025-03-15T12:00:00Z",
"iss": "https://trust-registry.eid-wallet.example.it",
"credentials": [
{
"version": "1",
"credential_type": "mDL",
"credential_name_l10n_id": "mDL.name",
"legal_type": "pub-eaa",
"restriction_policy": {
"allowed_wallet_ids": [
"https://wallet-provider.example.org/wallet_solution",
"https://wallet-provider2.example.org/wallet_solution"
],
"allowed_issuer_ids": [
"https://issuer.example.org"
],
"presentation_flows": {
"remote": true,
"proximity": true
}
},
"pricing_policy": {
"models": [
{
"pricing_type": "verification_based",
"price": 0.01,
"currency": "EUR"
}
],
"pricing_model_uri": "https://example.com/pricing"
},
"validity_info": {
"max_validity_days": 365,
"status_methods": [
"status_list"
],
"administrative_expiration_user_info": {
"title_l10n_id": "mDL.administrative_expiration_user_info.title",
"description_l10n_id": "mDL.administrative_expiration_user_info.description"
},
"allowed_states": [
{
"0x00": "VALID",
"title_l10n_id": "mDL.VALID.title",
"description_l10n_id": "mDL.VALID.description"
},
{
"0x01": "INVALID",
"title_l10n_id": "mDL.INVALID.title",
"description_l10n_id": "mDL.INVALID.description"
},
{
"0x02": "SUSPENDED",
"title_l10n_id": "mDL.SUSPENDED.title",
"description_l10n_id": "mDL.SUSPENDED.description"
},
{
"0x03": "UPDATE",
"title_l10n_id": "mDL.UPDATE.title",
"description_l10n_id": "mDL.UPDATE.description"
},
{
"0x0F": "ATTRIBUTE_UPDATE",
"title_l10n_id": "mDL.ATTRIBUTE_UPDATE.title",
"description_l10n_id": "mDL.ATTRIBUTE_UPDATE.description"
}
]
},
"authentication": {
"user_auth_required": true,
"min_loa": "high",
"supported_schemes": [
"it-wallet"
]
},
"domains": [
{
"id": "IDENTITY"
},
{
"id": "MOBILITY_TRAVEL"
}
],
"classes": [
{
"id": "IDENTIFICATION_DOCUMENTS"
},
{
"id": "LICENSES_AUTHORIZATIONS"
}
],
"purposes": [
{
"id": "IDENTITY_VERIFICATION"
},
{
"id": "AGE_VERIFICATION"
},
{
"id": "DRIVING_RIGHTS"
}
],
"issuers": [
{
"id": "https://issuer.example.org",
"organization_name_l10n_id": "mDL.issuer1.name",
"organization_code": "ci_example_it",
"organization_country": "IT",
"contacts": [
"mailto:informazioni@example.it",
"mailto:protocollo@pec.example.it"
],
"legal_type": "pub-eaa",
"homepage_uri": "https://issuer.example.org",
"logo_uri": "https://issuer.example.org/logo.svg",
"policy_uri": "https://issuer.example.org/privacy",
"tos_uri": "https://issuer.example.org/terms",
"service_documentation": "https://issuer.example.org/.well-known/service-doc",
"issuance_flows": {
"deferred_flow": true,
"max_deferred_issuance_time_minutes": 1440,
"notification_methods": [
"push",
"polling"
]
}
}
],
"authentic_sources": [
{
"id": "https://motorizzazione.gov.example",
"dataset_id": "38832801"
}
]
}
]
}
Nota
Per una gestione migliore e più efficiente della localizzazione delle informazioni contenute nel Catalogo delle Credenziali Digitali, un'Entità che lo consulta DOVREBBE:
Scaricare la versione base del Catalogo delle Credenziali Digitali (compatta, senza localizzazioni) utilizzando l'endpoint
.well-known/credential-catalog.Determinare la lingua preferita dall'Utente.
Scaricare solo i bundle di localizzazione necessari.
Unire dinamicamente il contenuto localizzato con la Struttura del Catalogo degli Attestati Elettronici.
Di seguito è fornito un esempio non normativo dell'output di un bundle di localizzazione:
{
"mDL.name": "Patente di Guida",
"mDL.issuer1.name": "Esempio di Credential Issuer",
"...": "..."
}
I bundle di localizzazione DEVONO essere disponibili all'URI composto aggiungendo il codice locale e .json al valore localization.base_uri definito nel catalogo. Ciascun bundle locale DEVE essere accessibile seguendo il pattern di denominazione {locale_code}.json, dove {locale_code} è sostituito con il codice locale corrispondente dall'array available_locales.
Un esempio non normativo dell'URI di localizzazione italiana per il bundle sarebbe https://trust-registry.eid-wallet.example.it/.well-known/l10n/credential-catalog/it.json.
7.6.3. Decentralizzazione delle Informazioni di Visualizzazione e dei Claims¶
La fonte canonica per le caratteristiche di visualizzazione e la struttura dei claim è determinata dai Metadati dell'Emittente di Credenziali (Configurazione dell'Entità).
La logica complessiva per la presentazione di una Credenziale è:
Il Wallet/Relying Party recupera il Catalogo delle Credenziali Digitali leggero per scoprire la
credential_typedisponibile e l'entity_iddei relativi Emittenti di Credenziali.Recupera i Metadati dell'Emittente di Credenziali completi (Configurazione dell'Entità) dall'
entity_idrilevato.I Metadati dell'Emittente di Credenziali DEVONO contenere le caratteristiche di visualizzazione complete (logo, colori) e le informazioni dettagliate sullo schema (tramite link ai Metadati di Tipo appropriati o direttamente nella configurazione). L'Emittente costruisce questi metadati sulla base dei suggerimenti forniti dalla Fonte Autentica (tramite il Registro FA) e delle specifiche di schema standard (tramite il Registro degli Schemi).
7.7. Tassonomia¶
La Tassonomia fornisce il fondamento semantico per l'interoperabilità delle Credenziali Digitali mantenendo il vocabolario autorevole per l'organizzazione delle Credenziali all'interno dell'ecosistema IT-Wallet. La tassonomia è neutrale rispetto al formato della Credenziale.
La Tassonomia fornisce, in un'unica risorsa, il sistema di classificazione gerarchica che organizza Domini, Classi e Finalità applicabili alle Tipologie di Credenziale, supportando la valutazione delle politiche di autorizzazione e la standardizzazione a livello di ecosistema.
Obiettivi della Tassonomia:
Fondamento Semantico: Stabilire un vocabolario standardizzato per domini e finalità nell'intero ecosistema
Framework per le Politiche: Abilitare decisioni di autorizzazione strutturate basate sulla classificazione gerarchica
Interoperabilità: Garantire un'interpretazione coerente delle classificazioni delle credenziali
Estensibilità: Supportare l'evoluzione dell'ecosistema con nuovi Domini, Classi, Tipologie di Credenziale e Finalità
Conformità Transfrontaliera: Allineamento con i requisiti normativi EU e gli standard internazionali
Struttura della Tassonomia:
La tassonomia mantiene una struttura gerarchica a quattro livelli:
Domini: Classificazione di primo livello che rappresenta ampie aree funzionali (es. IDENTITY, HEALTH, FINANCIAL, AUTHENTICATION)
Classe (Famiglia di Credenziali): Famiglia di Credenziali che condividono funzione, struttura o significato giuridico simili (es. Documenti di Identità, Certificati di Stato Civile, Albi Professionali, Accesso)
Tipologia di Credenziale: Definizione specifica di Credenziale emessa da un'autorità (es. Credenziale di Viaggio Digitale, Certificato di Nascita, Patente di Guida Mobile).
Finalità (Intento di Verifica): Obiettivi di verifica che una Credenziale può soddisfare (es. Verifica dell'Identità, Verifica dell'Età, Idoneità a servizi specifici, Verifica del permesso di accesso).
Nota
La Tipologia di Credenziale è un concetto definito a livello del Catalogo delle Credenziali Digitali, non all'interno della Tassonomia. La Tassonomia fornisce il vocabolario di classificazione (Domini, Classi, Finalità) a cui le Tipologie di Credenziale nel Catalogo fanno riferimento.
Supporto alla Localizzazione:
La tassonomia supporta ambienti multilingue tramite il pattern con suffisso _l10n_id, abilitando una gestione efficiente della localizzazione per le interfacce utente e le implementazioni transfrontaliere.
Utilizzo della Tassonomia:
Registro dei Claims: Catalogo dei singoli claim
Registro FA: Le Fonti Autentiche dichiarano le capacità utilizzando le classificazioni della tassonomia
Catalogo delle Credenziali Digitali: Le Tipologie di Credenziale specificano Domini, Classi e Finalità
Politiche di Autorizzazione: La valutazione delle politiche sfrutta la struttura della tassonomia per le decisioni di controllo degli accessi
La Tassonomia è accessibile attraverso l'endpoint dedicato alla tassonomia come definito nel meccanismo di discovery del registro ed è mantenuta dall'Organismo di Vigilanza per garantire la conformità normativa e la coerenza semantica.
Struttura JSON della Tassonomia:
Nome Campo |
Descrizione |
|---|---|
id |
OBBLIGATORIO. Identificatore univoco della Tassonomia (es. |
version |
OBBLIGATORIO. La versione della Tassonomia (es. |
last_modified |
OBBLIGATORIO. Il timestamp che indica quando la Tassonomia è stata aggiornata l'ultima volta (es. |
name_l10n_id |
OBBLIGATORIO. Chiave di localizzazione che fa riferimento al nome leggibile della Tassonomia (es. |
description_l10n_id |
OBBLIGATORIO. Chiave di localizzazione che fa riferimento alla descrizione leggibile della Tassonomia (es. |
localization |
OBBLIGATORIO. Oggetto di configurazione della localizzazione contenente:
|
domains |
OBBLIGATORIO. Array di oggetti Dominio, ciascuno contenente:
|
purposes |
OBBLIGATORIO. Array piatto di tutti gli oggetti Finalità definiti nella tassonomia, ciascuno contenente:
|
Di seguito è fornito un esempio non normativo della struttura della Tassonomia:
{
"id": "urn:taxonomy:it-wallet",
"version": "1.0.0",
"last_modified": "2026-03-11T00:00:00Z",
"name_l10n_id": "taxonomy.name",
"description_l10n_id": "taxonomy.description",
"localization": {
"available_locales": [
"en",
"it"
],
"base_uri": "https://trust-registry.eid-wallet.example.it/.well-known/l10n/taxonomy/",
"default_locale": "it",
"version": "1.0.0"
},
"domains": [
{
"classes": [
{
"id": "IDENTIFICATION_DOCUMENTS",
"name_l10n_id": "class.identification_documents.name",
"supported_purposes": [
"IDENTITY_VERIFICATION",
"AGE_VERIFICATION",
"PERSON_IDENTIFICATION"
]
},
{
"id": "CIVIL_REGISTRY_STATUS",
"name_l10n_id": "class.civil_registry_status.name",
"supported_purposes": [
"CIVIL_STATUS_VERIFICATION",
"RIGHT_OF_RESIDENCE",
"HOUSEHOLD_COMPOSITION_VERIFICATION"
]
},
{
"id": "ECONOMIC_LEGAL_STATUS",
"name_l10n_id": "class.economic_legal_status.name",
"supported_purposes": [
"ELIGIBILITY_VERIFICATION",
"LEGAL_STATUS_VERIFICATION",
"CRIMINAL_RECORD_CHECK"
]
}
],
"description_l10n_id": "domain.identity.description",
"id": "IDENTITY",
"name_l10n_id": "domain.identity.name"
},
{
"classes": [
{
"id": "PROPERTY_CADASTRAL_DOCS",
"name_l10n_id": "class.property_cadastral_docs.name",
"supported_purposes": [
"RESIDENCE_HOUSEHOLD_VERIFICATION",
"PROPERTY_OWNERSHIP_VERIFICATION",
"REAL_ESTATE_COMPLIANCE"
]
},
{
"id": "FAMILY_DOCUMENTS",
"name_l10n_id": "class.family_documents.name",
"supported_purposes": [
"HOUSEHOLD_COMPOSITION_VERIFICATION",
"FAMILY_SOCIAL_SERVICES_ELIGIBILITY"
]
},
{
"id": "LOCAL_TAX_DOCUMENTS",
"name_l10n_id": "class.local_tax_documents.name",
"supported_purposes": [
"LOCAL_TAX_COMPLIANCE",
"PROPERTY_TAX_VERIFICATION"
]
}
],
"description_l10n_id": "domain.home_family.description",
"id": "HOME_FAMILY",
"name_l10n_id": "domain.home_family.name"
},
{
"classes": [
{
"id": "EDUCATIONAL_QUALIFICATIONS",
"name_l10n_id": "class.educational_qualifications.name",
"supported_purposes": [
"QUALIFICATION_DEGREE_VERIFICATION",
"EDUCATION_PATHWAY_ELIGIBILITY"
]
},
{
"id": "PROFESSIONAL_CERTIFICATIONS",
"name_l10n_id": "class.professional_certifications.name",
"supported_purposes": [
"PROFESSIONAL_LICENSE_VERIFICATION",
"SKILLS_ASSESSMENT"
]
}
],
"description_l10n_id": "domain.education.description",
"id": "EDUCATION",
"name_l10n_id": "domain.education.name"
},
{
"classes": [
{
"id": "CERTIFICATIONS_ELIGIBILITY",
"name_l10n_id": "class.certifications_eligibility.name",
"supported_purposes": [
"VACCINATION_STATUS_VERIFICATION",
"FITNESS_STATUS_VERIFICATION",
"HEALTH_RESTRICTED_ACCESS"
]
},
{
"id": "MEDICAL_RECORDS",
"name_l10n_id": "class.medical_records.name",
"supported_purposes": [
"HEALTHCARE_SERVICES_ACCESS",
"MEDICAL_RECORDS_SHARING",
"MEDICAL_HISTORY_VALIDATION"
]
}
],
"description_l10n_id": "domain.health.description",
"id": "HEALTH",
"name_l10n_id": "domain.health.name"
},
{
"classes": [
{
"id": "PAYMENT_INSTRUMENTS",
"name_l10n_id": "class.payment_instruments.name",
"supported_purposes": [
"PAYMENT_AUTHORIZATION",
"PAYMENT_EXECUTION",
"PROOF_OF_PAYMENT"
]
},
{
"id": "PAYMENT_CREDENTIALS_AUTHORIZATIONS",
"name_l10n_id": "class.payment_credentials_authorizations.name",
"supported_purposes": [
"FINANCIAL_AUTHORIZATION_MANAGEMENT",
"STRONG_CUSTOMER_AUTHENTICATION"
]
},
{
"id": "PUBLIC_PAYMENTS_FEES",
"name_l10n_id": "class.public_payments_fees.name",
"supported_purposes": [
"PROOF_OF_TAX_PAYMENT",
"PROOF_OF_FEE_PAYMENT",
"DIGITAL_STAMP_DUTY_VALIDATION"
]
},
{
"id": "RECURRING_PAYMENTS_SUBSCRIPTIONS",
"name_l10n_id": "class.recurring_payments_subscriptions.name",
"supported_purposes": [
"RECURRING_PAYMENT_MANAGEMENT",
"SUBSCRIPTION_MANDATE_VERIFICATION"
]
}
],
"description_l10n_id": "domain.financial.description",
"id": "FINANCIAL",
"name_l10n_id": "domain.financial.name"
},
{
"classes": [
{
"id": "CULTURAL_CARDS_BENEFITS",
"name_l10n_id": "class.cultural_cards_benefits.name",
"supported_purposes": [
"CULTURAL_SERVICES_ACCESS",
"LEISURE_SERVICES_ACCESS",
"MEMBER_DISCOUNT_APPLICATION"
]
},
{
"id": "MEMBERSHIP_LOYALTY_PROGRAMS",
"name_l10n_id": "class.membership_loyalty_programs.name",
"supported_purposes": [
"AFFILIATION_VERIFICATION",
"PARTICIPATION_VERIFICATION",
"LOYALTY_BENEFITS_USE"
]
}
],
"description_l10n_id": "domain.culture_leisure.description",
"id": "CULTURE_LEISURE",
"name_l10n_id": "domain.culture_leisure.name"
},
{
"classes": [
{
"id": "EMPLOYMENT_DOCUMENTS",
"name_l10n_id": "class.employment_documents.name",
"supported_purposes": [
"EMPLOYMENT_STATUS_VERIFICATION",
"PROFESSIONAL_PROFILE_VALIDATION"
]
},
{
"id": "EMPLOYMENT_STATUS",
"name_l10n_id": "class.employment_status.name",
"supported_purposes": [
"CONTRIBUTION_RECORDS_VERIFICATION",
"EMPLOYMENT_BENEFITS_ELIGIBILITY"
]
},
{
"id": "EMPLOYMENT_AFFILIATION",
"name_l10n_id": "class.employment_affiliation.name",
"supported_purposes": [
"ACCESS_PERMIT"
]
}
],
"description_l10n_id": "domain.employment.description",
"id": "EMPLOYMENT",
"name_l10n_id": "domain.employment.name"
},
{
"classes": [
{
"id": "LICENSES_AUTHORIZATIONS",
"name_l10n_id": "class.licenses_authorizations.name",
"supported_purposes": [
"DRIVING_RIGHTS_VERIFICATION",
"NAVIGATION_RIGHTS_VERIFICATION",
"LAW_ENFORCEMENT_CONTROLS"
]
},
{
"id": "VEHICLE_DOCUMENTS",
"name_l10n_id": "class.vehicle_documents.name",
"supported_purposes": [
"VEHICLE_REGISTRATION_VERIFICATION",
"VEHICLE_INSPECTION_VERIFICATION",
"INSURANCE_STATUS_CHECK"
]
},
{
"id": "TRANSPORT_SUBSCRIPTIONS",
"name_l10n_id": "class.transport_subscriptions.name",
"supported_purposes": [
"TRANSPORT_SERVICES_ACCESS",
"PUBLIC_TRANSPORT_PASS_VERIFICATION"
]
},
{
"id": "TRAVEL_DOCUMENTS",
"name_l10n_id": "class.travel_documents.name",
"supported_purposes": [
"RIGHT_TO_TRAVEL",
"CROSS_BORDER_IDENTITY_CHECK"
]
},
{
"id": "TRAVEL_INSURANCE_BOOKINGS",
"name_l10n_id": "class.travel_insurance_bookings.name",
"supported_purposes": [
"TRAVEL_INSURANCE_VERIFICATION",
"ACCOMMODATION_RESERVATION_CHECK",
"TRANSPORT_RESERVATION_CHECK"
]
},
{
"id": "DISCOUNTS_BENEFITS",
"name_l10n_id": "class.discounts_benefits.name",
"supported_purposes": [
"MEMBER_DISCOUNT_APPLICATION",
"TOURIST_BENEFITS_ACCESS"
]
}
],
"description_l10n_id": "domain.mobility_travel.description",
"id": "MOBILITY_TRAVEL",
"name_l10n_id": "domain.mobility_travel.name"
},
{
"classes": [
{
"id": "ECONOMIC_BENEFITS_ALLOWANCES",
"name_l10n_id": "class.economic_benefits_allowances.name",
"supported_purposes": [
"FAMILY_BENEFITS_ELIGIBILITY",
"UNEMPLOYMENT_BENEFITS_ELIGIBILITY",
"ECONOMIC_SUPPORT_ALLOCATION"
]
},
{
"id": "INCENTIVES_VOUCHERS",
"name_l10n_id": "class.incentives_vouchers.name",
"supported_purposes": [
"DIGITAL_VOUCHER_USE",
"PURCHASE_INCENTIVE_USE",
"CASHBACK_ELIGIBILITY_VERIFICATION"
]
},
{
"id": "HEALTH_WELLBEING_BONUSES",
"name_l10n_id": "class.health_wellbeing_bonuses.name",
"supported_purposes": [
"HEALTHCARE_BONUS_ACCESS",
"MENTAL_HEALTH_VOUCHER_USE",
"SPORTS_VOUCHER_USE"
]
}
],
"description_l10n_id": "domain.bonuses.description",
"id": "BONUSES",
"name_l10n_id": "domain.bonuses.name"
}
],
"purposes": [
{
"id": "IDENTITY_VERIFICATION",
"name_l10n_id": "purpose.identity_verification.name"
},
{
"id": "AGE_VERIFICATION",
"name_l10n_id": "purpose.age_verification.name"
},
{
"id": "PERSON_IDENTIFICATION",
"name_l10n_id": "purpose.person_identification.name"
},
{
"id": "CIVIL_STATUS_VERIFICATION",
"name_l10n_id": "purpose.civil_status_verification.name"
},
{
"id": "RIGHT_OF_RESIDENCE",
"name_l10n_id": "purpose.right_of_residence.name"
},
{
"id": "HOUSEHOLD_COMPOSITION_VERIFICATION",
"name_l10n_id": "purpose.household_composition_verification.name"
},
{
"id": "ELIGIBILITY_VERIFICATION",
"name_l10n_id": "purpose.eligibility_verification.name"
},
{
"id": "LEGAL_STATUS_VERIFICATION",
"name_l10n_id": "purpose.legal_status_verification.name"
},
{
"id": "CRIMINAL_RECORD_CHECK",
"name_l10n_id": "purpose.criminal_record_check.name"
},
{
"id": "RESIDENCE_HOUSEHOLD_VERIFICATION",
"name_l10n_id": "purpose.residence_household_verification.name"
},
{
"id": "PROPERTY_OWNERSHIP_VERIFICATION",
"name_l10n_id": "purpose.property_ownership_verification.name"
},
{
"id": "REAL_ESTATE_COMPLIANCE",
"name_l10n_id": "purpose.real_estate_compliance.name"
},
{
"id": "FAMILY_SOCIAL_SERVICES_ELIGIBILITY",
"name_l10n_id": "purpose.family_social_services_eligibility.name"
},
{
"id": "LOCAL_TAX_COMPLIANCE",
"name_l10n_id": "purpose.local_tax_compliance.name"
},
{
"id": "PROPERTY_TAX_VERIFICATION",
"name_l10n_id": "purpose.property_tax_verification.name"
},
{
"id": "QUALIFICATION_DEGREE_VERIFICATION",
"name_l10n_id": "purpose.qualification_degree_verification.name"
},
{
"id": "EDUCATION_PATHWAY_ELIGIBILITY",
"name_l10n_id": "purpose.education_pathway_eligibility.name"
},
{
"id": "PROFESSIONAL_LICENSE_VERIFICATION",
"name_l10n_id": "purpose.professional_license_verification.name"
},
{
"id": "SKILLS_ASSESSMENT",
"name_l10n_id": "purpose.skills_assessment.name"
},
{
"id": "VACCINATION_STATUS_VERIFICATION",
"name_l10n_id": "purpose.vaccination_status_verification.name"
},
{
"id": "FITNESS_STATUS_VERIFICATION",
"name_l10n_id": "purpose.fitness_status_verification.name"
},
{
"id": "HEALTH_RESTRICTED_ACCESS",
"name_l10n_id": "purpose.health_restricted_access.name"
},
{
"id": "HEALTHCARE_SERVICES_ACCESS",
"name_l10n_id": "purpose.healthcare_services_access.name"
},
{
"id": "MEDICAL_RECORDS_SHARING",
"name_l10n_id": "purpose.medical_records_sharing.name"
},
{
"id": "MEDICAL_HISTORY_VALIDATION",
"name_l10n_id": "purpose.medical_history_validation.name"
},
{
"id": "PAYMENT_AUTHORIZATION",
"name_l10n_id": "purpose.payment_authorization.name"
},
{
"id": "PAYMENT_EXECUTION",
"name_l10n_id": "purpose.payment_execution.name"
},
{
"id": "PROOF_OF_PAYMENT",
"name_l10n_id": "purpose.proof_of_payment.name"
},
{
"id": "FINANCIAL_AUTHORIZATION_MANAGEMENT",
"name_l10n_id": "purpose.financial_authorization_management.name"
},
{
"id": "STRONG_CUSTOMER_AUTHENTICATION",
"name_l10n_id": "purpose.strong_customer_authentication.name"
},
{
"id": "PROOF_OF_TAX_PAYMENT",
"name_l10n_id": "purpose.proof_of_tax_payment.name"
},
{
"id": "PROOF_OF_FEE_PAYMENT",
"name_l10n_id": "purpose.proof_of_fee_payment.name"
},
{
"id": "DIGITAL_STAMP_DUTY_VALIDATION",
"name_l10n_id": "purpose.digital_stamp_duty_validation.name"
},
{
"id": "RECURRING_PAYMENT_MANAGEMENT",
"name_l10n_id": "purpose.recurring_payment_management.name"
},
{
"id": "SUBSCRIPTION_MANDATE_VERIFICATION",
"name_l10n_id": "purpose.subscription_mandate_verification.name"
},
{
"id": "CULTURAL_SERVICES_ACCESS",
"name_l10n_id": "purpose.cultural_services_access.name"
},
{
"id": "LEISURE_SERVICES_ACCESS",
"name_l10n_id": "purpose.leisure_services_access.name"
},
{
"id": "MEMBER_DISCOUNT_APPLICATION",
"name_l10n_id": "purpose.member_discount_application.name"
},
{
"id": "AFFILIATION_VERIFICATION",
"name_l10n_id": "purpose.affiliation_verification.name"
},
{
"id": "PARTICIPATION_VERIFICATION",
"name_l10n_id": "purpose.participation_verification.name"
},
{
"id": "LOYALTY_BENEFITS_USE",
"name_l10n_id": "purpose.loyalty_benefits_use.name"
},
{
"id": "EMPLOYMENT_STATUS_VERIFICATION",
"name_l10n_id": "purpose.employment_status_verification.name"
},
{
"id": "PROFESSIONAL_PROFILE_VALIDATION",
"name_l10n_id": "purpose.professional_profile_validation.name"
},
{
"id": "CONTRIBUTION_RECORDS_VERIFICATION",
"name_l10n_id": "purpose.contribution_records_verification.name"
},
{
"id": "EMPLOYMENT_BENEFITS_ELIGIBILITY",
"name_l10n_id": "purpose.employment_benefits_eligibility.name"
},
{
"id": "DRIVING_RIGHTS_VERIFICATION",
"name_l10n_id": "purpose.driving_rights_verification.name"
},
{
"id": "NAVIGATION_RIGHTS_VERIFICATION",
"name_l10n_id": "purpose.navigation_rights_verification.name"
},
{
"id": "LAW_ENFORCEMENT_CONTROLS",
"name_l10n_id": "purpose.law_enforcement_controls.name"
},
{
"id": "VEHICLE_REGISTRATION_VERIFICATION",
"name_l10n_id": "purpose.vehicle_registration_verification.name"
},
{
"id": "VEHICLE_INSPECTION_VERIFICATION",
"name_l10n_id": "purpose.vehicle_inspection_verification.name"
},
{
"id": "INSURANCE_STATUS_CHECK",
"name_l10n_id": "purpose.insurance_status_check.name"
},
{
"id": "TRANSPORT_SERVICES_ACCESS",
"name_l10n_id": "purpose.transport_services_access.name"
},
{
"id": "PUBLIC_TRANSPORT_PASS_VERIFICATION",
"name_l10n_id": "purpose.public_transport_pass_verification.name"
},
{
"id": "RIGHT_TO_TRAVEL",
"name_l10n_id": "purpose.right_to_travel.name"
},
{
"id": "CROSS_BORDER_IDENTITY_CHECK",
"name_l10n_id": "purpose.cross_border_identity_check.name"
},
{
"id": "TRAVEL_INSURANCE_VERIFICATION",
"name_l10n_id": "purpose.travel_insurance_verification.name"
},
{
"id": "ACCOMMODATION_RESERVATION_CHECK",
"name_l10n_id": "purpose.accommodation_reservation_check.name"
},
{
"id": "TRANSPORT_RESERVATION_CHECK",
"name_l10n_id": "purpose.transport_reservation_check.name"
},
{
"id": "TOURIST_BENEFITS_ACCESS",
"name_l10n_id": "purpose.tourist_benefits_access.name"
},
{
"id": "FAMILY_BENEFITS_ELIGIBILITY",
"name_l10n_id": "purpose.family_benefits_eligibility.name"
},
{
"id": "UNEMPLOYMENT_BENEFITS_ELIGIBILITY",
"name_l10n_id": "purpose.unemployment_benefits_eligibility.name"
},
{
"id": "ECONOMIC_SUPPORT_ALLOCATION",
"name_l10n_id": "purpose.economic_support_allocation.name"
},
{
"id": "DIGITAL_VOUCHER_USE",
"name_l10n_id": "purpose.digital_voucher_use.name"
},
{
"id": "PURCHASE_INCENTIVE_USE",
"name_l10n_id": "purpose.purchase_incentive_use.name"
},
{
"id": "CASHBACK_ELIGIBILITY_VERIFICATION",
"name_l10n_id": "purpose.cashback_eligibility_verification.name"
},
{
"id": "HEALTHCARE_BONUS_ACCESS",
"name_l10n_id": "purpose.healthcare_bonus_access.name"
},
{
"id": "MENTAL_HEALTH_VOUCHER_USE",
"name_l10n_id": "purpose.mental_health_voucher_use.name"
},
{
"id": "SPORTS_VOUCHER_USE",
"name_l10n_id": "purpose.sports_voucher_use.name"
},
{
"id": "ACCESS_PERMIT",
"name_l10n_id": "purpose.access_permit.name"
}
]
}
Nota
Per una gestione migliore e più efficiente della localizzazione della Tassonomia, un'Entità che la consulta DOVREBBE:
Scaricare la versione base della Tassonomia (compatta, senza localizzazioni) utilizzando l'endpoint
.well-known/taxonomy.Determinare la lingua preferita dall'Utente.
Scaricare solo i bundle di localizzazione necessari.
Unire dinamicamente il contenuto localizzato con la struttura della Tassonomia.
Di seguito è fornito un esempio non normativo dell'output di un bundle di localizzazione:
{
"taxonomy.name": "IT-Wallet Taxonomy",
"taxonomy.description": "Hierarchical classification system for Digital Credentials in the IT-Wallet ecosystem",
"domain.identity.name": "Identity",
"domain.identity.description": "Credentials that establish or confirm a person's legal identity and personal, civil or legal status.",
"class.identification_documents.name": "Identification Documents",
"purpose.identity_verification.name": "Identity verification",
"domain.authentication.name": "Authentication",
"domain.authentication.description": "Credentials that attest authorisation to access restricted physical or digital spaces, services or resources.",
"class.access.name": "Access",
"purpose.access_permit.name": "Access permit verification",
"...": "..."
}
I bundle di localizzazione DEVONO essere disponibili all'URI composto aggiungendo il codice locale e .json al valore localization.base_uri definito nella tassonomia. Ciascun bundle locale DEVE essere accessibile seguendo il pattern di denominazione {locale_code}.json, dove {locale_code} è sostituito con il codice locale corrispondente dall'array available_locales.
Un esempio non normativo dell'URI di localizzazione italiana per il bundle sarebbe https://trust-registry.eid-wallet.example.it/.well-known/l10n/taxonomy/it.json.
7.8. Registro degli Schema¶
Il Registro degli Schemi è l'inventario autorevole di tutti gli Schemi di Credenziale (JSON Schema per SD-JWT, CBOR Schema per mDOC) noti e accettati nell'ecosistema IT-Wallet. È gestito dal Trust Anchor e fornisce un'unica fonte verificabile per il recupero delle specifiche tecniche necessarie per il parsing, la validazione e la visualizzazione delle Credenziali Digitali.
Obiettivi del Registro degli Schemi:
Centralizzazione degli Schemi: Fornire un punto di accesso centralizzato per tutti gli schemi tecnici utilizzati dalle Credenziali Digitali.
Integrità e Autenticità: Garantire l'integrità e l'autenticità dei documenti di schema tramite digest crittografici.
Interoperabilità: Facilitare l'integrazione senza soluzione di continuità dei Fornitori di Wallet e delle Relying Party fornendo versioni di schema coerenti.
Supporto al Ciclo di Vita della Credenziale: Fungere da punto di riferimento verificabile per la validazione degli schemi durante l'emissione e la presentazione.
Struttura e Accesso al Registro degli Schemi:
Il Registro degli Schemi è accessibile tramite l'endpoint di discovery .well-known/it-wallet-registry nel campo schema_registry. Consente la discovery degli URI degli schemi e i relativi controlli di integrità crittografica.
Nome Campo |
Descrizione |
|---|---|
version |
OBBLIGATORIO. La versione del Registro degli Schemi (es. |
last_updated |
OBBLIGATORIO. Il timestamp che indica quando l'elenco è stato aggiornato l'ultima volta (es. |
schemas |
OBBLIGATORIO. Un Array JSON in cui ogni voce è un Oggetto JSON che rappresenta una definizione di Schema di Credenziale. Ogni oggetto contiene i parametri definiti nella tabella "Parametri di Definizione dello Schema" di seguito, inclusi identificazione dello schema, specifiche del formato, URI e dati di verifica dell'integrità. |
Nome Campo |
Descrizione |
|---|---|
id |
OBBLIGATORIO. L'identificatore univoco dello schema (es. |
version |
OBBLIGATORIO. La versione della definizione dello schema (es. |
credential_type |
OBBLIGATORIO. L'identificatore univoco della tipologia di Credenziale Digitale (es. |
format |
OBBLIGATORIO. Il formato tecnico dello schema (es. |
vct |
CONDIZIONALE. È OBBLIGATORIO se il |
docType |
CONDIZIONALE. È OBBLIGATORIO se il |
schema_uri |
OBBLIGATORIO. L'URI dove è possibile recuperare il documento dello schema (es. |
schema_uri#integrity |
OBBLIGATORIO. Digest crittografico del documento di schema per la verifica dell'integrità. Formato: |
description |
OPZIONALE. Una descrizione leggibile dello schema, che può essere localizzata (es. "Schema tecnico per la mobile Driving License in formato mdoc."). |
Esempio di Registro degli Schemi:
Un esempio non normativo del payload del Registro degli Schemi:
{
"version": "1.0.0",
"last_updated": "2025-03-15T12:00:00Z",
"schemas": [
{
"id": "mDL+mso_mdoc+org.iso.18013.5.1.mDL",
"version": "1.0.0",
"credential_type": "mDL",
"format": "mso_mdoc",
"docType": "org.iso.18013.5.1.mDL",
"schema_uri": "https://trust-registry.it-wallet.example.it/.well-known/schemas/mdoc/mDL",
"schema_uri#integrity": "sha256-c8b708728e4c5756e35c03aeac257ca878d1f717d7b61f621be4d36dbd9b9c16",
"description": "Schema tecnico per la mobile Driving License in formato mdoc."
},
{
"id": "pid+dc+sd-jwt+urn:eudi:pid:it:1",
"version": "1.0.0",
"credential_type": "pid",
"format": "dc+sd-jwt",
"vct": "urn:eudi:pid:it:1",
"schema_uri": "https://trust-registry.it-wallet.example.it/.well-known/schemas/sd-jwt/pid",
"schema_uri#integrity": "sha256-a1b2c3d4e5f67890...",
"description": "Schema tecnico per la Person Identification Data (PID) in formato SD-JWT."
}
]
}
7.9. Integrazione del Registro e Riferimenti Incrociati¶
I componenti del registro sono interconnessi e operano congiuntamente per supportare il completo ecosistema delle Credenziali:
Registro FA ↔ Tassonomia: Le entità FA dichiarano le capacità utilizzando le classificazioni della tassonomia per una categorizzazione standardizzata.
Registro FA ↔ Catalogo: Le tipologie di Credenziale fanno riferimento alle capacità FA per la validazione della fonte dati.
Catalogo ↔ Tassonomia: Le voci del Catalogo specificano domini e finalità della tassonomia per la discovery e l'autorizzazione.
Registro della Federazione ↔ Tutti i Componenti: Fornisce la validazione crittografica della fiducia per tutte le operazioni di registro e l'autenticazione delle entità.
Registro degli Schemi ↔ Emittenti/RP: Fornisce il collegamento verificabile a tutte le specifiche di formato delle Credenziali note nell'ecosistema.
7.10. Percorsi di Utilizzo dell'Infrastruttura del Registro¶
I componenti dell'Infrastruttura del Registro sono progettati per supportare diverse fasi operative dell'ecosistema IT-Wallet, ciascuna con specifiche interazioni tra le entità. I principali Percorsi di seguito illustrano le interazioni con l'Infrastruttura del Registro.
7.10.2. Emissione di Credenziali¶
Questo percorso definisce come un Emittente di Credenziali utilizza l'Infrastruttura del Registro per preparare ed emettere una Credenziale Digitale conforme.
Identificazione dei Requisiti: L'EI consulta il Catalogo delle Credenziali Digitali per i requisiti tecnici della tipologia di Credenziale da emettere (es.
max_validity_days,min_loa).Risoluzione di Schemi e Claims:
L'EI consulta il Registro degli Schemi per recuperare la specifica tecnica del formato e dello schema (es. JSON Schema per SD-JWT) richiesta dal Catalogo, verificandone la validità e l'integrità tramite l'hash (schema_uri#integrity).
L'EI accede al Registro dei Claims per recuperare le definizioni semantiche standardizzate e i formati dei dati (tipi di dati) degli attributi (claim) necessari.
Recupero dei Dati Autentici:
L'EI consulta il Registro delle Fonti Autentiche (FA) per identificare la Fonte Autentica (FA) autorizzata per il dataset richiesto. Il Registro FA fornisce l'
entity_iddella FA e i dettagli tecnici dell'interfaccia (integration_endpoint, integration_method).L'EI consulta la specifica dell'endpoint FA per implementare l'integrazione necessaria al recupero dei dati dell'Utente per popolare la Credenziale Digitale.
Emissione della Credenziale: L'EI utilizza i dati recuperati, gli schemi validati e i formati specificati per generare e firmare la Credenziale Digitale nel formato corretto (es. SD-JWT o mDOC).
7.10.3. Presentazione e Verifica delle Credenziali¶
Questo percorso descrive come un'Istanza Wallet e una Relying Party (RP) interagiscono con l'Infrastruttura del Registro quando una Credenziale Digitale deve essere presentata da un Utente.
Autorizzazione e Selezione del Wallet:
Il Wallet riceve una Richiesta di Presentazione dalla RP, verifica la validità della richiesta confrontando i claim richiesti con le Politiche di Autorizzazione relative alla RP.
Il Wallet consulta il Catalogo delle Credenziali Digitali e la Tassonomia per verificare i Domini, le Classi e le Finalità associate alle tipologie di Credenziale in suo possesso, valutando quali Credenziali sono adatte alla richiesta.
Il Wallet verifica se gli attributi richiesti (claim) sono disponibili e autorizzati alla divulgazione in base alla politica della richiesta (scenari Credential-Specific o Credential-Agnostic).
L'Utente autorizza il rilascio degli attributi selettivamente divulgati selezionati. Il Wallet quindi confeziona e presenta la Credenziale Digitale alla RP.
Discovery e Integrità:
La RP riceve la Credenziale Digitale dall'Utente.
La RP consulta il Registro della Federazione tramite l'endpoint del Trust Anchor (federation_resolve, federation_trust_mark_status) per verificare la fiducia crittografica (Trust Mark) dell'Emittente e del Fornitore di Wallet come definito nella Sezione L'Infrastruttura di Trust.
La RP consulta il Registro degli Schemi per scaricare lo schema della Credenziale presentata (schema_uri), verificandone l'integrità (schema_uri#integrity).
Validazione dello Schema e della Politica Finale:
La RP utilizza lo schema recuperato per validare la struttura della Credenziale e i tipi di dati degli attributi rivelati.
La RP esegue la verifica finale per assicurarsi che gli attributi presentati siano conformi ai requisiti specifici della richiesta iniziale e alla politica di autorizzazione.
Accettazione o Rifiuto: Sulla base della validazione crittografica, della conformità allo schema e dell'autorizzazione basata su politiche, la RP accetta o rifiuta la Credenziale per l'accesso al servizio.