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": "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": "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.eyJfc2QiOiBbIkdIWWp1R1V0aGp0QjR
xNE96X1pTR1BtQ29rTE9wdjJrcEZOenoxTGZGVVkiLCAiSmtiajhhTHItejJfYy1IVnh
DYml3NllYRk5IaXlMU3YxeEdqTjhsUm9nSSIsICJNV0p1ZlF6X0RGV2M5Y1I0eXhxOFh
xbVRaZmdsa2cyRDJTeGEzVUZONFFrIiwgIl9DN2hvS0Z0MGtWMTkwdjJHWEl3TFVJaUR
iY183TGN5b2ZRbWdEZnV0ZTgiLCAidEk1czJBX0V6Nm9adjZwbFp6VVBqWUFMLVNKR2l
BVUZ5UmJoekxzbHVHVSIsICJ1SWFwVWxEVEtzQjV3TjdCRjZ4dUJOVHRsNzRnbDVpQ3V
fYVE1bmozWUw4Il0sICJleHAiOiAxODgzMDAwMDAwLCAiaXNzIjogImh0dHBzOi8vcGl
kcHJvdmlkZXIuZXhhbXBsZS5vcmciLCAic3ViIjogIk56YkxzWGg4dURDY2Q3bm9XWEZ
aQWZIa3hac1JHQzlYcyIsICJpYXQiOiAxNjgzMDAwMDAwLCAiaXNzdWluZ19hdXRob3J
pdHkiOiAiUElEIFByb3ZpZGVyIE9yZ2FuaXphdGlvbiIsICJpc3N1aW5nX2NvdW50cnk
iOiAiSVQiLCAiZGF0ZV9vZl9leHBpcnkiOiAiMjAzMy0wMy0xOSIsICJzdGF0dXMiOiB
7InN0YXR1c19saXN0IjogeyJpZHgiOiAxMjM0LCAidXJpIjogImh0dHBzOi8vcGlkcHJ
vdmlkZXIuZXhhbXBsZS5vcmcvc3RhdHVzIn19LCAidmN0IjogInVybjpldWRpOnBpZDp
pdDoxIiwgInZjdCNpbnRlZ3JpdHkiOiAiNTVmNWZlNTdmMWU0OTFkNDlmMzM2NzI3ODQ
1Mjg1MzJkOWQiLCAidmVyaWZpY2F0aW9uIjogeyJ0cnVzdF9mcmFtZXdvcmsiOiAiaXR
fY2llIiwgImFzc3VyYW5jZV9sZXZlbCI6ICJoaWdoIn0sICJfc2RfYWxnIjogInNoYS0
yNTYiLCAiY25mIjogeyJqd2siOiB7Imt0eSI6ICJFQyIsICJjcnYiOiAiUC0yNTYiLCA
ieCI6ICJUQ0FFUjE5WnZ1M09IRjRqNFc0dmZTVm9ISVAxSUxpbERsczd2Q2VHZW1jIiw
gInkiOiAiWnhqaVdXYlpNUUdIVldLVlE0aGJTSWlyc1ZmdWVjQ0U2dDRqVDlGMkhaUSJ
9fX0.v1sAwJ6Rftl_Mt0qn2nlSghgCk1dDAx4ll4Upe01o_UAij5W9v9oiPhop5vCq4M
KTmDGYoip7vbyPzuxcvT67w~WyJrZ2h0ZTVNRE5IYlFmZEpIcDg4cENBIiwgImdpdmVu
X25hbWUiLCAiTWFyaW8iXQ~WyJoWDFURXpfejg3N19YQXRyM0NPYVdnIiwgImZhbWlse
V9uYW1lIiwgIlJvc3NpIl0~WyJZV3RJMDZ4RGRDeXZUYWxjSW5URTNBIiwgImJpcnRoZ
GF0ZSIsICIxOTgwLTAxLTEwIl0~WyItejM0Y0oxZ0M1VUJQQ0l4OE9oTmlRIiwgInRhe
F9pZF9jb2RlIiwgIlRJTklULVhYWFhYWFhYWFhYWFhYWFgiXQ~WyJYY1hsUFZDcWpITn
ZlQkNubFZQWWdBIiwgInBsYWNlX29mX2JpcnRoIiwgeyJsb2NhbGl0eSI6ICJSb21hIn
1d~WyJLTmM1LUdrOUNRaF9UZEdicUJLSTdBIiwgIm5hdGlvbmFsaXRpZXMiLCBbIklUI
l1d~
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": "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'
]
}