6.3. 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 ed è pubblicamente disponibile per tutte le Entità attraverso un endpoint di Federazione specializzato. Funge da punto di riferimento unico per tutti gli attori coinvolti nel processo di emissione, verifica e utilizzo degli Attestati Elettronici.

Il Catalogo degli Attestati Elettronici mira a:

  1. Facilitare la discovery degli Attestati Elettronici per gli Utenti.

  2. Standardizzare la descrizione tecnica e funzionale degli Attestati Elettronici.

  3. Abilitare l'interoperabilità tra diversi Fornitori di Attestati Elettronici e Relying Party.

  4. Semplificare il processo di integrazione per i Fornitori di Wallet e le Relying Party.

  5. Garantire la fiducia nell'ecosistema attraverso informazioni certificate.

  6. 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.

  • Fornitori di Attestati Elettronici: Le entità autorizzate a emettere 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.

  • Fornitori di Wallet: Accedono al Catalogo degli Attestati Elettronici per identificare gli Attestati Elettronici disponibili e per recuperare tutte le informazioni necessarie per integrarli nelle loro Soluzioni Tecniche.

  • Utenti: Gli Utenti che utilizzano indirettamente il Catalogo degli Attestati Elettronici attraverso le loro Istanze del Wallet per visualizzare e richiedere Attestati Elettronici.

  • Fonti Autentiche: Le Entità che detengono i dati originali attestati negli Attestati Elettronici. Forniscono supporto ai Fornitori di Attestati Elettronici nella registrazione degli stessi nel Catalogo.

La figura illustra le Entità degli Attestati Elettronici.

Fig. 6.6 Diagramma Entità-Relazione del Catalogo degli Attestati Elettronici.

La seguente tabella riassume le principali informazioni che DEVONO essere fornite dal Catalogo degli Attestati Elettronici:

Tabella 6.1 Catalogo degli Attestati Elettronici - Informazioni principali

Informazioni relative a

Descrizione

Metadati dell'Attestato Elettronico

Informazioni identificative essenziali e caratteristiche dell'Attestato Elettronico, tra cui:

  • Identificatore univoco dell'Attestato Elettronico: Una stringa che identificativa univocamente il tipo di Attestato Elettronico.

  • Metodi di autenticazione dell'Utente: Meccanismi di autenticazione dell'Utente utilizzati per richiedere l'Attestato Elettronico, se richiesti dai Fornitori di Attestati Elettronici o dalle Fonti Autentiche.

  • Livello minimo di Garanzia: Il Livello di Garanzia minimo richiesto per l'affidabilità dell'Attestato Elettronico. DEVE tenere conto del Livello di Garanzia dell'autenticazione dell'Utente, quando applicabile, e dell'Istanza del Wallet.

  • Caratteristiche di visualizzazione aggiuntive: Specifiche visive e di formattazione, come un'immagine di riferimento di sfondo, logo, ecc.

Fornitori di Attestati Elettronici

Dettagli sull'organizzazione autorizzata a emettere l'Attestato Elettronico, come:

  • Identificatori del Fornitore di Attestati Elettronici: Identificativo univoco del Fornitore dell'Attestato Elettronico.

  • Tipologia di Fornitore di Attestati Elettronici: Classificazione come ad esempio Fornitore di Attestati Elettronici di Dati di Identificazione Personale, Fornitore di Attestati Elettronici di Attributi (Qualificati) o Fornitore di Attestati Elettronici Pubblici di Attributi.

  • Informazioni aggiuntive: Dettagli amministrativi come la denominazione, un codice amministrativo e informazioni di contatto.

Fonti Autentiche

Informazioni sulla Fonte Autentica dei dati, come:

  • Identificativi della Fonte Autentica: Identificativo univoco della Fonte Autentica dell'Attestato Elettronico.

  • Tipologia di Fonte Autentica: Classificazione come Entità Pubblica o Privata.

  • Informazioni aggiuntive: Dettagli amministrativi come la denominazione, un codice amministrativo e informazioni di contatto.

Specifiche Tecniche

Dettagli tecnici, tra cui:

  • Schemi dell'Attestato Elettronico: Specifiche relative a framework e struttura dati.

  • Formati dell'Attestato Elettronico: Standard di formato dati e codifica.

  • Policy di autenticazione: Metodi e requisiti per la verifica.

Termini di Utilizzo

Condizioni e limitazioni per l'utilizzo dell'Attestato Elettronico, come:

  • Validità della Credenziale: Periodo di tempo durante il quale l'Attestato Elettronico è valido e, quando applicabile, meccanismi e dettagli tecnici per invalidare gli Attestati Elettronici (metodi di revoca/sospensione).

  • Policy di restrizione: Se applicabile, regole che governano l'uso dell'Attestato Elettronico e limitazioni secondo le normative nazionali. È utilizzata, ad esempio, per specificare se solo tipologie specifiche di Entità autorizzate, ad esempio Fornitore di Attestati Elettronici Pubblici di Attributi e Soluzioni Wallet pubbliche, possono emettere e ottenere l'Attestato Elettronico.

  • Pricing Policy: Informazioni relative ai modelli tariffari dell'Attestato Elettronico, come free, issuance_based, verification_based.

  • Scopi dell'Attestato Elettronico: Informazioni relative agli scopi consentiti per cui l'Attestato Elettronico può essere utilizzato. Ogni tipo di Attestato Elettronico può essere utilizzato per più scopi.

Attributi dell'Utente e Riferimenti Tassonomici

Informazioni sul contenuto e sulla classificazione:

  • Elenco degli attributi visualizzati: Contenuto specifico dell'Attestato Elettronico visualizzato all'Utente.

  • Riferimenti tassonomici strutturati: Sistemi di classificazione e vocabolari controllati utilizzati.

Il Trust Anchor DEVE pubblicare e mantenere aggiornate tutte le informazioni all'endpoint .well-known del Catalogo degli Attestati Elettronici garantendo l'affidabilità, l'autenticità e l'integrità dei dati. In particolare, il Catalogo degli Attestati Elettronici, gli attributi e la tassonomia DEVONO essere disponibili attraverso l'endpoint .well-known/credential-catalogue.

6.3.1. Categorie di Attestati Elettronici

Gli Attestati Elettronici riconosciuti all'interno dell'ecosistema IT-Wallet sono classificati gerarchicamente e standardizzati secondo i seguenti domini e categorie principali. Categorie aggiuntive POSSONO essere aggiunte man mano che l'ecosistema IT-Wallet cresce.

Tabella 6.2 Domini e Categorie degli Attestati Elettronici

Dominio

Categoria

Descrizione

IDENTITY

  • PERSON_IDENTIFICATION

  • ELECTRONIC_RESIDENCY

Attestati Elettronici che stabiliscono o verificano l'identità di una persona, inclusi documenti di identità fisici e digitali legalmente riconosciuti dalle leggi nazionali.

AUTHORIZATION

  • DRIVING_LICENSE

  • PROFESSIONAL_LICENSE

  • TRAVEL_DOCUMENT

  • ACCESS_PERMIT

Attestati Elettronici che concedono permessi specifici, diritti o autorizzazioni per svolgere determinate attività o accedere ad aree ristrette.

EDUCATION

  • ACADEMIC_DEGREE

  • CERTIFICATE

  • TRAINING_RECOGNITION

Credenziali relative a titoli di studio, qualifiche e certificati professionali.

HEALTH

  • INSURANCE_CARD

  • DISABILITY_CARD

  • MEDICAL_PRESCRIPTION

Attestati Elettronici relativi all'accesso all'assistenza sanitaria, alla storia medica, alla copertura assicurativa e ai documenti relativi alla salute.

FINANCIAL

  • INCOME_CERTIFICATE

  • TAX_STATEMENT

  • FAMILY_ECONOMIC_STATUS

Attestati Elettronici che attestano lo stato finanziario, i livelli di reddito, la tassazione o la situazione economica di individui o famiglie.

MEMBERSHIP

  • ASSOCIATION

  • LOYALTY_PROGRAM

  • CLUB_MEMBERSHIP

Attestati Elettronici che confermano l'affiliazione a organizzazioni, la partecipazione a programmi o lo stato di appartenenza.

ATTESTATION

  • PUBLIC_STATEMENT

  • CIVIL_STATUS

  • CERTIFICATION

Attestati Elettronici che forniscono dichiarazioni ufficiali, conferme di stato o certificazioni rilasciate dalle autorità.

6.3.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

OBBLIGATORIO. DEVE essere valorizzato con la stringa JOSE.

[RFC 7515 Sezione 4.1.9].

alg

OBBLIGATORIO. Un identificativo 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 a none o con un identificativo di algoritmo simmetrico (MAC).

[RFC 7515 Sezione 4.1.1].

kid

OBBLIGATORIO. Identificativo univoco della chiave pubblica.

[RFC 7515 Sezione 4.1.4].

x5c

OPZIONALE. Contiene il Certificato di chiave pubblica X.509 o la catena di Certificati [RFC 5280] corrispondente alla chiave utilizzata per firmare digitalmente il JWS. Quando il valore del parametro dell'header kid è presente, DEVE riferirsi alla stessa chiave pubblica crittografica della foglia attestata dal Certificato X.509.

[RFC 7515 Sezione 4.1.6.].

cty

OBBLIGATORIO. DEVE essere impostato a application/json.

[RFC 7515 Sezione 4.1.6.].

Il payload JWS contiene i seguenti parametri:

Tabella 6.3 Campi di primo livello del Catalogo

Nome

Descrizione

catalog_version

OBBLIGATORIO. Versione del formato del Catalogo degli Attestati Elettronici.

iss

OBBLIGATORIO. Identificativo del Fornitore del Catalogo degli Attestati Elettronici.

last_modified

OBBLIGATORIO. Timestamp dell'ultima modifica al Catalogo degli Attestati Elettronici.

taxonomy_uri

OBBLIGATORIO. URI del documento di riferimento della tassonomia degli attributi.

taxonomy_uri#integrity

OPZIONALE. Digest crittografico del documento di tassonomia per la verifica dell'integrità.

credentials

OBBLIGATORIO. Array contenente le definizioni degli Attestati Elettronici.

Ogni elemento dell'array credentials contiene almeno le seguenti informazioni:

Tabella 6.4 Campi di primo livello di ogni voce di Credenziale

Nome del Campo

Descrizione

version

OBBLIGATORIO. Versione della definizione dell'Attestato Elettronico.

credential_type

OBBLIGATORIO. Identificativo univoco del tipo di Attestato Elettronico.

legal_type

OBBLIGATORIO. Classificazione legale della Credenziale (es., pub-eaa, qeaa, eaa).

localization

OPZIONALE. Impostazioni di localizzazione, inclusi:

  • default_locale: localizzazione predefinita per il testo.

  • available_locales: Elenco delle localizzazioni supportate.

  • base_uri: URI base per le risorse di localizzazione.

  • version: Versione dei file di localizzazione.

name

OBBLIGATORIO. Nome human-readable dell'Attestato Elettronico. Un suffisso _l10n_id PUÒ essere aggiunto per la gestione della localizzazione del contenuto.

description

OBBLIGATORIO. Descrizione human-readable dell'Attestato Elettronico. Un suffisso _l10n_id PUÒ essere aggiunto per la gestione della localizzazione del contenuto.

restriction_policy

OPZIONALE. Restrizioni legali sulle Soluzioni tecniche di Fornitori di Wallet e/o di Attestati Elettronici autorizzati a richiedere/emettere un Attestato Elettronico.

  • allowed_wallet_ids: Elenco degli identificativi delle Soluzioni Tecniche dei Fornitori di Wallet consentite.

  • allowed_issuer_ids: Elenco degli identificativi delle Soluzioni Tecniche dei Fornitori di Attestati Elettronici autorizzati. Se presente, rappresenta una whitelist di Fornitori di Attestati Elettronici che possono essere aggiunti dal Trust Anchor nel campo issuers del corrispondente Attestato Elettronico.

pricing_policy

OPZIONALE. Informazioni sui tariffari dell'Attestato Elettronico, come ad esempio:

  • models: OBBLIGATORIO. Array di modelli di tariffari applicabili all'Attestato Elettronico, ciascuno contenente

    • pricing_type: Tipo di modello di tariffario, come issuance_based, verification_based, subscription_based, other.

    • price: Costo associato al modello.

    • currency: Valuta della tariffa.

  • pricing_model_uri: URI alla documentazione dettagliata del modello di tariffario.

validity_info

Informazioni sulla validità dell'Attestato Elettronico, inclusi almeno:

  • max_validity_days: Periodo massimo di validità in giorni.

  • status_methods: Metodi di verifica dello stato supportati (es. status_list).

  • allowed_states: Stati consentiti dell'Attestato Elettronico (es. valid, revoked, suspended).

authentication

OBBLIGATORIO. Requisiti di autenticazione dell'Attestato Elettronico

  • user_auth_required: OBBLIGATORIO. Flag che indica se l'autenticazione dell'Utente è richiesta durante l'emissione dell'Attestato Elettronico.

  • min_loa: OBBLIGATORIO. Livello minimo di Garanzia richiesto per l'autenticazione dell'Attestato Elettronico. DEVE includere il Livello di Garanzia dell'autenticazione dell'Utente e dell'Istanza del Wallet che richiede l'Attestato Elettronico.

  • supported_eid_schemes: OBBLIGATORIO se user_auth_required è true. Schemi di autenticazione dell'identità digitale supportati.

purposes

OBBLIGATORIO. Array di scopi o ambiti specifici per cui l'Attestato Elettronico può essere utilizzato, definendo contesti di utilizzo specifici e attributi richiesti per ciascuno scopo, come:

  • id: Identificativo univoco per lo scopo (es., "driving-authorization", "person-identification").

  • description: Descrizione human-readable dello scopo con un suffisso _l10n_id per la localizzazione del contenuto.

  • category: Categoria principale nella tassonomia della Credenziale (es., AUTHORIZATION, IDENTITY).

  • subcategory: Sottocategoria all'interno della tassonomia (es., DRIVING_LICENSE, PERSON_IDENTIFICATION).

  • claims_required: Array di identificativi di claims che sono richiesti quando si utilizza l'Attestato Elettronico per questo scopo.

  • claims_recommended: Array di identificativi di claims che sono raccomandati ma non obbligatori per questo scopo.

issuers

OBBLIGATORIO. Array di informazioni rilevanti sui Fornitori di Attestato Elettronico autorizzati, inclusi dati amministrativi e tecnici come il nome dell'Organizzazione, un riferimento al documento di specifiche API e meccanismi di emissione supportati (ad esempio il supporto al deferred flow).

authentic_sources

OBBLIGATORIO. Array di informazioni rilevanti sulle Fonti Autentiche autorizzate, inclusi dati amministrativi e tecnici relativi alla fornitura di dati ai Fornitori di Attestato Elettronico.

formats

OBBLIGATORIO. Array di formati tecnici supportati degli Attestati Elettronici.

display_properties

OBBLIGATORIO. Proprietà di presentazione visiva degli Attestati Elettronici, ad es.:

  • templates: Modelli visivi per l'Attestato Elettronico, ad es. template svg.

  • background_color: Colore di sfondo in formato esadecimale.

  • text_color: Colore del testo in formato esadecimale.

  • logo_uri: URI al logo dell'Attestato Elettronico.

claims

OBBLIGATORIO. Array di claims contenuti nell'Attestato Elettronico.

L'esempio corrispondente del Catalogo degli Attestati Elettronici decodificato in JSON sia per l'header che per il 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",
   "taxonomy_uri": "https://trust-registry.eid-wallet.example.it/.well-known/credential-taxonomy",
   "taxonomy_uri#integrity": "sha256-LmXfh-9cLlJNXN-TsMk-PmKjZ5t0WRL5ca_xGgX3c1V",   
   "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-authorization",
               "description_l10n_id": "purpose.driving_authorization.description",
               "category": "AUTHORIZATION",
               "subcategory": "DRIVING_LICENSE",
               "claims_required": ["family_name", "given_name", "issue_date", "expiry_date", "issuing_authority", "document_number", "portrait", "driving_privileges", "un_distinguishing_sign"],
               "claim_recommended": ["birth_date", "un_distinguishing_sign", "issuing_country", "issuing_jurisdiction"]
            
            },
            {
               "id": "person-identification",
               "description_l10n_id": "purpose.person_identification.description",
               "category": "IDENTITY",
               "subcategory": "PERSON_IDENTIFICATION",
               "claims_required": ["family_name", "given_name", "birth_date", "portrait", "document_number"],
               "claim_recommended": ["expiry_date", "issuing_authority"]
            }
         ],
         "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": [
            {
               "id": "https://authentic-sources.example.org",
               "organization_name": "Authentic Source of Example",
               "organization_code": "as_example_it",
               "organization_country": "IT",
               "contacts": [
                  "mailto:informazioni@example.it",
                  "mailto:protocollo@pec.example.it"
               ],
               "homepage_uri": "https://authsource.example.com/",
               "logo_uri": "https://authsource.example.com/img/logo.svg",
               "source_type": "public",
               "service_documentation": "https://authentic-sources.example.org/.well-known/service-doc",
               "data_provision": {
                  "immediate_flow": false,
                  "deferred_flow": true,
                  "max_response_time_minutes": 60,
                  "notification_methods": ["push"]
               }
            }
         ],
         "formats": [
            {
               "configuration_id": "dc_sd_jwt_mDL",
               "format": "dc+sd-jwt",
               "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",
               "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",
               "taxonomy_ref": "IDENTITY.PERSONAL_DATA.family_name",
               "display_name_l10n_id": "claims.family_name.name",
               "namespaces": ["org.iso.18013.5.1"]
            },
            {
               "name": "given_name",
               "taxonomy_ref": "IDENTITY.PERSONAL_DATA.given_name",
               "display_name_l10n_id": "claims.given_name.name",
               "namespaces": ["org.iso.18013.5.1"]
            },
            {
               "name": "birth_date",
               "taxonomy_ref": "IDENTITY.PERSONAL_DATA.birthdate",
               "display_name_l10n_id": "claims.birth_date.name",
               "namespaces": ["org.iso.18013.5.1"]
            },
            {
               "name": "issue_date",
               "taxonomy_ref": "COMMON.VALIDITY.issuance_date",
               "display_name_l10n_id": "claims.issue_date.name",
               "namespaces": ["org.iso.18013.5.1"]
            },
            {
               "name": "expiry_date",
               "taxonomy_ref": "COMMON.VALIDITY.expiry_date",
               "display_name_l10n_id": "claims.expiry_date.name",
               "namespaces": ["org.iso.18013.5.1"]
            },
            {
               "name": "issuing_authority",
               "taxonomy_ref": "IDENTITY.DOCUMENTS.issuing_authority",
               "display_name_l10n_id": "claims.issuing_authority.name",
               "namespaces": ["org.iso.18013.5.1"]
            },
            {
               "name": "document_number",
               "taxonomy_ref": "IDENTITY.DOCUMENTS.document_number",
               "display_name_l10n_id": "claims.document_number.name",
               "namespaces": ["org.iso.18013.5.1"]
            },
            {
               "name": "portrait",
               "taxonomy_ref": "IDENTITY.BIOMETRIC.facial_image",
               "display_name_l10n_id": "claims.portrait.name",
               "namespaces": ["org.iso.18013.5.1"]
            },
            {
               "name": "driving_privileges",
               "taxonomy_ref": "AUTHORIZATION.DRIVING_LICENSE.categories",
               "display_name_l10n_id": "claims.driving_privileges.name",
               "namespaces": ["org.iso.18013.5.1"]
            },
            {
               "name": "un_distinguishing_sign",
               "taxonomy_ref": "AUTHORIZATION.DRIVING_LICENSE.country_code",
               "display_name_l10n_id": "claims.un_distinguishing_sign.name",
               "namespaces": ["org.iso.18013.5.1"]
            },
            {
               "name": "administrative_number",
               "taxonomy_ref": "IDENTITY.DOCUMENTS.administrative_number",
               "display_name_l10n_id": "claims.administrative_number.name",
               "namespaces": ["org.iso.18013.5.1"]
            },
            {
               "name": "issuing_country",
               "taxonomy_ref": "IDENTITY.DOCUMENTS.issuing_country",
               "display_name_l10n_id": "claims.issuing_country.name",
               "namespaces": ["org.iso.18013.5.1"]
            },
            {
               "name": "issuing_jurisdiction",
               "taxonomy_ref": "IDENTITY.DOCUMENTS.issuing_jurisdiction",
               "display_name_l10n_id": "claims.issuing_jurisdiction.name",
               "namespaces": ["org.iso.18013.5.1"]
            }
         ]
      }
   ]
}

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-catalogue.

  • 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 nel claim 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 di localizzazione corrispondente dall'array available_locales.

Un esempio non normativo dell'URI di localizzazione italiana per il bundle mDL è 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.

6.3.3. Tassonomia degli Attributi

Il Catalogo degli Attestati Elettronici DEVE includere anche un URI di riferimento alla Tassonomia degli Attributi che fornisce, in un'unica risorsa, le informazioni semantiche di tutti gli attributi registrati e disponibili all'interno dell'ecosistema IT-Wallet. DEVE essere neutrale rispetto al formato della Credenziale e ha lo scopo di facilitare le integrazioni degli Attestati Elettronici nelle Soluzioni Tecniche IT-Wallet.

Un esempio non normativo della Tassonomia degli Attributi è fornito di seguito.

{
  "version": "1.0",
  "last_modified": "2025-04-10T12:00:00Z",
  "id": "urn:taxonomy:claims",
  "localization": {
    "default_locale": "it",
    "available_locales": ["en", "it", "fr", "de"],
    "base_uri": "https://trust-registry.eid-wallet.example.it/.well-known/l10n/taxonomy/claims/",
    "version": "1.0.0"
  },
  "name_l10n_id": "taxonomy.claims.name",
  "description_l10n_id": "taxonomy.claims.description",
  "domains": [
    {
      "id": "IDENTITY",
      "name_l10n_id": "domain.identity.name",
      "description_l10n_id": "domain.identity.description",
      "categories": [
        {
          "id": "PERSONAL_DATA",
          "name_l10n_id": "category.personal_data.name",
          "description_l10n_id": "category.personal_data.description",
          "claims": [
            {
              "id": "given_name",
              "name_l10n_id": "claim.given_name.name",
              "description_l10n_id": "claim.given_name.description",
              "sensitivity": "RESTRICTED",
              "type": "simple"
            },
            {
              "id": "family_name",
              "name_l10n_id": "claim.family_name.name",
              "description_l10n_id": "claim.family_name.description",
              "sensitivity": "RESTRICTED",
              "type": "simple"
            },
            {
              "id": "birthdate",
              "name_l10n_id": "claim.birthdate.name",
              "description_l10n_id": "claim.birthdate.description",
              "sensitivity": "RESTRICTED",
              "type": "simple"
            },
            {
              "id": "place_of_birth",
              "name_l10n_id": "claim.place_of_birth.name",
              "description_l10n_id": "claim.place_of_birth.description",
              "sensitivity": "RESTRICTED",
              "type": "structured"
            }
          ]
        },
        {
          "id": "CONTACT_INFO",
          "name_l10n_id": "category.contact_info.name",
          "description_l10n_id": "category.contact_info.description",
          "claims": [
            {
              "id": "email",
              "name_l10n_id": "claim.email.name",
              "description_l10n_id": "claim.email.description",
              "sensitivity": "RESTRICTED",
              "type": "simple"
            },
            {
              "id": "phone_number",
              "name_l10n_id": "claim.phone_number.name",
              "description_l10n_id": "claim.phone_number.description",
              "sensitivity": "RESTRICTED",
              "type": "simple"
            },
            {
              "id": "address",
              "name_l10n_id": "claim.address.name",
              "description_l10n_id": "claim.address.description",
              "sensitivity": "RESTRICTED",
              "type": "structured"
            }
          ]
        },
        {
          "id": "IDENTIFIERS",
          "name_l10n_id": "category.identifiers.name",
          "description_l10n_id": "category.identifiers.description",
          "claims": [
            {
              "id": "tax_id",
              "name_l10n_id": "claim.tax_id.name",
              "description_l10n_id": "claim.tax_id.description",
              "sensitivity": "RESTRICTED",
              "type": "simple"
            },
            {
              "id": "personal_administrative_number",
              "name_l10n_id": "claim.personal_administrative_number.name",
              "description_l10n_id": "claim.personal_administrative_number.description",
              "sensitivity": "RESTRICTED",
              "type": "simple"
            }
          ]
        },
        {
          "id": "BIOMETRIC",
          "name_l10n_id": "category.biometric.name",
          "description_l10n_id": "category.biometric.description",
          "claims": [
            {
              "id": "portrait",
              "name_l10n_id": "claim.portrait.name",
              "description_l10n_id": "claim.portrait.description",
              "sensitivity": "SENSITIVE",
              "type": "simple"
            }
          ]
        },
        {
          "id": "DOCUMENTS",
          "name_l10n_id": "category.documents.name",
          "description_l10n_id": "category.documents.description",
          "claims": [
            {
              "id": "document_type",
              "name_l10n_id": "claim.document_type.name",
              "description_l10n_id": "claim.document_type.description",
              "sensitivity": "PUBLIC",
              "type": "simple"
            },
            {
              "id": "document_number",
              "name_l10n_id": "claim.document_number.name",
              "description_l10n_id": "claim.document_number.description",
              "sensitivity": "RESTRICTED",
              "type": "simple"
            },
            {
              "id": "issuing_authority",
              "name_l10n_id": "claim.issuing_authority.name",
              "description_l10n_id": "claim.issuing_authority.description",
              "sensitivity": "PUBLIC",
              "type": "simple"
            },
            {
              "id": "issuing_country",
              "name_l10n_id": "claim.issuing_country.name",
              "description_l10n_id": "claim.issuing_country.description",
              "sensitivity": "PUBLIC",
              "type": "simple"
            },
            {
              "id": "issuing_jurisdiction",
              "name_l10n_id": "claim.issuing_jurisdiction.name",
              "description_l10n_id": "claim.issuing_jurisdiction.description",
              "sensitivity": "PUBLIC",
              "type": "simple"
            }
          ]
        }
      ]
    },
    {
      "id": "AUTHORIZATION",
      "name_l10n_id": "domain.authorization.name",
      "description_l10n_id": "domain.authorization.description",
      "categories": [
        {
          "id": "DRIVING_LICENSE",
          "name_l10n_id": "category.driving_license.name",
          "description_l10n_id": "category.driving_license.description",
          "claims": [
            {
              "id": "driving_privileges",
              "name_l10n_id": "claim.driving_privileges.name",
              "description_l10n_id": "claim.driving_privileges.description",
              "sensitivity": "PUBLIC",
              "type": "structured"
            },
            {
              "id": "vehicle_category_code",
              "name_l10n_id": "claim.vehicle_category_code.name",
              "description_l10n_id": "claim.vehicle_category_code.description",
              "sensitivity": "PUBLIC",
              "type": "simple"
            }
          ]
        }
      ]
    },
    {
      "id": "FINANCIAL",
      "name_l10n_id": "domain.financial.name", 
      "description_l10n_id": "domain.financial.description",
      "categories": [
        {
          "id": "INCOME",
          "name_l10n_id": "category.income.name",
          "description_l10n_id": "category.income.description",
          "claims": [
            {
              "id": "income_indicator",
              "name_l10n_id": "claim.income_indicator.name",
              "description_l10n_id": "claim.income_indicator.description",
              "sensitivity": "RESTRICTED",
              "type": "simple"
            },
            {
              "id": "income_certificate_type",
              "name_l10n_id": "claim.income_certificate_type.name",
              "description_l10n_id": "claim.income_certificate_type.description",
              "sensitivity": "RESTRICTED",
              "type": "simple"
            },
            {
              "id": "reference_period",
              "name_l10n_id": "claim.reference_period.name",
              "description_l10n_id": "claim.reference_period.description",
              "sensitivity": "RESTRICTED",
              "type": "simple"
            }
          ]
        }
      ]
    },
    {
      "id": "COMMON",
      "name_l10n_id": "domain.common.name",
      "description_l10n_id": "domain.common.description",
      "categories": [
        {
          "id": "VALIDITY",
          "name_l10n_id": "category.validity.name",
          "description_l10n_id": "category.validity.description",
          "claims": [
            {
              "id": "issuance_date",
              "name_l10n_id": "claim.issuance_date.name",
              "description_l10n_id": "claim.issuance_date.description",
              "sensitivity": "PUBLIC",
              "type": "simple"
            },
            {
              "id": "expiry_date",
              "name_l10n_id": "claim.expiry_date.name",
              "description_l10n_id": "claim.expiry_date.description",
              "sensitivity": "PUBLIC",
              "type": "simple"
            },
            {
              "id": "validity_period",
              "name_l10n_id": "claim.validity_period.name",
              "description_l10n_id": "claim.validity_period.description",
              "sensitivity": "PUBLIC",
              "type": "simple"
            }
          ]
        }
      ]
    }
  ]
}

6.3.4. Endpoint del Catalogo degli Attestati Elettronici

L'Endpoint del Catalogo degli Attestati Elettronici DEVE essere un URI HTTPS well-known [RFC 8615] che fornisce accesso pubblico alle informazioni relative agli Attestati Elettronici disponibili in IT-Wallet.

6.3.4.1. Richiesta del Catalogo degli Attestati Elettronici

La Richiesta del Catalogo degli Attestati Elettronici DEVE essere una GET HTTP utilizzando il media type application/jose come nel seguente esempio non normativo.

GET /.well-known/credential-catalogue HTTP/1.1
Host: www.trust-registry.eid-wallet.example.it
Content-Type: application/jose

Nota

Come miglioramento futuro, il Trust Anchor PUÒ implementare un endpoint dinamico che consenta di filtrare gli Attestati Elettronici per tipo, offrendo al contempo capacità di paginazione, per supportare una navigazione più efficiente e flessibile del Catalogo degli Attestati Elettronici.

6.3.4.2. Risposta del Catalogo degli Attestati Elettronici

La Risposta del Catalogo degli Attestati Elettronici DEVE essere un JWS che contiene i parametri elencati nella tabella dei parametri del Catalogo degli Attestati Elettronici.

Un esempio non normativo della risposta è fornito di seguito.

ewogICAidHlwIjoiSk9TRSIsCiAgICJhbGciOiJFUzI1NiIsCiAgICJraWQiOiJlOWJjMDk3YS1jZTUxLTQwMzYtOTU2Mi1kMmFkZTg4MmRiMGQiLAogICAiY3R5IjoiYXBwbGljYXRpb24vanNvbiIKfQ==.ew0KICAgImNhdGFsb2dfdmVyc2lvbiI6ICIxLjAiLA0KICAgImlzcyI6ICJodHRwczovL3RydXN0LXJlZ2lzdHJ5LmVpZC13YWxsZXQuZXhhbXBsZS5pdCIsDQogICAibGFzdF9tb2RpZmllZCI6ICIyMDI1LTAzLTE1VDEyOjAwOjAwWiIsDQogICAidGF4b25vbXlfdXJpIjogImh0dHBzOi8vdHJ1c3QtcmVnaXN0cnkuZWlkLXdhbGxldC5leGFtcGxlLml0Ly53ZWxsLWtub3duL2NyZWRlbnRpYWwtdGF4b25vbXkiLA0KICAgInRheG9ub215X3VyaSNpbnRlZ3JpdHkiOiAic2hhMjU2LUxtWGZoLTljTGxKTlhOLVRzTWstUG1Lalo1dDBXUkw1Y2FfeEdnWDNjMVYiLCAgIA0KICAgImNyZWRlbnRpYWxzIjogWw0KICAgICAgew0KICAgICAgICAgInZlcnNpb24iOiAiMS4wIiwNCiAgICAgICAgICJjcmVkZW50aWFsX3R5cGUiOiAibURMIiwNCiAgICAgICAgICJsZWdhbF90eXBlIjogInB1Yi1lYWEiLA0KICAgICAgICAgImxvY2FsaXphdGlvbiI6IHsNCiAgICAgICAgICAgICJkZWZhdWx0X2xvY2FsZSI6ICJpdCIsDQogICAgICAgICAgICAiYXZhaWxhYmxlX2xvY2FsZXMiOiBbImVuIiwgIml0IiwgImZyIiwgImRlIl0sDQogICAgICAgICAgICAiYmFzZV91cmkiOiAiaHR0cHM6Ly90cnVzdC1yZWdpc3RyeS5laWQtd2FsbGV0LmV4YW1wbGUuaXQvLndlbGwta25vd24vbDEwbi9tZGwvIiwNCiAgICAgICAgICAgICJ2ZXJzaW9uIjogIjEuMC4wIg0KICAgICAgICAgfSwNCiAgICAgICAgICJuYW1lX2wxMG5faWQiOiAiY3JlZGVudGlhbC5tZGwubmFtZSIsDQogICAgICAgICAiZGVzY3JpcHRpb25fbDEwbl9pZCI6ICJjcmVkZW50aWFsLm1kbC5kZXNjcmlwdGlvbiIsDQogICAgICAgICAicmVzdHJpY3Rpb25fcG9saWN5Ijogew0KICAgICAgICAgICAgImFsbG93ZWRfd2FsbGV0X2lkcyI6IFsNCiAgICAgICAgICAgICAgICJodHRwczovL3dhbGxldC1wcm92aWRlci5leGFtcGxlLm9yZy93YWxsZXRfc29sdXRpb24iLA0KICAgICAgICAgICAgICAgImh0dHBzOi8vd2FsbGV0LXByb3ZpZGVyMi5leGFtcGxlLm9yZy93YWxsZXRfc29sdXRpb24iDQogICAgICAgICAgICBdLA0KICAgICAgICAgICAgImFsbG93ZWRfaXNzdWVyX2lkcyI6IFsNCiAgICAgICAgICAgICAgICJodHRwczovL2lzc3Vlci5leGFtcGxlLm9yZyINCiAgICAgICAgICAgIF0NCiAgICAgICAgIH0sDQogICAgICAgICAicHJpY2luZ19wb2xpY3kiOiB7DQogICAgICAgICAgICAgIm1vZGVscyI6IFsNCiAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgInByaWNpbmdfdHlwZSI6ICJ2ZXJpZmljYXRpb25fYmFzZWQiLA0KICAgICAgICAgICAgICAgICAicHJpY2UiOiAwLjAxLA0KICAgICAgICAgICAgICAgICAiY3VycmVuY3kiOiAiRVVSIg0KICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgIF0sDQogICAgICAgICAgICAgInByaWNpbmdfbW9kZWxfdXJpIjogImh0dHBzOi8vZXhhbXBsZS5jb20vcHJpY2luZyINCiAgICAgICAgICAgfSwNCiAgICAgICAgICJ2YWxpZGl0eV9pbmZvIjogew0KICAgICAgICAgICAgIm1heF92YWxpZGl0eV9kYXlzIjogMzY1LA0KICAgICAgICAgICAgInN0YXR1c19tZXRob2RzIjogWyJzdGF0dXNfbGlzdCJdLA0KICAgICAgICAgICAgImFsbG93ZWRfc3RhdGVzIjogWw0KICAgICAgICAgICAgICAgInZhbGlkIiwNCiAgICAgICAgICAgICAgICJyZXZva2VkIiwNCiAgICAgICAgICAgICAgICJzdXNwZW5kZWQiDQogICAgICAgICAgICBdDQogICAgICAgICB9LCAgICAgICANCiAgICAgICAgICJhdXRoZW50aWNhdGlvbiI6IHsNCiAgICAgICAgICAgICJ1c2VyX2F1dGhfcmVxdWlyZWQiOiB0cnVlLA0KICAgICAgICAgICAgIm1pbl9sb2EiOiAiaGlnaCIsDQogICAgICAgICAgICAic3VwcG9ydGVkX3NjaGVtZXMiOiBbIml0LXdhbGxldCJdDQogICAgICAgICB9LA0KICAgICAgICAgInB1cnBvc2VzIjogWw0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgImlkIjogImRyaXZpbmctYXV0aG9yaXphdGlvbiIsDQogICAgICAgICAgICAgICAiZGVzY3JpcHRpb25fbDEwbl9pZCI6ICJwdXJwb3NlLmRyaXZpbmdfYXV0aG9yaXphdGlvbi5kZXNjcmlwdGlvbiIsDQogICAgICAgICAgICAgICAiY2F0ZWdvcnkiOiAiQVVUSE9SSVpBVElPTiIsDQogICAgICAgICAgICAgICAic3ViY2F0ZWdvcnkiOiAiRFJJVklOR19MSUNFTlNFIiwNCiAgICAgICAgICAgICAgICJjbGFpbXNfcmVxdWlyZWQiOiBbImZhbWlseV9uYW1lIiwgImdpdmVuX25hbWUiLCAiaXNzdWVfZGF0ZSIsICJleHBpcnlfZGF0ZSIsICJpc3N1aW5nX2F1dGhvcml0eSIsICJkb2N1bWVudF9udW1iZXIiLCAicG9ydHJhaXQiLCAiZHJpdmluZ19wcml2aWxlZ2VzIiwgInVuX2Rpc3Rpbmd1aXNoaW5nX3NpZ24iXSwNCiAgICAgICAgICAgICAgICJjbGFpbV9yZWNvbW1lbmRlZCI6IFsiYmlydGhfZGF0ZSIsICJ1bl9kaXN0aW5ndWlzaGluZ19zaWduIiwgImlzc3VpbmdfY291bnRyeSIsICJpc3N1aW5nX2p1cmlzZGljdGlvbiJdDQogICAgICAgICAgICANCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAiaWQiOiAicGVyc29uLWlkZW50aWZpY2F0aW9uIiwNCiAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbl9sMTBuX2lkIjogInB1cnBvc2UucGVyc29uX2lkZW50aWZpY2F0aW9uLmRlc2NyaXB0aW9uIiwNCiAgICAgICAgICAgICAgICJjYXRlZ29yeSI6ICJJREVOVElUWSIsDQogICAgICAgICAgICAgICAic3ViY2F0ZWdvcnkiOiAiUEVSU09OX0lERU5USUZJQ0FUSU9OIiwNCiAgICAgICAgICAgICAgICJjbGFpbXNfcmVxdWlyZWQiOiBbImZhbWlseV9uYW1lIiwgImdpdmVuX25hbWUiLCAiYmlydGhfZGF0ZSIsICJwb3J0cmFpdCIsICJkb2N1bWVudF9udW1iZXIiXSwNCiAgICAgICAgICAgICAgICJjbGFpbV9yZWNvbW1lbmRlZCI6IFsiZXhwaXJ5X2RhdGUiLCAiaXNzdWluZ19hdXRob3JpdHkiXQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgXSwNCiAgICAgICAgICJpc3N1ZXJzIjogWw0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgImlkIjogImh0dHBzOi8vaXNzdWVyLmV4YW1wbGUub3JnIiwNCiAgICAgICAgICAgICAgICJvcmdhbml6YXRpb25fbmFtZSI6ICJEaWdpdGFsIENyZWRlbnRpYWwgSXNzdWVyIG9mIEV4YW1wbGUiLA0KICAgICAgICAgICAgICAgIm9yZ2FuaXphdGlvbl9jb2RlIjogImNpX2V4YW1wbGVfaXQiLA0KICAgICAgICAgICAgICAgIm9yZ2FuaXphdGlvbl9jb3VudHJ5IjogIklUIiwNCiAgICAgICAgICAgICAgICJjb250YWN0cyI6IFsNCiAgICAgICAgICAgICAgICAgICJtYWlsdG86aW5mb3JtYXppb25pQGV4YW1wbGUuaXQiLA0KICAgICAgICAgICAgICAgICAgIm1haWx0bzpwcm90b2NvbGxvQHBlYy5leGFtcGxlLml0Ig0KICAgICAgICAgICAgICAgXSwNCiAgICAgICAgICAgICAgICJsZWdhbF90eXBlIjogInB1Yi1lYWEiLA0KICAgICAgICAgICAgICAgImhvbWVwYWdlX3VyaSI6ICJodHRwczovL2lzc3Vlci5leGFtcGxlLm9yZyIsDQogICAgICAgICAgICAgICAibG9nb191cmkiOiAiaHR0cHM6Ly9pc3N1ZXIuZXhhbXBsZS5vcmcvbG9nby5zdmciLA0KICAgICAgICAgICAgICAgInBvbGljeV91cmkiOiAiaHR0cHM6Ly9pc3N1ZXIuZXhhbXBsZS5vcmcvcHJpdmFjeSIsDQogICAgICAgICAgICAgICAidG9zX3VyaSI6ICJodHRwczovL2lzc3Vlci5leGFtcGxlLm9yZy90ZXJtcyIsDQogICAgICAgICAgICAgICAic2VydmljZV9kb2N1bWVudGF0aW9uIjogImh0dHBzOi8vaXNzdWVyLmV4YW1wbGUub3JnLy53ZWxsLWtub3duL3NlcnZpY2UtZG9jIiwNCiAgICAgICAgICAgICAgICJpc3N1YW5jZV9mbG93cyI6IHsNCiAgICAgICAgICAgICAgICAgICJkZWZlcnJlZF9mbG93IjogdHJ1ZSwNCiAgICAgICAgICAgICAgICAgICJtYXhfZGVmZXJyZWRfaXNzdWFuY2VfdGltZV9taW51dGVzIjogMTQ0MCwNCiAgICAgICAgICAgICAgICAgICJub3RpZmljYXRpb25fbWV0aG9kcyI6IFsicHVzaCIsICJwb2xsaW5nIl0NCiAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgIF0sDQogICAgICAgICAiYXV0aGVudGljX3NvdXJjZXMiOiBbDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAiaWQiOiAiaHR0cHM6Ly9hdXRoZW50aWMtc291cmNlcy5leGFtcGxlLm9yZyIsDQogICAgICAgICAgICAgICAib3JnYW5pemF0aW9uX25hbWUiOiAiQXV0aGVudGljIFNvdXJjZSBvZiBFeGFtcGxlIiwNCiAgICAgICAgICAgICAgICJvcmdhbml6YXRpb25fY29kZSI6ICJhc19leGFtcGxlX2l0IiwNCiAgICAgICAgICAgICAgICJvcmdhbml6YXRpb25fY291bnRyeSI6ICJJVCIsDQogICAgICAgICAgICAgICAiY29udGFjdHMiOiBbDQogICAgICAgICAgICAgICAgICAibWFpbHRvOmluZm9ybWF6aW9uaUBleGFtcGxlLml0IiwNCiAgICAgICAgICAgICAgICAgICJtYWlsdG86cHJvdG9jb2xsb0BwZWMuZXhhbXBsZS5pdCINCiAgICAgICAgICAgICAgIF0sDQogICAgICAgICAgICAgICAiaG9tZXBhZ2VfdXJpIjogImh0dHBzOi8vYXV0aHNvdXJjZS5leGFtcGxlLmNvbS8iLA0KICAgICAgICAgICAgICAgImxvZ29fdXJpIjogImh0dHBzOi8vYXV0aHNvdXJjZS5leGFtcGxlLmNvbS9pbWcvbG9nby5zdmciLA0KICAgICAgICAgICAgICAgInNvdXJjZV90eXBlIjogInB1YmxpYyIsDQogICAgICAgICAgICAgICAic2VydmljZV9kb2N1bWVudGF0aW9uIjogImh0dHBzOi8vYXV0aGVudGljLXNvdXJjZXMuZXhhbXBsZS5vcmcvLndlbGwta25vd24vc2VydmljZS1kb2MiLA0KICAgICAgICAgICAgICAgImRhdGFfcHJvdmlzaW9uIjogew0KICAgICAgICAgICAgICAgICAgImltbWVkaWF0ZV9mbG93IjogZmFsc2UsDQogICAgICAgICAgICAgICAgICAiZGVmZXJyZWRfZmxvdyI6IHRydWUsDQogICAgICAgICAgICAgICAgICAibWF4X3Jlc3BvbnNlX3RpbWVfbWludXRlcyI6IDYwLA0KICAgICAgICAgICAgICAgICAgIm5vdGlmaWNhdGlvbl9tZXRob2RzIjogWyJwdXNoIl0NCiAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgIF0sDQogICAgICAgICAiZm9ybWF0cyI6IFsNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICJjb25maWd1cmF0aW9uX2lkIjogImRjX3NkX2p3dF9tREwiLA0KICAgICAgICAgICAgICAgImZvcm1hdCI6ICJkYytzZC1qd3QiLA0KICAgICAgICAgICAgICAgInNjaGVtYV91cmkiOiAiaHR0cHM6Ly90cnVzdC1yZWdpc3RyeS5laWQtd2FsbGV0LmV4YW1wbGUuaXQvLndlbGwta25vd24vc2NoZW1hcy9zZC1qd3QvbURMIiwNCiAgICAgICAgICAgICAgICJzY2hlbWFfdXJpI2ludGVncml0eSI6ICJzaGEyNTYtYzhiNzA4NzI4ZTRjNTc1NmUzNWMwM2FlYWMyNTdjYTg3OGQxZjcxN2Q3YjYxZjYyMWJlNGQzNmRiZDliOWMxNiINCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAiY29uZmlndXJhdGlvbl9pZCI6ICJtc29fbWRvY19tREwiLA0KICAgICAgICAgICAgICAgImZvcm1hdCI6ICJtc29fbWRvYyIsDQogICAgICAgICAgICAgICAic2NoZW1hX3VyaSI6ICJodHRwczovL3RydXN0LXJlZ2lzdHJ5LmVpZC13YWxsZXQuZXhhbXBsZS5pdC8ud2VsbC1rbm93bi9zY2hlbWFzL21kb2MvbURMIiwNCiAgICAgICAgICAgICAgICJzY2hlbWFfdXJpI2ludGVncml0eSI6ICJzaGEyNTYtYzhiNzA4NzI4ZTRjNTc1NmUzNWMwM2FlYWMyNTdjYTg3OGQxZjcxN2Q3YjYxZjYyMWJlNGQzNmRiZDliOWMxNiINCiAgICAgICAgICAgIH0NCiAgICAgICAgIF0sDQogICAgICAgICAiZGlzcGxheV9wcm9wZXJ0aWVzIjogew0KICAgICAgICAgICAgInRlbXBsYXRlcyI6IFsNCiAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICJhdXRoZW50aWNfc291cmNlX2lkIjogImh0dHBzOi8vYXV0aGVudGljLXNvdXJjZXMuZXhhbXBsZS5vcmciLA0KICAgICAgICAgICAgICAgICAgInRlbXBsYXRlX3VyaSI6ICJodHRwczovL2F1dGhzb3VyY2UuZXhhbXBsZS5jb20vLndlbGwta25vd24vdGVtcGxhdGVzL21ETC5zdmciLA0KICAgICAgICAgICAgICAgICAgInRlbXBsYXRlX3VyaSNpbnRlZ3JpdHkiOiAic2hhMjU2LThjTGxKTlhOLVRzTWstUG1Lalo1dDBXUkw1Y2FfeEdnWDNjMVZMbVhmaC05YyIsDQogICAgICAgICAgICAgICAgICAicHJvcGVydGllcyI6IHsNCiAgICAgICAgICAgICAgICAgICAgICJvcmllbnRhdGlvbiI6ICJsYW5kc2NhcGUiLA0KICAgICAgICAgICAgICAgICAgICAgImNvbG9yX3NjaGVtZSI6ICJsaWdodCIsDQogICAgICAgICAgICAgICAgICAgICAiY29udHJhc3QiOiAiaGlnaCINCiAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIF0sDQogICAgICAgICAgICAiYmFja2dyb3VuZF9jb2xvciI6ICIjMDA4NTU4IiwNCiAgICAgICAgICAgICJ0ZXh0X2NvbG9yIjogIiNGRkZGRkYiLA0KICAgICAgICAgICAgImxvZ29fdXJpIjogImh0dHBzOi8vdHJ1c3QtcmVnaXN0cnkuZWlkLXdhbGxldC5leGFtcGxlLml0Ly53ZWxsLWtub3duL2xvZ29zL21ETC5zdmciDQogICAgICAgICB9LA0KICAgICAgICAgImNsYWltcyI6IFsNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICJuYW1lIjogImZhbWlseV9uYW1lIiwNCiAgICAgICAgICAgICAgICJ0YXhvbm9teV9yZWYiOiAiSURFTlRJVFkuUEVSU09OQUxfREFUQS5mYW1pbHlfbmFtZSIsDQogICAgICAgICAgICAgICAiZGlzcGxheV9uYW1lX2wxMG5faWQiOiAiY2xhaW1zLmZhbWlseV9uYW1lLm5hbWUiLA0KICAgICAgICAgICAgICAgIm5hbWVzcGFjZXMiOiBbIm9yZy5pc28uMTgwMTMuNS4xIl0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAibmFtZSI6ICJnaXZlbl9uYW1lIiwNCiAgICAgICAgICAgICAgICJ0YXhvbm9teV9yZWYiOiAiSURFTlRJVFkuUEVSU09OQUxfREFUQS5naXZlbl9uYW1lIiwNCiAgICAgICAgICAgICAgICJkaXNwbGF5X25hbWVfbDEwbl9pZCI6ICJjbGFpbXMuZ2l2ZW5fbmFtZS5uYW1lIiwNCiAgICAgICAgICAgICAgICJuYW1lc3BhY2VzIjogWyJvcmcuaXNvLjE4MDEzLjUuMSJdDQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIm5hbWUiOiAiYmlydGhfZGF0ZSIsDQogICAgICAgICAgICAgICAidGF4b25vbXlfcmVmIjogIklERU5USVRZLlBFUlNPTkFMX0RBVEEuYmlydGhkYXRlIiwNCiAgICAgICAgICAgICAgICJkaXNwbGF5X25hbWVfbDEwbl9pZCI6ICJjbGFpbXMuYmlydGhfZGF0ZS5uYW1lIiwNCiAgICAgICAgICAgICAgICJuYW1lc3BhY2VzIjogWyJvcmcuaXNvLjE4MDEzLjUuMSJdDQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIm5hbWUiOiAiaXNzdWVfZGF0ZSIsDQogICAgICAgICAgICAgICAidGF4b25vbXlfcmVmIjogIkNPTU1PTi5WQUxJRElUWS5pc3N1YW5jZV9kYXRlIiwNCiAgICAgICAgICAgICAgICJkaXNwbGF5X25hbWVfbDEwbl9pZCI6ICJjbGFpbXMuaXNzdWVfZGF0ZS5uYW1lIiwNCiAgICAgICAgICAgICAgICJuYW1lc3BhY2VzIjogWyJvcmcuaXNvLjE4MDEzLjUuMSJdDQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIm5hbWUiOiAiZXhwaXJ5X2RhdGUiLA0KICAgICAgICAgICAgICAgInRheG9ub215X3JlZiI6ICJDT01NT04uVkFMSURJVFkuZXhwaXJ5X2RhdGUiLA0KICAgICAgICAgICAgICAgImRpc3BsYXlfbmFtZV9sMTBuX2lkIjogImNsYWltcy5leHBpcnlfZGF0ZS5uYW1lIiwNCiAgICAgICAgICAgICAgICJuYW1lc3BhY2VzIjogWyJvcmcuaXNvLjE4MDEzLjUuMSJdDQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIm5hbWUiOiAiaXNzdWluZ19hdXRob3JpdHkiLA0KICAgICAgICAgICAgICAgInRheG9ub215X3JlZiI6ICJJREVOVElUWS5ET0NVTUVOVFMuaXNzdWluZ19hdXRob3JpdHkiLA0KICAgICAgICAgICAgICAgImRpc3BsYXlfbmFtZV9sMTBuX2lkIjogImNsYWltcy5pc3N1aW5nX2F1dGhvcml0eS5uYW1lIiwNCiAgICAgICAgICAgICAgICJuYW1lc3BhY2VzIjogWyJvcmcuaXNvLjE4MDEzLjUuMSJdDQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIm5hbWUiOiAiZG9jdW1lbnRfbnVtYmVyIiwNCiAgICAgICAgICAgICAgICJ0YXhvbm9teV9yZWYiOiAiSURFTlRJVFkuRE9DVU1FTlRTLmRvY3VtZW50X251bWJlciIsDQogICAgICAgICAgICAgICAiZGlzcGxheV9uYW1lX2wxMG5faWQiOiAiY2xhaW1zLmRvY3VtZW50X251bWJlci5uYW1lIiwNCiAgICAgICAgICAgICAgICJuYW1lc3BhY2VzIjogWyJvcmcuaXNvLjE4MDEzLjUuMSJdDQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIm5hbWUiOiAicG9ydHJhaXQiLA0KICAgICAgICAgICAgICAgInRheG9ub215X3JlZiI6ICJJREVOVElUWS5CSU9NRVRSSUMuZmFjaWFsX2ltYWdlIiwNCiAgICAgICAgICAgICAgICJkaXNwbGF5X25hbWVfbDEwbl9pZCI6ICJjbGFpbXMucG9ydHJhaXQubmFtZSIsDQogICAgICAgICAgICAgICAibmFtZXNwYWNlcyI6IFsib3JnLmlzby4xODAxMy41LjEiXQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICJuYW1lIjogImRyaXZpbmdfcHJpdmlsZWdlcyIsDQogICAgICAgICAgICAgICAidGF4b25vbXlfcmVmIjogIkFVVEhPUklaQVRJT04uRFJJVklOR19MSUNFTlNFLmNhdGVnb3JpZXMiLA0KICAgICAgICAgICAgICAgImRpc3BsYXlfbmFtZV9sMTBuX2lkIjogImNsYWltcy5kcml2aW5nX3ByaXZpbGVnZXMubmFtZSIsDQogICAgICAgICAgICAgICAibmFtZXNwYWNlcyI6IFsib3JnLmlzby4xODAxMy41LjEiXQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICJuYW1lIjogInVuX2Rpc3Rpbmd1aXNoaW5nX3NpZ24iLA0KICAgICAgICAgICAgICAgInRheG9ub215X3JlZiI6ICJBVVRIT1JJWkFUSU9OLkRSSVZJTkdfTElDRU5TRS5jb3VudHJ5X2NvZGUiLA0KICAgICAgICAgICAgICAgImRpc3BsYXlfbmFtZV9sMTBuX2lkIjogImNsYWltcy51bl9kaXN0aW5ndWlzaGluZ19zaWduLm5hbWUiLA0KICAgICAgICAgICAgICAgIm5hbWVzcGFjZXMiOiBbIm9yZy5pc28uMTgwMTMuNS4xIl0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAibmFtZSI6ICJhZG1pbmlzdHJhdGl2ZV9udW1iZXIiLA0KICAgICAgICAgICAgICAgInRheG9ub215X3JlZiI6ICJJREVOVElUWS5ET0NVTUVOVFMuYWRtaW5pc3RyYXRpdmVfbnVtYmVyIiwNCiAgICAgICAgICAgICAgICJkaXNwbGF5X25hbWVfbDEwbl9pZCI6ICJjbGFpbXMuYWRtaW5pc3RyYXRpdmVfbnVtYmVyLm5hbWUiLA0KICAgICAgICAgICAgICAgIm5hbWVzcGFjZXMiOiBbIm9yZy5pc28uMTgwMTMuNS4xIl0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAibmFtZSI6ICJpc3N1aW5nX2NvdW50cnkiLA0KICAgICAgICAgICAgICAgInRheG9ub215X3JlZiI6ICJJREVOVElUWS5ET0NVTUVOVFMuaXNzdWluZ19jb3VudHJ5IiwNCiAgICAgICAgICAgICAgICJkaXNwbGF5X25hbWVfbDEwbl9pZCI6ICJjbGFpbXMuaXNzdWluZ19jb3VudHJ5Lm5hbWUiLA0KICAgICAgICAgICAgICAgIm5hbWVzcGFjZXMiOiBbIm9yZy5pc28uMTgwMTMuNS4xIl0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAibmFtZSI6ICJpc3N1aW5nX2p1cmlzZGljdGlvbiIsDQogICAgICAgICAgICAgICAidGF4b25vbXlfcmVmIjogIklERU5USVRZLkRPQ1VNRU5UUy5pc3N1aW5nX2p1cmlzZGljdGlvbiIsDQogICAgICAgICAgICAgICAiZGlzcGxheV9uYW1lX2wxMG5faWQiOiAiY2xhaW1zLmlzc3VpbmdfanVyaXNkaWN0aW9uLm5hbWUiLA0KICAgICAgICAgICAgICAgIm5hbWVzcGFjZXMiOiBbIm9yZy5pc28uMTgwMTMuNS4xIl0NCiAgICAgICAgICAgIH0NCiAgICAgICAgIF0NCiAgICAgIH0NCiAgIF0NCn0.kBvX6LppO1m35KdSg3_p_WP1i-cONPjFQuKBDtTIpOYkrEb7zarqtKEqWMJcw3GWhDnIIs8a2Jy4_ng0fokqug