11.2. Modello di Dati del PID¶
L'Attestato Elettronico di Dati di Identificazione Personale (PID) è rilasciato dal Fornitore di Attestati Elettronici di Dati di Identificazione Personale secondo le leggi nazionali e DEVE essere fornito in formato SD-JWT VC e mdoc-CBOR.
Nota
Fase Transitoria:
Durante la fase transitoria prima della piena operatività EUDIW, il PID sarà fornito solo in formato SD-JWT-VC.
Lo scopo principale del PID è consentire alle persone fisiche di essere autenticate per accedere a un servizio o a una risorsa protetta. Il PID DEVE essere fornito secondo i requisiti del modello dati definiti in EU_2024/2977 e Sezione 2 dell'ARF PID Rulebook v1.3 [EIDAS-ARF], gli attributi dell'Utente forniti all'interno del PID italiano sono quelli elencati di seguito:
Cognome attuale
Nome attuale
Data di Nascita
Luogo di Nascita
Nazionalità
Numero di identificazione dell'Utente nei servizi delle Relying Party pubbliche (ad esempio il codice fiscale)
In aggiunta agli attributi dell'Utente elencati sopra, il PID include anche le seguenti informazioni (EU_2024/2977 e Sezione 2 dell'ARF PID Rulebook v1.3 [EIDAS-ARF]):
Autorità emittente
Paese emittente
Data di scadenza
Informazioni sullo stato di validità
Informazioni di verifica dell'identità e dei dati
Alcuni attributi di dati, come il codice di identificazione fiscale e le informazioni di verifica dell'identità e dei dati, sono forniti come estensioni domestiche definite dalla specifica IT-Wallet italiana. Questi non fanno parte dell'ARF PID Rulebook (Annex 3.01, PID Rulebook v1.3), ma consentiti, vedi ARF HLR PID_06**, il che consente agli Stati Membri di definire attributi domestici aggiuntivi oltre a quelli specificati nel Regolamento di Esecuzione della Commissione (CIR) 2024/2977 (EU_2024/2977). In particolare, le informazioni di verifica dell'identità sono OBBLIGATORIE per i PID italiani per garantire:
Tracciabilità del metodo di autenticazione dell'Utente.
Conformità al livello di garanzia dell'identity proofing durante il processo di enrollment (LoA come definito dal Regolamento eIDAS).
Verificabilità dei processi di verifica dell'identità e degli attributi dell'Utente.
Gli attributi che sono estensioni domestiche DEVONO essere inclusi nei namespace domestici che sono definiti nella Sezione Modello Dati PID in formato SD-JWT-VC e Sezione Modello Dati PID in formato mdoc-CBOR per i PID SD-JWT VC e mdoc-CBOR rispettivamente.
11.2.1. Modello Dati PID in formato SD-JWT-VC¶
Per il PID SD-JWT VC definito in questa specifica, il valore vct DEVE essere urn:eudi:pid:it:1 in conformità ai requisiti dell'ARF PID Rulebook v1.3 per le estensioni domestiche PID (requisito PID_14, Sezione 4.2, estendendo il tipo base urn:eudi:pid:).
Nota
Fase Transitoria:
Durante la fase transitoria prima della piena operatività EUDIW, le implementazioni nazionali POSSONO utilizzare il valore vct urn:it-wallet:pid:1. Una volta raggiunta la piena interoperabilità EUDIW, tutte le implementazioni DEVONO transitare all'identificatore conforme EUDI urn:eudi:pid:it:1 specificato sopra.
In base a EU_2024/2977 e alla Sezione 4 dell'ARF PID Rulebook v1.3 [EIDAS-ARF], il PID in formato SD-JWT VC include i seguenti Attributi Utente:
Claim |
Descrizione |
Riferimento |
|---|---|---|
given_name |
OBBLIGATORIO. Stringa. Nome attuale. |
Sezione 5.1 di OIDC e Regolamento di esecuzione della Commissione EU_2024/2977 |
family_name |
OBBLIGATORIO. Stringa. Cognome attuale. |
Sezione 5.1 di OIDC e Regolamento di esecuzione della Commissione EU_2024/2977 |
birthdate |
OBBLIGATORIO. Stringa. Data di Nascita. DEVE essere impostata secondo ISO8601-1 (formato YYYY-MM-DD). |
Regolamento di esecuzione della Commissione EU_2024/2977 |
place_of_birth |
OBBLIGATORIO. Oggetto JSON. Luogo di Nascita. Almeno uno tra country, region, locality DEVE essere presente. |
Regolamento di esecuzione della Commissione EU_2024/2977 |
nationalities |
OBBLIGATORIO. Array di stringhe. Uno o più codici paese alpha-2 come specificato in ISO 3166-1. |
Regolamento di esecuzione della Commissione EU_2024/2977 |
personal_administrative_number |
OBBLIGATORIO se |
Regolamento di esecuzione della Commissione EU_2024/2977 |
tax_id_code |
OBBLIGATORIO se |
Estensione domestica |
Tutti gli attributi Utente elencati sopra DEVONO essere divulgabili selettivamente. Oltre agli attributi di metadati obbligatori definiti nella Tabella Parametri di header JOSE SD-JWT e nella Tabella Parametri SD-JWT, i seguenti attributi di metadati sono OBBLIGATORI per un PID:
date_of_expiry
sub (estensione domestica)
iat
cnf
status
verification (estensione domestica)
11.2.1.1. Esempi Non Normativi di PID¶
Di seguito, l'esempio non normativo del payload di un PID rappresentato in formato JSON.
{
"iss": "https://pidprovider.example.org",
"sub": "NzbLsXh8uDCcd7noWXFZAfHkxZsRGC9Xs",
"iat": 1683000000,
"exp": 1883000000,
"issuing_authority": "PID Provider Organization",
"issuing_country": "IT",
"date_of_expiry": "2033-03-19",
"status": {
"status_list": {
"idx": 1234,
"uri": "https://pidprovider.example.org/status"
}
},
"vct": "urn:eudi:pid:it:1",
"vct#integrity": "55f5fe57f1e491d49f33672784528532d9d",
"verification": {
"trust_framework": "it_cie",
"assurance_level": "https://trust-anchor.example.it/loa/high"
},
"given_name": "Mario",
"family_name": "Rossi",
"birthdate": "1980-01-10",
"tax_id_code": "TINIT-XXXXXXXXXXXXXXXX",
"place_of_birth": {
"locality": "Roma"
},
"nationalities": [
"IT"
]
}
La versione SD-JWT corrispondente per il PID è data da
{
"alg": "ES256",
"typ": "dc+sd-jwt",
"kid": "dB67gL7ck3TFiIAf7N6_7SHvqk0MDYMEQcoGGlkUAAw",
"x5c": [
"<Issuer X.509 Certificate>"
]
}
{
"_sd": [
"GHYjuGUthjtB4q4Oz_ZSGPmCokLOpv2kpFNzz1LfFUY",
"Jkbj8aLr-z2_c-HVxCbiw6YXFNHiyLSv1xGjN8lRogI",
"MWJufQz_DFWc9cR4yxq8XqmTZfglkg2D2Sxa3UFN4Qk",
"_C7hoKFt0kV190v2GXIwLUIiDbc_7LcyofQmgDfute8",
"tI5s2A_Ez6oZv6plZzUPjYAL-SJGiAUFyRbhzLsluGU",
"uIapUlDTKsB5wN7BF6xuBNTtl74gl5iCu_aQ5nj3YL8"
],
"exp": 1883000000,
"iss": "https://pidprovider.example.org",
"sub": "NzbLsXh8uDCcd7noWXFZAfHkxZsRGC9Xs",
"iat": 1683000000,
"issuing_authority": "PID Provider Organization",
"issuing_country": "IT",
"date_of_expiry": "2033-03-19",
"status": {
"status_list": {
"idx": 1234,
"uri": "https://pidprovider.example.org/status"
}
},
"vct": "urn:eudi:pid:it:1",
"vct#integrity": "55f5fe57f1e491d49f33672784528532d9d",
"verification": {
"trust_framework": "it_cie",
"assurance_level": "https://trust-anchor.example.it/loa/high"
},
"_sd_alg": "sha-256",
"cnf": {
"jwk": {
"kty": "EC",
"crv": "P-256",
"x": "TCAER19Zvu3OHF4j4W4vfSVoHIP1ILilDls7vCeGemc",
"y": "ZxjiWWbZMQGHVWKVQ4hbSIirsVfuecCE6t4jT9F2HZQ"
}
}
}
L'elenco delle disclosure è presentato di seguito.
Claim given_name:
Hash SHA-256:
Jkbj8aLr-z2_c-HVxCbiw6YXFNHiyLSv1xGjN8lRogIDisclosure:
WyJrZ2h0ZTVNRE5IYlFmZEpIcDg4cENBIiwgImdpdmVuX25hbWUiLCAiTWFyaW8iXQContenuto:
["kghte5MDNHbQfdJHp88pCA", "given_name", "Mario"]
Claim family_name:
Hash SHA-256:
MWJufQz_DFWc9cR4yxq8XqmTZfglkg2D2Sxa3UFN4QkDisclosure:
WyJoWDFURXpfejg3N19YQXRyM0NPYVdnIiwgImZhbWlseV9uYW1lIiwgIlJvc3NpIl0Contenuto:
["hX1TEz_z877_XAtr3COaWg", "family_name", "Rossi"]
Claim birthdate:
Hash SHA-256:
uIapUlDTKsB5wN7BF6xuBNTtl74gl5iCu_aQ5nj3YL8Disclosure:
WyJZV3RJMDZ4RGRDeXZUYWxjSW5URTNBIiwgImJpcnRoZGF0ZSIsICIxOTgwLTAxLTEwIl0Contenuto:
["YWtI06xDdCyvTalcInTE3A", "birthdate", "1980-01-10"]
Claim tax_id_code:
Hash SHA-256:
_C7hoKFt0kV190v2GXIwLUIiDbc_7LcyofQmgDfute8Disclosure:
WyItejM0Y0oxZ0M1VUJQQ0l4OE9oTmlRIiwgInRheF9pZF9jb2RlIiwgIlRJTklULVhYWFhYWFhYWFhYWFhYWFgiXQContenuto:
["-z34cJ1gC5UBPCIx8OhNiQ", "tax_id_code","TINIT-XXXXXXXXXXXXXXXX"]
Claim place_of_birth:
Hash SHA-256:
tI5s2A_Ez6oZv6plZzUPjYAL-SJGiAUFyRbhzLsluGUDisclosure:
WyJYY1hsUFZDcWpITnZlQkNubFZQWWdBIiwgInBsYWNlX29mX2JpcnRoIiwgeyJsb2NhbGl0eSI6ICJSb21hIn1dContenuto:
["XcXlPVCqjHNveBCnlVPYgA", "place_of_birth", {"locality":"Roma"}]
Claim nationalities:
Hash SHA-256:
GHYjuGUthjtB4q4Oz_ZSGPmCokLOpv2kpFNzz1LfFUYDisclosure:
WyJLTmM1LUdrOUNRaF9UZEdicUJLSTdBIiwgIm5hdGlvbmFsaXRpZXMiLCBbIklUIl1dContenuto:
["KNc5-Gk9CQh_TdGbqBKI7A", "nationalities", ["IT"]]
Il formato combinato per l'emissione del PID è dato da:
eyJhbGciOiAiRVMyNTYiLCAidHlwIjogImRjK3NkLWp3dCIsICJraWQiOiAiZEI2N2dM
N2NrM1RGaUlBZjdONl83U0h2cWswTURZTUVRY29HR2xrVUFBdyIsICJ4NWMiOiBbIjxJ
c3N1ZXIgWC41MDkgQ2VydGlmaWNhdGU-Il19.eyJfc2QiOlsiR0hZanVHVXRoanRCNHE
0T3pfWlNHUG1Db2tMT3B2MmtwRk56ejFMZkZVWSIsIkprYmo4YUxyLXoyX2MtSFZ4Q2J
pdzZZWEZOSGl5TFN2MXhHak44bFJvZ0kiLCJNV0p1ZlF6X0RGV2M5Y1I0eXhxOFhxbVR
aZmdsa2cyRDJTeGEzVUZONFFrIiwiX0M3aG9LRnQwa1YxOTB2MkdYSXdMVUlpRGJjXzd
MY3lvZlFtZ0RmdXRlOCIsInRJNXMyQV9FejZvWnY2cGxaelVQallBTC1TSkdpQVVGeVJ
iaHpMc2x1R1UiLCJ1SWFwVWxEVEtzQjV3TjdCRjZ4dUJOVHRsNzRnbDVpQ3VfYVE1bmo
zWUw4Il0sImV4cCI6MTg4MzAwMDAwMCwiaXNzIjoiaHR0cHM6Ly9waWRwcm92aWRlci5
leGFtcGxlLm9yZyIsInN1YiI6Ik56YkxzWGg4dURDY2Q3bm9XWEZaQWZIa3hac1JHQzl
YcyIsImlhdCI6MTY4MzAwMDAwMCwiaXNzdWluZ19hdXRob3JpdHkiOiJQSUQgUHJvdml
kZXIgT3JnYW5pemF0aW9uIiwiaXNzdWluZ19jb3VudHJ5IjoiSVQiLCJkYXRlX29mX2V
4cGlyeSI6IjIwMzMtMDMtMTkiLCJzdGF0dXMiOnsic3RhdHVzX2xpc3QiOnsiaWR4Ijo
xMjM0LCJ1cmkiOiJodHRwczovL3BpZHByb3ZpZGVyLmV4YW1wbGUub3JnL3N0YXR1cyJ
9fSwidmN0IjoidXJuOmV1ZGk6cGlkOml0OjEiLCJ2Y3QjaW50ZWdyaXR5IjoiNTVmNWZ
lNTdmMWU0OTFkNDlmMzM2NzI3ODQ1Mjg1MzJkOWQiLCJ2ZXJpZmljYXRpb24iOnsidHJ
1c3RfZnJhbWV3b3JrIjoiaXRfY2llIiwiYXNzdXJhbmNlX2xldmVsIjoiaHR0cHM6Ly9
0cnVzdC1hbmNob3IuZXhhbXBsZS5pdC9sb2EvaGlnaCJ9LCJfc2RfYWxnIjoic2hhLTI
1NiIsImNuZiI6eyJqd2siOnsia3R5IjoiRUMiLCJjcnYiOiJQLTI1NiIsIngiOiJUQ0F
FUjE5WnZ1M09IRjRqNFc0dmZTVm9ISVAxSUxpbERsczd2Q2VHZW1jIiwieSI6Ilp4aml
XV2JaTVFHSFZXS1ZRNGhiU0lpcnNWZnVlY0NFNnQ0alQ5RjJIWlEifX19.v1sAwJ6Rft
l_Mt0qn2nlSghgCk1dDAx4ll4Upe01o_UAij5W9v9oiPhop5vCq4MKTmDGYoip7vbyPz
uxcvT67w~WyJrZ2h0ZTVNRE5IYlFmZEpIcDg4cENBIiwgImdpdmVuX25hbWUiLCAiTWF
yaW8iXQ~WyJoWDFURXpfejg3N19YQXRyM0NPYVdnIiwgImZhbWlseV9uYW1lIiwgIlJv
c3NpIl0~WyJZV3RJMDZ4RGRDeXZUYWxjSW5URTNBIiwgImJpcnRoZGF0ZSIsICIxOTgw
LTAxLTEwIl0~WyItejM0Y0oxZ0M1VUJQQ0l4OE9oTmlRIiwgInRheF9pZF9jb2RlIiwg
IlRJTklULVhYWFhYWFhYWFhYWFhYWFgiXQ~WyJYY1hsUFZDcWpITnZlQkNubFZQWWdBI
iwgInBsYWNlX29mX2JpcnRoIiwgeyJsb2NhbGl0eSI6ICJSb21hIn1d~WyJLTmM1LUdr
OUNRaF9UZEdicUJLSTdBIiwgIm5hdGlvbmFsaXRpZXMiLCBbIklUIl1d~
11.2.2. Modello Dati PID in formato mdoc-CBOR¶
Il PID in formato mdoc-CBOR DEVE utilizzare il docType eu.europa.ec.eudi.pid.1 in conformità al requisito ARF PID_04.
Gli attributi PID DEVONO essere codificati come specificato nella Sezione 3 dell'ARF PID Rulebook v1.3 [EIDAS-ARF] e organizzati nei seguenti namespace:
Attributi PID standard ARF: namespace
eu.europa.ec.eudi.pid.1Estensioni domestiche italiane: namespace
eu.europa.ec.eudi.pid.it.1
In base a EU_2024/2977 e alla Sezione 3 dell'ARF PID Rulebook v1.3 [EIDAS-ARF], il PID in formato mdoc-CBOR include i seguenti Attributi Utente:
elementIdentifier |
Descrizione |
Namespace |
|---|---|---|
given_name |
OBBLIGATORIO. (tstr). Nome attuale. |
|
family_name |
OBBLIGATORIO. (tstr). Cognome attuale. |
|
birth_date |
OBBLIGATORIO. (full-date). Data di Nascita. DEVE essere codificata come stringa full-date secondo RFC 8949. |
|
place_of_birth |
OBBLIGATORIO. (map). Luogo di Nascita. Almeno uno tra |
|
nationality |
OBBLIGATORIO. (array di tstr). Uno o più codici paese alpha-2 come specificato in ISO 3166-1. Codificato come tipo CDDL |
|
personal_administrative_number |
OBBLIGATORIO se |
|
tax_id_code |
OBBLIGATORIO se |
|
Oltre agli attributi di metadati obbligatori definiti nella Tabella MobileSecurityObject e nella Tabella Attributi Metadata mdoc-CBOR, i seguenti attributi di metadati sono OBBLIGATORI per un PID:
Attributo |
Posizione |
|---|---|
expiry_date |
namespace |
sub |
namespace |
validityInfo.signed |
MobileSecurityObject |
verification |
namespace |
status |
MobileSecurityObject (come definito nella Sezione 6.3 di TOKEN-STATUS-LIST) |
Nota
Differenze chiave rispetto alla codifica SD-JWT:
L'ARF PID Rulebook v1.3 utilizza nomi di claim diversi tra i formati SD-JWT e mdoc-CBOR:
mdoc usa
birth_date(nonbirthdatecome in SD-JWT)mdoc usa
expiry_date(nondate_of_expirycome in SD-JWT)mdoc usa
nationality(nonnationalitiescome in SD-JWT). Nota: entrambi i formati codificano il valore come array di codici paese.
Vedere la Sezione 3.1.1 (codifica mdoc) e la Sezione 4.1.1 (codifica SD-JWT) dell'ARF PID Rulebook v1.3 per la mappatura completa.
11.2.2.1. Esempio non normativo del PID in mdoc-CBOR¶
Un esempio non normativo di un PID in formato mdoc-CBOR (notazione diagnostica) è mostrato di seguito:
{
"nameSpaces": {
"eu.europa.ec.eudi.pid.1": [
24(<<
{
"digestID": 1,
"random": h'E0B70BCEFBD43686F345C9ED429343AA',
"elementIdentifier": "expiry_date",
"elementValue": 1004("2024-02-22")
}
>>),
24(<<
{
"digestID": 2,
"random": h'960CB15A2EA9B68E5233CE902807AA95',
"elementIdentifier": "issuing_country",
"elementValue": "IT"
}
>>),
24(<<
{
"digestID": 3,
"random": h'9D3774BD5994CCFED248674B32A4F76A',
"elementIdentifier": "issuing_authority",
"elementValue": "Ministero dell'Interno"
}
>>),
24(<<
{
"digestID": 4,
"random": h'EB12193DC66C6174530CDC29B274381F',
"elementIdentifier": "given_name",
"elementValue": "Mario"
}
>>),
24(<<
{
"digestID": 5,
"random": h'DB143143538F3C8D41DC024F9CB25C9D',
"elementIdentifier": "family_name",
"elementValue": "Rossi"
}
>>),
24(<<
{
"digestID": 6,
"random": h'6059FF1CE27B4997B4ADE1DE7B01DC60',
"elementIdentifier": "birth_date",
"elementValue": 1004("1956-01-12")% the tag 1004 defines the value
is a full date
}
>>),
24(<<
{
"digestID": 7,
"random": h'FX8VVN1YN6NBH3CKYPJTNPJIVJ5KDMFA',
"elementIdentifier": "place_of_birth",
"elementValue": {"locality": "Roma"}
}
>>),
24(<<
{
"digestID": 8,
"random": h'RGLXZ5CHND8Y2UUMHXXMJWPCHNH9HVIX',
"elementIdentifier": "nationality",
"elementValue": ["IT"],
}
>>)
],
"eu.europa.ec.eudi.pid.it.1": [
24(<<
{
"digestID": 9,
"random": h'44DD0606C5F5FDD206H8C84H3F67F5HEEH',
"elementIdentifier": "sub",
"elementValue": "550e8400-e29b-41d4-a716-446655440000"
}
>>),
24(<<
{
"digestID": 10,
"random": h'22bb8384b3e3ebb084f6a62f1d45d3fccf',
"elementIdentifier": "tax_id_code",
"elementValue": "TINIT-RSSMRA56A12H501U"
}
>>),
24(<<
{
"digestID": 12,
"random": h'33cc9495c4f4fcc195g7b73g2e56e4gddg',
"elementIdentifier": "verification",
"elementValue": {
"trust_framework": "it_cie",
"assurance_level": "https://trust-anchor.example.it/loa/high",
}
}
>>)
]
},
"issuerAuth": [
<< {1: -7} >>, % protected header with the value alg:ES256
{
33: h'30820215308201BCA003020102021404AD30C…'% 33->X5chain:COSE X_509
},
<<
24(<<
{
"docType": "eu.europa.ec.eudi.pid.1",
"version": "1.0",
"validityInfo": {
"signed": 0("2023-02-22T06:23:56Z"),
"validFrom": 0("2023-02-22T06:23:56Z"),
"validUntil": 0("2024-02-22T00:00:00Z")
},
"valueDigests": {
"eu.europa.ec.eudi.pid.1": {
1: h'0F1571A97FFB799CC8FCDF2BA4FC2909929…',
2: h'E2382149255AE8E955AF9B8984395…',
3: h'BBC77E6CCA981A3AD0C3E544EDF86…',
4: h'AA5D5C57B6E7D88FC6F98895E4F67…',
5: h'BB6E6C68D1B4B4EC5A2AE9206F5t4…',
6: h'F8A5966E6DAC9970E0334D8F75E25…',
7: h'1F1A0F7CCDD79b29EB4B22F96F54F…',
8: h'1A0F7EEDB46B37AS4N22R96D83F3F…'
},
"eu.europa.ec.eudi.pid.it.1": {
9: h'C8FF5E58G89FCE97G45533CE3E4B…',
10: h'F9EE4D36F67DBD75E23311AC1C29…',
12: h'A2BC5E47G78ECD86F34422BD2D3A…'
}
},
"deviceKeyInfo": {
"deviceKey": {
1: 2, % kty:EC2 (Eliptic curves with x and y coordinate pairs)
-1: 1, % crv:p256
-2: h'B820963964E53AF064686DD9218303494A…', % x-coordiantes
-3: h'0A6DA0AF437E2943F1836F31C678D89298E9…'% y-ccordiantes
}
},
"status": {
"status_list": {
"idx": 0,
"uri": "https://issuer.example.org/statuslists/1"
}
},
"digestAlgorithm": "SHA-256"
}
>>)
>>,
h'1AD0D6A7313EFDC38FCD765852FA2BD43DEBF48BF5A580D'
]
}