7. Infrastruttura del Registro¶
L'ecosistema IT-Wallet opera attraverso un'infrastruttura di registro che fornisce definizioni standardizzate dei dati, registrazione delle entità e capacità di discovery delle credenziali. Il sistema di registro è composto da più componenti interconnessi che supportano l'intero ciclo di vita delle operazioni degli Attestati Elettronici, dall'onboarding delle entità alla presentazione delle credenziali.
L'architettura del registro è necessaria a definire i requisiti di standardizzazione semantica, gestione del trust della federazione e discovery delle credenziali attraverso componenti di registro specializzati che garantiscono interoperabilità e conformità in tutto l'ecosistema.
7.1. Panoramica dell'Architettura del Registro¶
Il sistema di registro IT-Wallet comprende cinque componenti principali:
Registro degli Attributi: Definizioni semantiche standardizzate per singoli attributi delle credenziali, tipi di dati e regole di validazione.
Registro delle Fonti Autentiche (AS): Catalogo dei fornitori di dati registrati con le loro capacità dichiarate e claim disponibili.
Registro della Federazione: Elenco autorevole delle entità fidate che partecipano alla federazione con le loro configurazioni tecniche.
Catalogo degli Attestati Elettronici: Meccanismo di discovery pubblico per i tipi di credenziali disponibili con i loro metadati e informazioni di rilascio.
Tassonomia: Sistema di classificazione gerarchica che organizza le credenziali per dominio e scopo.
Questi componenti del registro sono interconnessi e mantenuti dall'Organismo di Supervisione per garantire coerenza, sicurezza e conformità normativa in tutto l'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 delle API REST 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 per la 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 sistema di registro IT-Wallet DEVE utilizzare due modelli di accesso distinti:
API del Registro Dati: DEVONO supportare capacità di paginazione e filtraggio.
Infrastruttura di Trust della Federazione: come definito in L'Infrastruttura di Trust.
Di seguito viene fornito 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
Struttura del payload JWT (decodificato):
{
"registry_version": "1.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/credential-catalog",
"taxonomy": "https://trust-anchor.eid-wallet.example.it/api/v1/taxonomy",
"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 degli Attributi¶
Il Registro degli Attributi fornisce definizioni semantiche standardizzate per singoli attributi delle credenziali, tipi di dati e regole di validazione. Questo registro serve come fondamento semantico per la standardizzazione degli attributi delle credenziali in tutto l'ecosistema IT-Wallet, lavorando in coordinamento con il componente Tassonomia per la classificazione gerarchica.
L'Organismo di Supervisione DEVE mantenere il Registro degli Attributi per garantire coerenza semantica e conformità normativa in tutto l'ecosistema. Il registro DEVE contenere:
Claim Standardizzati: Definizioni semantiche per tutti gli attributi delle credenziali con tipi di dati e regole di validazione.
Mappature di Interoperabilità: Definizioni di alias per gli attributi che utilizzano terminologie diverse tra gli standard (ad esempio, ISO18013-5
place_of_birth
mappato al canonicobirth_place
).Formati dei Dati: Tipi di dati standardizzati (string, date, numeric, boolean, email, url, image, array, object) con pattern di validazione.
Il Registro degli Attributi DEVE garantire:
Coerenza Semantica: Previene conflitti tra attributi duplicati o ridondanti in tutto l'ecosistema.
Interoperabilità Transfrontaliera: Garantisce conformità UE e interpretazione coerente degli attributi.
Validazione dello Schema: Fornisce definizioni autorevoli per la validazione degli attributi in tutti gli scenari di credenziali.
Allineamento Normativo: Si coordina con il quadro normativo nazionale ed europeo.
Scenari Credential-Agnostic: Supporta scenari in cui la convenienza dell'utente e l'efficienza operativa aziendale sono prioritarie rispetto alla conformità normativa e ai log di audit.
Nota
Il Registro degli Attributi definisce le proprietà semantiche dei singoli attributi, ma NON DEVE specificare le capacità di selective disclosure. La selective disclosure dipende dalle implementazioni del formato delle credenziali (SD-JWT, mDocs), dalle configurazioni tecniche dell'emittente e dal contesto di presentazione. Queste capacità sono specificate a livello del tipo di credenziale all'interno del Catalogo degli Attestati Elettronici e implementate durante i flussi di presentazione delle credenziali.
7.3.1. Utilizzo del Registro degli Attributi¶
Il Registro degli Attributi DEVE supportare l'intero ciclo di vita dell'ecosistema:
Durante il Processo di Onboarding:
Registrazione AS: Le Fonti Autentiche dichiarano i proprio claim disponibili tra quelli presenti nel registro standardizzato durante la registrazione delle capacità di fornitura dati.
Registrazione CI: I Credential Issuer selezionano le entità AS basandosi sugli attributi richiesti e registrano i tipi di credenziali per la pubblicazione nel catalogo.
Registrazione RP: Le Relying Party specificano i requisiti di autorizzazione utilizzando domini/scopi per tipi di credenziali specifici e/o attributi dell'Utente.
Durante le Attività Operative:
Rilascio di Credenziali: Le definizioni degli attributi garantiscono rappresentazione coerente dei dati tra diversi tipi di credenziali.
Richieste di Presentazione: Le RP fanno riferimento agli attributi per la validazione dello schema e la verifica dell'autorizzazione in scenari sia credential-specific che credential-agnostic.
Applicazione delle Policy: Le policy di autorizzazione sfruttano le classificazioni dominio/scopo per il controllo degli accessi.
7.3.2. Struttura del Registro degli Attributi¶
Il Registro degli Attributi mantiene definizioni tecniche, linguisticamente neutrali per la coerenza semantica in tutto l'ecosistema. Le localizzazioni rivolte all'utente per nomi e descrizioni degli attributi sono fornite attraverso i bundle di localizzazione del Catalogo degli Attestati Elettronici, abilitando un supporto multilingue efficiente senza compromettere l'integrità strutturale del registro.
Un esempio non normativo della struttura del Registro degli Attributi è fornito di seguito:
{
"registry_version": "1.0",
"claims": {
"given_name": {
"type": "string",
"description": "Person's given name(s) as appears on official documents",
"aliases": ["first_name", "forename", "given_names"],
"max_length": 100,
"validation": {
"pattern": "^[\\p{L}\\s\\-\\'\\.']+$",
"min_length": 1
}
},
"family_name": {
"type": "string",
"description": "Person's family name as appears on official documents",
"aliases": ["last_name", "surname", "family_names"],
"max_length": 100,
"validation": {
"pattern": "^[\\p{L}\\s\\-\\'\\.']+$",
"min_length": 1
}
},
"birth_date": {
"type": "date",
"description": "Date of birth in ISO 8601 format",
"format": "YYYY-MM-DD",
"validation": {
"min_date": "1900-01-01",
"max_date": "current_date"
}
},
"birth_place": {
"type": "string",
"description": "Place of birth as registered in official records",
"aliases": ["place_of_birth"],
"max_length": 100
},
"tax_code": {
"type": "string",
"description": "Italian fiscal identification code (Codice Fiscale)",
"validation": {
"pattern": "^[A-Z]{6}[0-9]{2}[A-Z][0-9]{2}[A-Z][0-9]{3}[A-Z]$",
"length": 16
}
},
"personal_administrative_number": {
"type": "string",
"description": "ANPR unique person identifier",
"validation": {
"pattern": "^[A-Z0-9]+$"
}
},
"document_number": {
"type": "string",
"description": "Document serial number or identifier",
"validation": {
"pattern": "^[A-Z0-9]+$",
"max_length": 20
}
},
"issue_date": {
"type": "date",
"description": "Document issue date",
"format": "YYYY-MM-DD",
"validation": {
"max_date": "current_date"
}
},
"expiry_date": {
"type": "date",
"description": "Document expiry date",
"format": "YYYY-MM-DD",
"validation": {
"min_date": "current_date"
}
},
"driving_privileges": {
"type": "array",
"description": "Array of authorized vehicle categories with details",
"items": {
"type": "object",
"properties": {
"vehicle_category_code": {
"type": "string",
"enum": ["AM", "A1", "A2", "A", "B", "BE", "C", "CE", "D", "DE"]
},
"issue_date": {"type": "date", "format": "YYYY-MM-DD"},
"expiry_date": {"type": "date", "format": "YYYY-MM-DD"},
"restrictions": {"type": "string", "description": "Category-specific restrictions"}
}
}
},
"portrait": {
"type": "string",
"format": "binary",
"description": "Person's photograph as binary string (JPEG or JPEG2000)",
"encoding": "base64",
"content_type": ["image/jpeg", "image/jp2"],
"validation": {
"max_size_bytes": 50000,
"min_width": 100,
"min_height": 100
}
},
"issuing_authority": {
"type": "string",
"description": "Authority that issued the document",
"max_length": 100
},
"issuing_country": {
"type": "string",
"description": "Country code that issued the document",
"validation": {
"pattern": "^[A-Z]{2}$",
"length": 2
}
}
}
}
7.4. Registro delle Fonti Autentiche¶
L'Organismo di Supervisione DEVE mantenere il Registro delle Fonti Autentiche per abilitare l'accesso coordinato ai dati e il rilascio di credenziali in tutto l'ecosistema. Il Registro AS DEVE contenere almeno:
Informazioni sull'Organizzazione: Dettagli dell'entità legale, stato normativo e ruolo autorevole all'interno di domini specifici.
Capacità di Fornitura Dati: Disponibilità dichiarata degli attributi che fanno riferimento alle definizioni standardizzate del Registro degli Attributi con le corrispondenti classificazioni della Tassonomia.
Metodi di Integrazione: Meccanismi di accesso tecnico (PDND per AS pubbliche, API personalizzate per AS private).
Scopi Previsti: Tipi di credenziali supportati e contesti aziendali per il coordinamento AS-CI.
Garanzia della Qualità dei Dati: Stato autoritativo, frequenza di aggiornamento e capacità di traccia di audit.
Il Registro AS DEVE garantire:
Accesso Coordinato ai Dati: Abilita la discovery CI di dati appropriati dalle Fonti Autentiche per il rilascio di credenziali.
Integrazione AS-CI: Facilita i flussi di lavoro di approvazione e il coordinamento dell'accesso ai dati tra le entità.
Garanzia della Qualità: Mantiene lo stato autoritativo e l'affidabilità dei dati tra diversi domini.
Conformità Normativa: Supporta i requisiti di trasparenza dell'amministrazione pubblica e il coordinamento del settore privato.
7.4.1. Utilizzo del Registro AS¶
Il Registro AS supporta il coordinamento dell'ecosistema durante tutto il ciclo di vita operativo:
- Durante il Processo di Onboarding:
Auto-Dichiarazione AS: Le Fonti Autentiche registrano le specifiche prima che esista un qualsiasi tipo di credenziali nel catalogo.
Discovery dei CI: I Credential Issuer cercano entità AS basandosi sugli attributi richiesti e sui tipi di credenziali previsti.
Coordinamento delle Approvazioni: Le entità AS valutano e approvano le richieste di accesso CI per la fornitura di dati.
- Durante le Attività Operative:
Risoluzione della Fonte Dati: I sistemi CI fanno riferimento al Registro AS per l'accesso ai dati in tempo reale durante il rilascio delle credenziali.
Validazione della Qualità: Le informazioni del Registro AS supportano la verifica dell'origine dei dati e i requisiti di audit.
Gestione dell'Integrazione: Gli endpoint tecnici e i metodi di accesso abilitano la comunicazione standardizzata AS-CI.
7.4.2. Coordinamento AS Pubbliche vs Private¶
L'architettura del Registro AS supporta diversi pattern di coordinamento che riflettono requisiti operativi distinti:
AS dell'Amministrazione Pubblica (Integrazione Standardizzata): Le entità governative forniscono dati autorevoli attraverso meccanismi regolamentati:
Integrazione PDND:
"integration_method": "pdnd_eservice"
per l'accesso standardizzato ai dati governativi.Conformità Normativa: Requisiti di trasparenza completa con pubblicazione nel catalogo pubblico.
Requisiti di Audit: Tracciabilità completa per i processi di rilascio delle credenziali governative.
AS del Settore Privato (Integrazione Flessibile): Le entità private forniscono dati specializzati attraverso accordi personalizzati:
API Personalizzate:
"integration_method": "custom_api"
per pattern di accesso ai dati specifici dell'azienda.Selective Disclosurea: Visibilità pubblica limitata con flussi di lavoro di approvazione specifici per CI.
Flessibilità Aziendale: Integrazione su misura che supporta diversi casi d'uso del settore privato.
Questo approccio abilita sia la trasparenza normativa per l'amministrazione pubblica che la flessibilità aziendale per le entità del settore privato mantenendo l'accesso coordinato ai dati in tutto l'ecosistema.
7.4.3. Struttura del Registro AS¶
Durante la registrazione, le Fonti Autentiche dichiarano le loro specifiche prima che esista un qualsiasi tipo di credenziale nel catalogo. Questa dichiarazione stabilisce le fondamenta per la successiva registrazione CI e creazione di tipi di credenziali.
7.4.3.1. Schema dell'Identificatore Univoco AS¶
Ad ogni Fonte Autentica DEVE essere assegnato un identificatore univoco che segue lo schema URL HTTPS definito di seguito. Questo identificatore è utilizzato per fare riferimento alle entità AS in tutto il sistema di registro e nel Catalogo degli Attestati Elettronici, garantendo coerenza con i pattern di identificazione delle entità OpenID Federation.
Schema dell'Identificatore AS:
https://{organization_domain}[/{optional_path}]
Componenti dello Schema:
organization_domain: Dominio DNS controllato dall'organizzazione
optional_path: Componente di path aggiuntivo per servizi o dipartimenti specifici
L'identificatore AS DEVE seguire queste regole normative:
Protocollo HTTPS: DEVE utilizzare lo schema HTTPS per sicurezza e verifica del trust
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 corruzione dei riferimenti
Risolvibilità: L'URL DOVREBBE essere risolvibile (anche se non è richiesto che serva contenuto)
Esempi di identificatori AS conformi:
https://motorizzazione.gov.example
: Pubblico - Ministero dei Trasporti, Dipartimento Motorizzazione
https://registry.anpr.example
: Pubblico - Anagrafe Nazionale della Popolazione Residente
https://api.bank.example/auth-source
: Privato - Servizi Finanziari Banca Esempio
7.4.3.2. Parametri del Registro AS¶
Il Registro AS DEVE contenere i seguenti parametri per ogni Fonte Autentica registrata:
Parametro |
Tipo |
Descrizione |
---|---|---|
entity_id |
string |
RICHIESTO. Identificatore univoco che segue lo schema normativo: |
organization_info |
JSON object |
RICHIESTO. Dettagli dell'entità legale e metadati organizzativi. |
organization_info.organization_name |
string |
RICHIESTO. Nome legale dell'organizzazione. |
organization_info.organization_type |
string |
RICHIESTO. Classificazione dell'entità: |
organization_info.ipa_code |
string |
RICHIESTO solo per AS Pubbliche. Codice di registrazione IPA per entità governative. |
organization_info.legal_identifier |
string |
RICHIESTO. Identificatore di registrazione legale (Codice Fiscale/Partita IVA, o identificatore nazionale equivalente per entità straniere). |
organization_info.homepage_uri |
string |
RICHIESTO. URL che punta alla homepage dell'organizzazione. |
organization_info.contacts |
String Array |
RICHIESTO. Array di indirizzi email di contatto tecnico/amministrativo. |
organization_info.policy_uri |
string |
RICHIESTO. URL al documento della privacy policy. |
organization_info.tos_uri |
string |
RICHIESTO solo per AS Private. URL al documento dei termini di servizio. |
organization_info.organization_country |
string |
RICHIESTO. Codice paese ISO 3166-1 alpha-2 a due lettere dell'organizzazione. |
organization_info.logo_uri |
string |
OPZIONALE. URL al logo dell'organizzazione. |
organization_info.service_documentation |
string |
OPZIONALE. URL che punta alla documentazione del servizio della Fonte Autentica. |
organization_info.user_information |
string |
OPZIONALE. Una stringa contenente informazioni "human-readable" sulla Attestato Elettronico rilevante per l'Utente. Questa stringa DEVE essere fornita dalla Fonte Autentica al Trust Anchor durante l'onboarding e DEVE essere formattata utilizzando il formato Markdown come definito in RFC 7763. La formattazione Markdown può essere testo semplice o una combinazione di testo e link. Ad esempio, se il database della Fonte Autentica contiene solo i dati richiesti per gli attributi dell'Attestato Elettronico registrati dopo una data specifica, questa informazione DEVE essere comunicata al Trust Anchor in questa stringa Markdown. |
data_capabilities |
JSON Objects Array |
RICHIESTO. Array contenente le specifiche delle capacità dei dati. |
data_capabilities[].domains |
String Array |
RICHIESTO. Dominio della tassonomia (ad esempio, |
data_capabilities[].intended_purposes |
String Array |
RICHIESTO. Scopi aziendali serviti (ad esempio, |
data_capabilities[].available_claims |
String Array |
RICHIESTO. I claim disponibili da questa capacità di fornitura dati. |
data_capabilities[].integration_method |
string |
RICHIESTO. Framework di autorizzazione utilizzato per l'accesso ai dati. DEVE essere |
data_capabilities[].integration_endpoint |
string |
RICHIESTO. Punto di accesso al servizio (endpoint PDND per AS Pubbliche, endpoint API per AS Private). |
data_capabilities[].api_specification |
string |
RICHIESTO. URL al documento di specifica OAS3 per questa capacità di fornitura dati. |
data_capabilities[].data_provision |
JSON object |
OPZIONALE. Capacità di fornitura dati e specifiche di tempistica. |
data_capabilities[].data_provision.immediate_flow |
boolean |
RICHIESTO. Indica se la Fonte Autentica supporta la fornitura immediata dei dati. |
data_capabilities[].data_provision.deferred_flow |
boolean |
RICHIESTO. 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 Fonte Autentica per rispondere a una richiesta di fornitura dati differita. RICHIESTO se |
data_capabilities[].data_provision.notification_methods |
String Array |
CONDIZIONALE. Array di metodi di notifica supportati dalla Fonte Autentica per la fornitura dati differita, come |
data_capabilities[].update_frequency |
string |
OPZIONALE. Indica quanto frequentemente la Fonte Autentica aggiorna i suoi dati. Valori possibili: |
display |
JSON object |
OPZIONALE. Suggerimenti di branding visivo che le Fonti Autentiche possono fornire per le credenziali che utilizzano i loro dati. |
display.background_color |
string |
OPZIONALE. Colore di sfondo suggerito per le credenziali in formato esadecimale (ad esempio, |
display.text_color |
string |
OPZIONALE. Colore del testo suggerito per le credenziali in formato esadecimale (ad esempio, |
display.logo_uri |
string |
OPZIONALE. URI al logo della Fonte Autentica per il branding delle credenziali. |
display.logo_uri#integrity |
string |
CONDIZIONALE. Digest crittografico del logo per la verifica dell'integrità. RICHIESTO se |
display.template_uri |
string |
OPZIONALE. URI a un template visivo che la Fonte Autentica suggerisce per le credenziali che utilizzano i loro dati. |
display.template_uri#integrity |
string |
CONDIZIONALE. Digest crittografico del template per la verifica dell'integrità. RICHIESTO se |
7.4.3.3. Esempio del Registro AS¶
Un esempio non normativo della struttura del Registro AS è fornito di seguito:
[
{
"entity_id": "https://motorizzazione.gov.example",
"organization_info": {
"organization_name": "MIT -- Direzione Generale per la Motorizzazione",
"organization_type": "public",
"ipa_code": "m_inf",
"legal_identifier": "80192770587",
"organization_country": "IT",
"homepage_uri": "https://www.gov.example/transport",
"contacts": ["registry@gov.example", "technical-support@gov.example"],
"policy_uri": "https://www.gov.example/transport/privacy-policy",
"logo_uri": "https://www.gov.example/assets/transport-logo.svg",
"service_documentation": "https://docs.gov.example/transport/api-docs",
"user_information": "Vehicle registration data is available for licenses issued after January 1, 2020. For older licenses, contact the local motorization office."
},
"data_capabilities": [
{
"domains": ["IDENTITY", "AUTHORIZATION"],
"intended_purposes": ["DRIVING_LICENSE", "PERSON_IDENTIFICATION"],
"available_claims": [
"given_name", "family_name", "birth_date", "birth_place",
"issue_date", "expiry_date", "document_number", "driving_privileges",
"portrait", "un_distinguishing_sign", "document_iss_country", "document_iss_authority"
],
"integration_method": "pdnd",
"integration_endpoint": "https://api.gov.example/transport/driving-license",
"api_specification": "https://docs.gov.example/transport/api-oas3.yaml",
"data_provision": {
"immediate_flow": true,
"deferred_flow": false
},
"update_frequency": "real_time"
}
],
"display": {
"background_color": "#003d82",
"text_color": "#ffffff",
"logo_uri": "https://www.gov.example/assets/transport-logo.svg",
"logo_uri#integrity": "sha-256-a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3"
}
},
{
"entity_id": "https://api.bank.example/auth-source",
"organization_info": {
"organization_name": "Example Bank S.p.A.",
"organization_type": "private",
"legal_identifier": "12345678901",
"homepage_uri": "https://www.bank.example",
"contacts": ["digital-credentials@bank.example", "api-support@bank.example"],
"policy_uri": "https://www.bank.example/privacy-policy",
"tos_uri": "https://www.bank.example/terms-of-service",
"organization_country": "IT",
"logo_uri": "https://www.bank.example/assets/logo.svg",
"service_documentation": "https://docs.bank.example/psd2-api",
"user_information": "Financial data access requires customer consent and is subject to PSD2 regulations. Account information is available for active accounts only."
},
"data_capabilities": [
{
"domains": ["FINANCIAL"],
"intended_purposes": ["BANK_ACCOUNT", "INCOME_CERTIFICATE"],
"available_claims": [
"given_name", "family_name", "birth_date", "tax_code",
"account_holder_name", "iban", "account_status", "account_opening_date",
"bank_name", "bank_code"
],
"integration_method": "oauth2",
"integration_endpoint": "https://api.bank.example/psd2/v1/accounts",
"api_specification": "https://api.bank.example/docs/psd2-openapi.yaml",
"data_provision": {
"immediate_flow": true,
"deferred_flow": false
},
"update_frequency": "daily"
},
{
"domains": ["FINANCIAL"],
"intended_purposes": ["PAYMENT_HISTORY"],
"available_claims": [
"given_name", "family_name", "tax_code",
"transaction_history", "average_balance", "credit_score_indicator"
],
"integration_method": "oauth2",
"integration_endpoint": "https://api.bank.example/psd2/v1/transactions",
"api_specification": "https://api.bank.example/docs/psd2-openapi.yaml",
"data_provision": {
"immediate_flow": false,
"deferred_flow": true,
"max_response_time_minutes": 1440,
"notification_methods": ["push", "poll"]
},
"update_frequency": "weekly"
}
]
}
]
7.4.4. Coordinamento AS-CI¶
Dopo la registrazione AS, il Registro AS abilita i Credential Issuer a scoprire entità AS adatte e richiedere l'approvazione dell'integrazione. Questo processo di coordinamento è dettagliato in Processo di Integrazione AS-CI.
7.5. Registro della Federazione¶
Il Registro della Federazione fornisce l'infrastruttura di trust crittografico per tutti i partecipanti dell'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 trust:Endpoint API di Federazione.
7.5.1. Ruolo di Integrazione del Registro¶
All'interno dell'architettura del registro IT-Wallet, il Registro della Federazione serve come livello di validazione del trust per:
Autenticazione delle Entità: Valida l'identità crittografica di tutti i partecipanti prima delle operazioni del registro
Verifica della Catena di Trust: Fornisce le fondamenta crittografiche per la validazione delle entità Credential Issuer, Relying Party e Wallet Provider
Verifica della Conformità: Mantiene 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 della federazione del Trust Anchor come dettagliato in trust:Endpoint API di Federazione. L'architettura di discovery del registro fornisce informazioni sugli endpoint della federazione tramite l'Endpoint di Discovery del Registro descritto in Endpoint di Discovery del Registro.
Nota
Gli endpoint della federazione sono disponibili sia attraverso il meccanismo di discovery del registro (per l'accesso unificato al registro) che attraverso l'Entity Configuration del Trust Anchor a .well-known/openid-federation
(per operazioni specifiche della federazione). Entrambe le fonti forniscono gli stessi URL degli endpoint ma servono pattern di discovery diversi: discovery del registro per l'orientamento iniziale dell'ecosistema, Entity Configuration per la conformità standard OpenID Federation 1.0.
Per le specifiche tecniche complete dei protocolli di federazione, configurazioni delle entità, meccanismi di valutazione del trust e validazione della catena di trust, vedere L'Infrastruttura di Trust.
7.6. Catalogo degli Attestati Elettronici¶
Il Catalogo degli Attestati Elettronici è il registro di tutti gli Attestati Elettronici disponibili riconosciuti all'interno dell'ecosistema IT-Wallet. È pubblicato dal Trust Anchor e pubblicamente disponibile da tutte le Entità attraverso un endpoint specializzato della Federazione. Agisce come un singolo punto di riferimento per tutti gli attori coinvolti nel processo di rilascio, verifica e utilizzo degli Attestati Elettronici.
Il Catalogo degli Attestati Elettronici mira a:
Facilitare la discovery degli Attestati Elettronici per gli Utenti.
Standardizzare la descrizione tecnica e funzionale degli Attestati Elettronici.
Abilitare l'interoperabilità tra diversi Issuer e Relying Party.
Semplificare il processo di integrazione per Wallet Provider e Relying Party.
Garantire il trust nell'ecosistema attraverso informazioni certificate.
Fornire trasparenza sull'ecosistema degli Attestati Elettronici disponibili.
Le principali Entità coinvolte nel Catalogo degli Attestati Elettronici sono:
Trust Anchor: Gestisce e mantiene il Catalogo degli Attestati Elettronici, garantendone l'autenticità e l'integrità.
Organismo di Supervisione: Interagisce con il Trust Anchor e il Catalogo degli Attestati Elettronici per monitorare la fase di registrazione garantendo sicurezza e privacy secondo le normative nazionali/europee, mantenendo tutte le informazioni affidabili e aggiornate.
Credential Issuer: Le entità autorizzate a rilasciare Attestati Elettronici, registrandoli nel Catalogo.
Relying Party: Utilizzano il Catalogo degli Attestati Elettronici per raccogliere tutte le informazioni necessarie sugli Attestati Elettronici che intendono richiedere durante la fase di presentazione.
Wallet Provider: Accedono al Catalogo degli Attestati Elettronici per identificare gli Attestati Elettronici disponibili e per recuperare tutte le informazioni necessarie per integrarli nelle loro Soluzioni Wallet.
Utenti: Gli Utenti che utilizzano indirettamente il Catalogo degli Attestati Elettronici attraverso le loro Istanze del Wallet per scoprire e richiedere Attestati Elettronici.
Fonti Autentiche: Le Entità che detengono i dati originali che sono attestati negli Attestati Elettronici. Forniscono supporto agli Issuer nella registrazione degli Attestati Elettronici nel Catalogo.
Fig. 7.1 Diagramma Entità-Relazione del Catalogo degli Attestati Elettronici.¶
La seguente tabella riassume le principali informazioni che DEVONO essere fornite dal Catalogo degli Attestati Elettronici:
Informazioni relative a |
Descrizione |
---|---|
Metadati degli Attestati Elettronici |
Informazioni identificative essenziali e caratteristiche degli Attestati Elettronici, inclusi:
|
Credential Issuer |
Dettagli sull'organizzazione autorizzata a rilasciare l'Attestato Elettronico, come:
|
Fonti Autentiche |
Informazioni sulla fonte dati autorevole. |
Specifiche Tecniche |
Dettagli tecnici, inclusi:
|
Termini di Utilizzo |
Condizioni e limitazioni per l'utilizzo degli Attestati Elettronici, come:
|
Attributi e Riferimenti alla Tassonomia |
Informazioni di contenuto e classificazione:
|
Il Trust Anchor DEVE pubblicare e mantenere aggiornate tutte le informazioni all'endpoint .well-known del Catalogo degli Attestati Elettronici garantendo affidabilità, autenticità e integrità dei dati. In particolare, il Catalogo degli Attestati Elettronici, i claim e la tassonomia DEVONO essere disponibili attraverso l'endpoint .well-known/credential-catalog
.
7.6.1. Gerarchia degli Attestati Elettronici¶
Gli Attestati Elettronici riconosciuti all'interno dell'ecosistema IT-Wallet sono classificati e standardizzati gerarchicamente secondo i seguenti domini e scopi principali. Scopi aggiuntivi POSSONO essere aggiunti man mano che l'ecosistema IT-Wallet cresce.
Dominio |
Scopo |
Descrizione |
---|---|---|
IDENTITY |
|
Credenziali che stabiliscono o verificano l'identità di una persona, inclusi documenti di identità fisici e digitali legalmente riconosciuti dalle leggi nazionali. |
AUTHORIZATION |
|
Credenziali che concedono permessi, diritti o autorizzazioni specifiche per svolgere certe attività o accedere ad aree ristrette. |
EDUCATION |
|
Credenziali relative a risultati educativi, qualifiche e riconoscimento di formazione professionale. |
HEALTH |
|
Credenziali relative all'accesso sanitario, storia medica, copertura assicurativa e documenti relativi alla salute. |
FINANCIAL |
|
Credenziali che attestano lo stato finanziario, livelli di reddito, tassazione, informazioni bancarie o situazione economica di individui o famiglie. |
MEMBERSHIP |
|
Credenziali che confermano l'affiliazione con organizzazioni, partecipazione a programmi o stato di appartenenza. |
ATTESTATION |
|
Credenziali che forniscono dichiarazioni ufficiali, conferme di stato o certificazioni rilasciate dalle autorità. |
Ogni Credenziale DEVE specificare domini e scopi per abilitare sia Scenari Credential-Specific che Scenari Credential-Agnostic secondo i requisiti delle Relying Party e i pattern di richiesta di presentazione:
Scenari Credential-Specific (Primari per Settori Governativi/Regolamentati): Le RP richiedono tipi specifici di credenziali per requisiti di conformità e audit, inclusi ad esempio:
Servizi Governativi:
"vct_values": ["person_identification_data"]
per la verifica dell'identità specifica del PID.Controlli di Polizia:
"docType": "org.iso.18013.5.1.mDL"
per la verifica della patente di guida.KYC Bancario: Tipi di credenziali specifici richiesti dalle normative finanziarie.
Servizi Sanitari:
"vct_values": ["european_disability_card"]
per l'accesso ai benefici per disabilità conforme all'UE.
Scenari Credential-Agnostic (Tipici per Aziende Private): Le RP richiedono gli attributi specifichi indipendentemente dalla fonte delle credenziali per efficienza operativa, come:
Consegna E-commerce: Qualsiasi credenziale, tra quelle a cui è autorizzato ad accedere, contenente
given_name
,family_name
,address
per la spedizione.Abbonamenti: Qualsiasi credenzialetra quelle a cui è autorizzato ad accedere, con
given_name
,Personalizzazione del Servizio: Applicazioni aziendali che richiedono dati personali di base senza forti requisiti di fonte.
Questo approccio consente:
Autorizzazione basata su policy tramite l'utilizzo della mappatura dominio/scopo.
Registrazione RP flessibile che supporta sia le esigenze di conformità governativa che i requisiti operativi aziendali.
7.6.2. Struttura del Catalogo degli Attestati Elettronici¶
Il contenuto del Catalogo degli Attestati Elettronici è protetto in un JWS che contiene i seguenti parametri dell'header JOSE:
Header JOSE |
Descrizione |
Riferimento |
---|---|---|
typ |
RICHIESTO. DEVE essere impostato a |
[RFC 7515 Sezione 4.1.9]. |
alg |
RICHIESTO. Un identificatore di algoritmo di firma digitale come per il registro IANA "JSON Web Signature and Encryption Algorithms". DEVE essere uno degli algoritmi supportati nella Sezione Algoritmi Crittografici e NON DEVE essere impostato a |
[RFC 7515 Sezione 4.1.1]. |
kid |
RICHIESTO. Identificatore univoco della chiave pubblica. |
[RFC 7515 Sezione 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 valore del parametro header kid è presente, DEVE riferirsi alla stessa chiave pubblica crittografica del leaf utilizzata con il Certificato X.509. |
[RFC 7515 Sezione 4.1.6.]. |
cty |
RICHIESTO. DEVE essere impostato a |
[RFC 7515 Sezione 4.1.6.]. |
Il payload JWS contiene i seguenti parametri:
Nome Campo |
Descrizione |
---|---|
catalog_version |
RICHIESTO. Versione del formato del Catalogo degli Attestati Elettronici. |
iss |
RICHIESTO. Identificatore dell'issuer del Catalogo degli Attestati Elettronici. |
last_modified |
RICHIESTO. Timestamp dell'ultima modifica al Catalogo degli Attestati Elettronici. |
credentials |
RICHIESTO. Array contenente le definizioni degli Attestati Elettronici. |
wallet_attestation |
RICHIESTO. Un Oggetto JSON contenente definizioni per le Attestazioni del Wallet, inclusi i loro formati supportati, attributi associati e Livelli di Garanzia (LoA). Questo Oggetto è utilizzato da altre entità, come Issuer e Relying Party, per recuperare informazioni sui formati di Attestazione del Wallet supportati all'interno dell'ecosistema. |
Ogni elemento dell'array credentials
contiene almeno le seguenti informazioni:
Nome Campo |
Descrizione |
---|---|
version |
RICHIESTO. Versione della definizione dell'Attestato Elettronico. |
credential_type |
RICHIESTO. Identificatore univoco del tipo di Attestato Elettronico. |
legal_type |
RICHIESTO. Classificazione legale della Credenziale (ad esempio, |
localization |
OPZIONALE. Impostazioni di localizzazione, inclusi:
|
name |
RICHIESTO. Nome "human-readable" dell'Attestato Elettronico. Un suffisso |
description |
RICHIESTO. Descrizione "human-readable" dell'Attestato Elettronico. Un suffisso |
restriction_policy |
OPZIONALE. Restrizioni legali su Soluzioni Wallet e/o Credential Issuer autorizzati a richiedere/rilasciare l'Attestato Elettronico.
|
pricing_policy |
OPZIONALE. Informazioni sui prezzi degli Attestati Elettronici, inclusi:
|
validity_info |
Informazioni sulla validità degli Attestati Elettronici, inclusi almeno:
|
authentication |
RICHIESTO. Requisiti di autenticazione degli Attestati Elettronici.
|
purposes |
RICHIESTO. Array di scopi di utilizzo per i quali l'Attestato Elettronico può essere utilizzato, definendo contesti di utilizzo specifici e attributi richiesti per ogni scopo, come:
|
issuers |
RICHIESTO. Array di informazioni rilevanti sui Credential Issuer autorizzati, inclusi dati amministrativi e tecnici come nome dell'Organizzazione, riferimento al documento di specifica API e meccanismi di rilascio supportati (ad esempio il supporto del flusso differito). |
authentic_sources |
RICHIESTO. Array di identificatori stringa che fanno riferimento alle Fonti Autentiche autorizzate come registrate nel Registro delle Fonti Autentiche. Ogni identificatore corrisponde a un valore |
formats |
RICHIESTO. Array di formati tecnici supportati degli Attestati Elettronici, inclusi:
|
display_properties |
RICHIESTO. Proprietà di presentazione visiva degli Attestati Elettronici, ad esempio:
|
claims |
RICHIESTO. Array di attributi contenuti nell'Attestato Elettronico. DEVE includere almeno i seguenti attributi:
|
L'Oggetto wallet_attestation
contiene almeno le seguenti informazioni:
Nome Campo |
Descrizione |
---|---|
credential_type |
RICHIESTO. Identificatore univoco dell'Attestazione del Wallet. DEVE essere impostato a |
name |
RICHIESTO. Nome "human-readable" dell'Attestazione del Wallet. DEVE essere impostato a |
description |
RICHIESTO. Descrizione "human-readable" dell'Attestato Elettronico. |
aal_values_supported |
RICHIESTO. Array di Stringhe ognuna delle quali è un Livello di Garanzia (LoA) supportato dall'Attestazione del Wallet. DEVE includere almeno i livelli |
formats |
RICHIESTO. Array di formati supportati per l'Attestazione del Wallet, inclusi:
|
claims |
RICHIESTO. Array di claim contenute nell'Attestazione del Wallet. DEVE includere almeno i seguenti attributi:
|
L'esempio corrispondente del Catalogo degli Attestati Elettronici come decodificato in JSON sia per header che payload è il seguente:
{
"typ":"JOSE",
"alg":"ES256",
"kid":"e9bc097a-ce51-4036-9562-d2ade882db0d",
"cty":"application/json"
}
{
"catalog_version": "1.0",
"iss": "https://trust-registry.eid-wallet.example.it",
"last_modified": "2025-03-15T12:00:00Z",
"credentials": [
{
"version": "1.0",
"credential_type": "mDL",
"legal_type": "pub-eaa",
"localization": {
"default_locale": "it",
"available_locales": ["en", "it", "fr", "de"],
"base_uri": "https://trust-registry.eid-wallet.example.it/.well-known/l10n/mdl/",
"version": "1.0.0"
},
"name_l10n_id": "credential.mdl.name",
"description_l10n_id": "credential.mdl.description",
"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"
]
},
"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"],
"allowed_states": [
"valid",
"revoked",
"suspended"
]
},
"authentication": {
"user_auth_required": true,
"min_loa": "high",
"supported_schemes": ["it-wallet"]
},
"purposes": [
{
"id": "DRIVING_LICENSE"
},
{
"id": "PERSON_IDENTIFICATION"
}
],
"issuers": [
{
"id": "https://issuer.example.org",
"organization_name": "Digital Credential Issuer of Example",
"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": [
"https://motorizzazione.gov.example"
],
"formats": [
{
"configuration_id": "dc_sd_jwt_mDL",
"format": "dc+sd-jwt",
"vct": "https://trust-registry.eid-wallet.example.it/1.0/mDL",
"schema_uri": "https://trust-registry.eid-wallet.example.it/.well-known/schemas/sd-jwt/mDL",
"schema_uri#integrity": "sha256-c8b708728e4c5756e35c03aeac257ca878d1f717d7b61f621be4d36dbd9b9c16"
},
{
"configuration_id": "mso_mdoc_mDL",
"format": "mso_mdoc",
"docType": "org.iso.18013.5.1",
"schema_uri": "https://trust-registry.eid-wallet.example.it/.well-known/schemas/mdoc/mDL",
"schema_uri#integrity": "sha256-c8b708728e4c5756e35c03aeac257ca878d1f717d7b61f621be4d36dbd9b9c16"
}
],
"display_properties": {
"templates": [
{
"authentic_source_id": "https://authentic-sources.example.org",
"template_uri": "https://authsource.example.com/.well-known/templates/mDL.svg",
"template_uri#integrity": "sha256-8cLlJNXN-TsMk-PmKjZ5t0WRL5ca_xGgX3c1VLmXfh-9c",
"properties": {
"orientation": "landscape",
"color_scheme": "light",
"contrast": "high"
}
}
],
"background_color": "#008558",
"text_color": "#FFFFFF",
"logo_uri": "https://trust-registry.eid-wallet.example.it/.well-known/logos/mDL.svg"
},
"claims": [
{
"name": "family_name",
"display_name_l10n_id": "claims.family_name.name",
"namespaces": ["org.iso.18013.5.1"]
},
{
"name": "given_name",
"display_name_l10n_id": "claims.given_name.name",
"namespaces": ["org.iso.18013.5.1"]
},
{
"name": "birth_date",
"display_name_l10n_id": "claims.birth_date.name",
"namespaces": ["org.iso.18013.5.1"]
},
{
"name": "issue_date",
"display_name_l10n_id": "claims.issue_date.name",
"namespaces": ["org.iso.18013.5.1"]
},
{
"name": "expiry_date",
"display_name_l10n_id": "claims.expiry_date.name",
"namespaces": ["org.iso.18013.5.1"]
},
{
"name": "issuing_authority",
"display_name_l10n_id": "claims.issuing_authority.name",
"namespaces": ["org.iso.18013.5.1"]
},
{
"name": "document_number",
"display_name_l10n_id": "claims.document_number.name",
"namespaces": ["org.iso.18013.5.1"]
},
{
"name": "portrait",
"display_name_l10n_id": "claims.portrait.name",
"namespaces": ["org.iso.18013.5.1"]
},
{
"name": "driving_privileges",
"display_name_l10n_id": "claims.driving_privileges.name",
"namespaces": ["org.iso.18013.5.1"]
},
{
"name": "un_distinguishing_sign",
"display_name_l10n_id": "claims.un_distinguishing_sign.name",
"namespaces": ["org.iso.18013.5.1"]
},
{
"name": "administrative_number",
"display_name_l10n_id": "claims.administrative_number.name",
"namespaces": ["org.iso.18013.5.1"]
},
{
"name": "issuing_country",
"display_name_l10n_id": "claims.issuing_country.name",
"namespaces": ["org.iso.18013.5.1"]
},
{
"name": "issuing_jurisdiction",
"display_name_l10n_id": "claims.issuing_jurisdiction.name",
"namespaces": ["org.iso.18013.5.1"]
}
]
}
],
"wallet_attestation": {
"version": "1.0",
"credential_type": "WalletAttestation",
"name": "Wallet Attestation",
"description": "Attestation of the Wallet capabilities and compliance with the EUDI Wallet specifications.",
"aal_values_supported": [
"https://trust-list.eu/aal/low",
"https://trust-list.eu/aal/medium",
"https://trust-list.eu/aal/high"
],
"formats": [
{
"format": "dc+sd-jwt",
"configuration_id": "dc_sd_jwt_wa",
"vct": "https://trust-registry.it-wallet.example.it/WalletAttestation",
"schema_uri": "https://trust-registry.it-wallet.example.it/.well-known/schemas/sd-jwt/WalletAttestation",
"schema_uri#integrity": "sha256-Lxn6dNpkPdoeoRgO5+n0jNhJZ8MbKfXfP195+dNR0dc="
},
{
"format": "mso_mdoc",
"configuration_id": "mso_mdoc_wa",
"docType": "it.wallet.trust-registry.WalletAttestation",
"schema_uri": "https://trust-registry.eid-wallet.example.it/.well-known/schemas/mdoc/WalletAttestation",
"schema_uri#integrity": "sha256-GcqnMfzyCw+0UTz9EI6JO0oUTD0WS3p+hQ2E7VfjTLA="
},
{
"format": "oauth-client-attestation+jwt",
"configuration_id": "jwt_wa",
"schema_uri": "https://trust-registry.it-wallet.example.it/.well-known/schemas/jwt/WalletAttestation",
"schema_uri#integrity": "sha256-2s9AJsZwjuAZ4D4EAl3qDJGvy92sThQkX6W9zDF2Sgg="
}
],
"claims": [
{
"name": "sub",
"namespaces": ["it.wallet.trust-registry.WalletAttestation"]
},
{
"name": "aal",
"namespaces": ["it.wallet.trust-registry.WalletAttestation"]
},
{
"name": "wallet_link",
"namespaces": ["it.wallet.trust-registry.WalletAttestation"]
},
{
"name": "wallet_name",
"namespaces": ["it.wallet.trust-registry.WalletAttestation"]
}
]
}
}
Nota
Per una gestione migliore e più efficiente della localizzazione delle informazioni contenute nel Catalogo degli Attestati Elettronici, un'Entità che lo consulta DOVREBBE:
Scaricare la versione base del Catalogo degli Attestati Elettronici (compatta, senza localizzazioni) utilizzando l'endpoint
.well-known/credential-catalog
.Determinare la lingua preferita dell'Utente.
Scaricare solo i bundle di localizzazione necessari.
Unire dinamicamente il contenuto localizzato con la struttura del Catalogo degli Attestati Elettronici.
Un esempio non normativo di output di un bundle di localizzazione è fornito di seguito:
{ "driving_license.name": "Patente di Guida", "driving_license.description": "Patente di guida ufficiale valida in Italia e nell'UE", "purpose.driving_authorization.name": "Abilitazione alla guida", "purpose.driving_authorization.description": "Verifica di Abilitazione alla guida", "claims.given_name.name": "Nome", "...": "..." }
I bundle di localizzazione DEVONO essere disponibili all'URI specificato nell'attibuto localization_info.bundles_base_uri del Catalogo degli Attestati Elettronici. Ogni 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 mDL sarebbe https://trust-registry.eid-wallet.example.it/.well-known/l10n/mdl/it.json.
Le Entità DOVREBBERO verificare l'integrità dei bundle di localizzazione scaricati utilizzando il metodo di digest e i valori specificati nel claim localization_info.integrity. Questo garantisce che i dati di localizzazione non siano stati manomessi durante la trasmissione.
7.7. Tassonomia¶
La Tassonomia fornisce le fondamenta semantiche per l'interoperabilità degli Attestati Elettronici mantenendo il vocabolario autorevole per organizzare le credenziali all'interno dell'ecosistema IT-Wallet. La tassonomia è neutrale rispetto al formato delle credenziali e ha l'obiettivo di facilitare le integrazioni degli Attestati Elettronici nelle Soluzioni Tecniche IT-Wallet.
La tassonomia fornisce, in una singola risorsa, il sistema di classificazione gerarchica che organizza domini e scopi che possono essere applicati ai tipi di credenziali, supportando la valutazione delle policy di autorizzazione e la standardizzazione a livello di ecosistema.
Obiettivi della Tassonomia:
Fondamento Semantico: Stabilire vocabolario standardizzato per domini e scopi in tutto l'ecosistema
Framework delle Policy: Abilitare decisioni di autorizzazione strutturate basate sulla classificazione gerarchica
Interoperabilità: Garantire interpretazione coerente delle classificazioni delle credenziali
Estensibilità: Supportare l'evoluzione dell'ecosistema con nuovi domini e scopi
Conformità Transfrontaliera: Allinearsi con i requisiti normativi UE e gli standard internazionali
Struttura della Tassonomia:
La tassonomia mantiene una struttura gerarchica a due livelli:
Domini: Classificazione di livello superiore che rappresenta aree funzionali ampie (ad esempio, IDENTITY, AUTHORIZATION, FINANCIAL)
Scopi: Casi d'uso specifici delle credenziali all'interno di ogni dominio (ad esempio, PERSON_IDENTIFICATION, DRIVING_LICENSE, BANK_ACCOUNT) per i quali le credenziali possono essere utilizzate
Supporto alla Localizzazione:
La tassonomia supporta ambienti multilingue attraverso il pattern del suffisso _l10n_id
, abilitando una gestione efficiente della localizzazione per interfacce utente e implementazioni transfrontaliere.
Utilizzo della Tassonomia:
Registro degli Attributi: Catalogo degli attributi individuali
Registro AS: Le Fonti Autentiche dichiarano capacità di fornitura dati utilizzando classificazioni della tassonomia
Catalogo degli Attestati Elettronici: I tipi di credenziali specificano domini e scopi supportati
Policy di Autorizzazione: La valutazione delle policy sfrutta la struttura della tassonomia per decisioni di controllo degli accessi
La tassonomia è accessibile attraverso l'endpoint dedicato della tassonomia come definito nel meccanismo di discovery del registro ed è mantenuta dall'Organismo di Supervisione per garantire conformità normativa e coerenza semantica.
Un esempio non normativo della struttura della Tassonomia è fornito di seguito:
{
"version": "1.0",
"last_modified": "2025-04-10T12:00:00Z",
"id": "urn:taxonomy:it-wallet",
"localization": {
"default_locale": "it",
"available_locales": ["en", "it", "fr", "de"],
"base_uri": "https://trust-registry.eid-wallet.example.it/.well-known/l10n/taxonomy/",
"version": "1.0.0"
},
"name_l10n_id": "taxonomy.name",
"description_l10n_id": "taxonomy.description",
"domains": [
{
"id": "IDENTITY",
"name_l10n_id": "domain.identity.name",
"description_l10n_id": "domain.identity.description",
"purposes": [
{
"id": "PERSON_IDENTIFICATION",
"name_l10n_id": "purpose.person_identification.name",
"description_l10n_id": "purpose.person_identification.description"
},
{
"id": "ELECTRONIC_RESIDENCY",
"name_l10n_id": "purpose.electronic_residency.name",
"description_l10n_id": "purpose.electronic_residency.description"
}
]
},
{
"id": "AUTHORIZATION",
"name_l10n_id": "domain.authorization.name",
"description_l10n_id": "domain.authorization.description",
"purposes": [
{
"id": "DRIVING_LICENSE",
"name_l10n_id": "purpose.driving_license.name",
"description_l10n_id": "purpose.driving_license.description"
},
{
"id": "PROFESSIONAL_LICENSE",
"name_l10n_id": "purpose.professional_license.name",
"description_l10n_id": "purpose.professional_license.description"
},
{
"id": "TRAVEL_DOCUMENT",
"name_l10n_id": "purpose.travel_document.name",
"description_l10n_id": "purpose.travel_document.description"
},
{
"id": "ACCESS_PERMIT",
"name_l10n_id": "purpose.access_permit.name",
"description_l10n_id": "purpose.access_permit.description"
}
]
},
{
"id": "EDUCATION",
"name_l10n_id": "domain.education.name",
"description_l10n_id": "domain.education.description",
"purposes": [
{
"id": "ACADEMIC_DEGREE",
"name_l10n_id": "purpose.academic_degree.name",
"description_l10n_id": "purpose.academic_degree.description"
},
{
"id": "CERTIFICATE",
"name_l10n_id": "purpose.certificate.name",
"description_l10n_id": "purpose.certificate.description"
},
{
"id": "TRAINING_RECOGNITION",
"name_l10n_id": "purpose.training_recognition.name",
"description_l10n_id": "purpose.training_recognition.description"
}
]
},
{
"id": "HEALTH",
"name_l10n_id": "domain.health.name",
"description_l10n_id": "domain.health.description",
"purposes": [
{
"id": "INSURANCE_CARD",
"name_l10n_id": "purpose.insurance_card.name",
"description_l10n_id": "purpose.insurance_card.description"
},
{
"id": "DISABILITY_CARD",
"name_l10n_id": "purpose.disability_card.name",
"description_l10n_id": "purpose.disability_card.description"
},
{
"id": "MEDICAL_PRESCRIPTION",
"name_l10n_id": "purpose.medical_prescription.name",
"description_l10n_id": "purpose.medical_prescription.description"
}
]
},
{
"id": "FINANCIAL",
"name_l10n_id": "domain.financial.name",
"description_l10n_id": "domain.financial.description",
"purposes": [
{
"id": "INCOME_CERTIFICATE",
"name_l10n_id": "purpose.income_certificate.name",
"description_l10n_id": "purpose.income_certificate.description"
},
{
"id": "TAX_STATEMENT",
"name_l10n_id": "purpose.tax_statement.name",
"description_l10n_id": "purpose.tax_statement.description"
},
{
"id": "FAMILY_ECONOMIC_STATUS",
"name_l10n_id": "purpose.family_economic_status.name",
"description_l10n_id": "purpose.family_economic_status.description"
},
{
"id": "BANK_ACCOUNT",
"name_l10n_id": "purpose.bank_account.name",
"description_l10n_id": "purpose.bank_account.description"
},
{
"id": "PAYMENT_HISTORY",
"name_l10n_id": "purpose.payment_history.name",
"description_l10n_id": "purpose.payment_history.description"
}
]
},
{
"id": "MEMBERSHIP",
"name_l10n_id": "domain.membership.name",
"description_l10n_id": "domain.membership.description",
"purposes": [
{
"id": "ASSOCIATION",
"name_l10n_id": "purpose.association.name",
"description_l10n_id": "purpose.association.description"
},
{
"id": "LOYALTY_PROGRAM",
"name_l10n_id": "purpose.loyalty_program.name",
"description_l10n_id": "purpose.loyalty_program.description"
},
{
"id": "CLUB_MEMBERSHIP",
"name_l10n_id": "purpose.club_membership.name",
"description_l10n_id": "purpose.club_membership.description"
}
]
},
{
"id": "ATTESTATION",
"name_l10n_id": "domain.attestation.name",
"description_l10n_id": "domain.attestation.description",
"purposes": [
{
"id": "PUBLIC_STATEMENT",
"name_l10n_id": "purpose.public_statement.name",
"description_l10n_id": "purpose.public_statement.description"
},
{
"id": "CIVIL_STATUS",
"name_l10n_id": "purpose.civil_status.name",
"description_l10n_id": "purpose.civil_status.description"
},
{
"id": "CERTIFICATION",
"name_l10n_id": "purpose.certification.name",
"description_l10n_id": "purpose.certification.description"
}
]
}
]
}
7.8. Integrazione del Registro e Riferimenti Incrociati¶
I componenti del registro sono interconnessi e lavorano insieme per supportare l'ecosistema completo delle credenziali:
Registro AS ↔ Tassonomia: Le entità AS dichiarano capacità di fornitura utilizzando classificazioni della tassonomia per la categorizzazione standardizzata.
Registro AS ↔ Catalogo: I tipi di credenziali fanno riferimento alle capacità AS per la validazione della fonte dati.
Catalogo ↔ Tassonomia: Le voci delle credenziali specificano domini e scopi dalla tassonomia per discovery e autorizzazione.
Registro della Federazione ↔ Tutti i Componenti: Fornisce validazione del trust crittografico per tutte le operazioni del registro e autenticazione delle entità.