DCQL spjegat: kif verifikatur jitlob minn kartiera eżattament dak li jeħtieġ
Id-Digital Credentials Query Language, DCQL, hu l-format tal-mistoqsijiet JSON li OpenID4VP juża f'talba għal preżentazzjoni. Jippermetti lil parti li tistrieħ tiddeskrivi liema kredenzjali, u liema dejta fihom, trid tara, b'mod li kull kartiera konformi tista' tifhimha mingħajr integrazzjoni apposta.
Il-problema li jsolvi DCQL
Kartiera tan-negozju tista' jkollha kredenzjali f'diversi formati: reġistrazzjoni tal-kumpanija bħala SD-JWT VC, kwalifika professjonali kodifikata bħala mdoc, kredenzjali verifikabbli W3C minn pilota preċedenti. Verifikatur li jrid jikkonferma biss numru tar-reġistrazzjoni u isem legali m'għandux mod portabbli biex jitlob eżattament dan fil-formati kollha. Irid jew jaċċetta l-kredenzjali kollha, jew jikkodifika bl-idejn talba separata għal kull format u għal kull fornitur tal-kartiera.
DCQL jagħlaq dan in-nuqqas min-naħa tat-talba. Hu oġġett JSON wieħed, inkorporat fit-talba ta' awtorizzazzjoni OpenID4VP, li jsemmi mistoqsija waħda jew aktar għal kredenzjali, kull waħda marbuta ma' format u ma' sett ta' mogħdijiet tad-dejta. Il-kartiera tevalwa l-mistoqsija mal-kredenzjali maħżuna, tidentifika liema jaqblu, u mbagħad biss titlob lid-detentur japprova r-rilaxx ta' dik id-dejta speċifika. Il-verifikatur jirċievi struttura prevedibbli, tkun liema tkun il-kartiera li uża d-detentur.
1. Verifikatur
Jibgħat talba OpenID4VP b'dcql_query
2. Kartiera
Tqabbel il-mistoqsija mal-kredenzjali maħżuna
3. Detentur
Japprova r-rilaxx tad-dejta mitluba biss
4. Verifikatur
Jirċievi preżentazzjoni waħda għal kull id tal-mistoqsija
L-istruttura ta' mistoqsija DCQL
Mistoqsija DCQL hi oġġett JSON wieħed b'array credentials u, jekk meħtieġ, array credential_sets. Kull element f'credentials hu mistoqsija għal kredenzjali. Il-fields immarkati M huma obbligatorji f'dik il-mistoqsija.
dcql_query
credentials[ ]
Mistoqsija waħda għal kull kredenzjali li għandek bżonn
id + format
Liema kredenzjali, f'liema format
meta
Filtru tat-tip, bħal vct_values
claims[ ]
Il-mogħdijiet tad-dejta li għandha tiġi żvelata
claim_sets[ ]
Kombinazzjonijiet aċċettabbli tad-dejta
credential_sets[ ]
Mhux obbligatorju: liema kombinazzjonijiet ta' mistoqsijiet jissodisfaw it-talba
| Field | Tip | Obbligatorju |
|---|---|---|
| id | string | M |
| format | enum: dc+sd-jwt | mso_mdoc | jwt_vc_json | ldp_vc | M |
| meta | oġġett, l-istruttura tiddependi mill-format | |
| claims | array ta' mistoqsijiet għad-dejta | |
| claim_sets | array ta' arrays ta' id tad-dejta | |
| trusted_authorities | array ta' oġġetti b'tip u valuri |
Kull element f'claims hu wkoll oġġett: id użat biex jirreferi għalih minn claim_sets, u path, array li jindika fejn tinsab id-dejta fil-kredenzjali (pereżempju ["legal_name"] għal element SD-JWT fl-ogħla livell, jew ["org", "registration_number"] għal wieħed ingassat), u jekk meħtieġ values, lista ta' valuri li d-dejta trid taqbel magħhom.
Eżempju prattiku: verifika tar-reġistrazzjoni ta' kumpanija
Reġistrazzjoni tal-kumpanija
dc+sd-jwtIl-verifikatur jgħid: dan hu li rrid nirċievi
- ✓ Numru tar-reġistrazzjonireg_nopath: ["registration_number"]
- ✓ Isem legalilegal_namepath: ["legal_name"]
- ✓ Pajjiż tar-reġistrazzjonireg_countrypath: ["registration_country"]
{
"credentials": [
{
"id": "company_registration",
"format": "dc+sd-jwt",
"meta": {
"vct_values": ["urn:eudi:business:company-registration:1"]
},
"claims": [
{ "id": "reg_no", "path": ["registration_number"] },
{ "id": "legal_name", "path": ["legal_name"] },
{ "id": "reg_country", "path": ["registration_country"] }
]
}
]
}Eżempju ta' tweġiba mill-kartiera
Il-kartiera twieġeb b'oġġett vp_token li ċ-ċwievet tiegħu huma l-id tal-mistoqsijiet. Kull valur hu array ta' preżentazzjonijiet. Għal dc+sd-jwt, preżentazzjoni tikkonsisti fil-JWT iffirmat mill-emittent, disclosure waħda għal kull element rilaxxat, u key binding JWT li jorbotha man-nonce u mal-klijent ta' din it-talba.
X'tibgħat il-kartiera
{
"vp_token": {
"company_registration": [
"<issuer-signed JWT>~<disclosure: registration_number>~<disclosure: legal_name>~<disclosure: registration_country>~<key binding JWT>"
]
}
}Id-dejta li jara l-verifikatur wara l-validazzjoni
{
"vct": "urn:eudi:business:company-registration:1",
"registration_number": "12345678",
"legal_name": "Example Logistics B.V.",
"registration_country": "NL"
}Talba għal alternattiva: claim_sets
claim_sets telenka gruppi ta' id tad-dejta skont l-ordni tal-preferenza. Il-kartiera tirritorna l-ewwel grupp li tista' tissodisfa għalkollox minn dak li d-detentur għandu fil-fatt, minflok ma l-verifikatur ikollu jibgħat żewġ talbiet separati għal każ preċiż u għal każ alternattiv.
Eżempju prattiku: numru tar-reġistrazzjoni, jew bħala alternattiva l-isem legali biss
1. Preferut
Jintbagħat meta l-kredenzjali jkollha ż-żewġ elementi
2. Alternattiva
Jintbagħat biss meta l-ewwel sett ma jistax jiġi sodisfatt
{
"credentials": [
{
"id": "company_registration",
"format": "dc+sd-jwt",
"meta": { "vct_values": ["urn:eudi:business:company-registration:1"] },
"claims": [
{ "id": "reg_no", "path": ["registration_number"] },
{ "id": "legal_name", "path": ["legal_name"] }
],
"claim_sets": [
["reg_no", "legal_name"],
["legal_name"]
]
}
]
}Hawn il-verifikatur jippreferi n-numru tar-reġistrazzjoni flimkien mal-isem legali, iżda jaċċetta l-isem legali waħdu jekk il-kredenzjali tad-detentur ma jkollhiex element tan-numru tar-reġistrazzjoni.
Eżempju ta' tweġiba: intużat l-alternattiva
X'tibgħat il-kartiera
{
"vp_token": {
"company_registration": [
"<issuer-signed JWT>~<disclosure: legal_name>~<key binding JWT>"
]
}
}Id-dejta li jara l-verifikatur wara l-validazzjoni
{
"vct": "urn:eudi:business:company-registration:1",
"legal_name": "Example Logistics B.V."
}Il-kredenzjali tad-detentur m'għandhiex numru tar-reġistrazzjoni, għalhekk il-kartiera ssodisfat it-tieni sett u rrilaxxat disclosure waħda. It-tweġiba ma tgħidx liema sett intuża: il-verifikatur jifhem dan mid-dejta li jirċievi.
Kombinazzjoni ta' kredenzjali: credential_sets
credential_sets jaħdem livell wieħed ogħla minn claim_sets. Kull element jelenka options, fejn kull għażla hi grupp ta' id ta' mistoqsijiet għal kredenzjali. Il-kartiera trid tissodisfa għażla waħda minn kull element meħtieġ, u b'hekk verifikatur ikollu loġika AND u OR bejn il-kredenzjali f'talba waħda.
Meħtieġ
Reġistrazzjoni tal-kumpanija
Wieħed minn
Reġistrazzjoni tal-VAT
Wieħed minn
Attestazzjoni tal-kont bankarju
"credential_sets": [
{ "options": [["company_registration"]] },
{ "options": [["vat_registration"], ["bank_account"]] }
]Eżempju ta' tweġiba: reġistrazzjoni u kont bankarju
X'tibgħat il-kartiera
{
"vp_token": {
"company_registration": [
"<issuer-signed JWT>~<disclosures>~<key binding JWT>"
],
"bank_account": [
"<issuer-signed JWT>~<disclosures>~<key binding JWT>"
]
}
}Id-dejta li jara l-verifikatur wara l-validazzjoni
{
"company_registration": {
"vct": "urn:eudi:business:company-registration:1",
"registration_number": "12345678",
"legal_name": "Example Logistics B.V."
},
"bank_account": {
"vct": "urn:eudi:business:bank-account:1",
"iban": "NL91ABNA0417164300",
"account_holder": "Example Logistics B.V."
}
}Id-detentur m'għandux kredenzjali tar-reġistrazzjoni tal-VAT, għalhekk il-kartiera għażlet it-tieni għażla tat-tieni sett. L-id tal-mistoqsijiet li ma ntużawx, hawn vat_registration, sempliċement ma jidhrux f'vp_token.
Emittenti ta' fiduċja biss: trusted_authorities
trusted_authorities tillimita mistoqsija għal kredenzjali li l-emittent tagħhom hu appoġġat minn awtorità li l-verifikatur jafda. Kull element għandu tip u lista ta' valuri: aki għal identifikatur taċ-ċavetta tal-awtorità, etsi_tl għal lista ta' fiduċja ETSI, jew openid_federation għal trust anchor ta' federazzjoni. Il-kartiera toffri biss kredenzjali li jaqblu.
Eżempju prattiku: reġistrazzjoni minn emittent fil-lista
Il-verifikatur jgħid: biss minn emittenti fuq din il-lista ta' fiduċja
https://ec.europa.eu/tools/lotl/eu-lotl.xml
Kredenzjali tar-reġistrazzjoni minn emittent fil-lista
l-emittent jinsab fil-lista ta' fiduċja
✓ Taqbel mal-mistoqsija
Kredenzjali tar-reġistrazzjoni minn emittent barra l-lista
l-emittent mhux fil-lista ta' fiduċja
✗ Ma taqbilx, ma tiġix offruta lid-detentur
{
"credentials": [
{
"id": "company_registration",
"format": "dc+sd-jwt",
"meta": { "vct_values": ["urn:eudi:business:company-registration:1"] },
"trusted_authorities": [
{
"type": "etsi_tl",
"values": ["https://ec.europa.eu/tools/lotl/eu-lotl.xml"]
}
],
"claims": [
{ "id": "reg_no", "path": ["registration_number"] },
{ "id": "legal_name", "path": ["legal_name"] }
]
}
]
}Eżempju ta' tweġiba: il-kredenzjali tal-emittent fil-lista biss
X'tibgħat il-kartiera
{
"vp_token": {
"company_registration": [
"<issuer-signed JWT>~<disclosure: registration_number>~<disclosure: legal_name>~<key binding JWT>"
]
}
}Id-dejta li jara l-verifikatur wara l-validazzjoni
{
"vct": "urn:eudi:business:company-registration:1",
"registration_number": "12345678",
"legal_name": "Example Logistics B.V."
}Id-detentur kellu wkoll kredenzjali tar-reġistrazzjoni minn emittent barra l-lista, iżda l-kartiera ma offrietx. trusted_authorities hu filtru għall-kartiera, mhux garanzija: il-verifikatur xorta jivverifika hu stess l-emittent mal-lista ta' fiduċja meta jivvalida l-preżentazzjoni.
Qbil ma' valur: claims.values
Mistoqsija għad-dejta tista' jkun fiha values, lista ta' strings, numri interi jew booleans. Il-kartiera tirritorna d-dejta biss meta t-tip u l-valur tagħha jaqblu eżattament ma' wieħed minnhom, u b'hekk verifikatur jista' jivverifika kundizzjoni mingħajr ma jitlob xejn ieħor qabel.
Eżempju prattiku: kumpaniji rreġistrati fl-Olanda jew fil-Belġju biss
Il-verifikatur jgħid: biss kumpanija rreġistrata f'wieħed minn dawn il-pajjiżi
Kumpanija Olandiża
registration_country: "NL"
✓ Taqbel mal-mistoqsija
Kumpanija Ġermaniża
registration_country: "DE"
✗ Ma taqbilx, ma tiġix offruta lid-detentur
{
"credentials": [
{
"id": "company_registration",
"format": "dc+sd-jwt",
"meta": { "vct_values": ["urn:eudi:business:company-registration:1"] },
"claims": [
{ "id": "legal_name", "path": ["legal_name"] },
{
"id": "reg_country",
"path": ["registration_country"],
"values": ["NL", "BE"]
}
]
}
]
}Eżempju ta' tweġiba: kumpanija Olandiża
X'tibgħat il-kartiera
{
"vp_token": {
"company_registration": [
"<issuer-signed JWT>~<disclosure: legal_name>~<disclosure: registration_country>~<key binding JWT>"
]
}
}Id-dejta li jara l-verifikatur wara l-validazzjoni
{
"vct": "urn:eudi:business:company-registration:1",
"legal_name": "Example Logistics B.V.",
"registration_country": "NL"
}Il-kredenzjali ta' kumpanija Ġermaniża għandha registration_country "DE", għalhekk ma tissodisfax il-mistoqsija u l-kartiera m'għandha xejn x'tirritorna għaliha. Il-verifikatur xorta għandu jivverifika l-valur fid-dejta vvalidata minflok ma jistrieħ fuq il-filtrazzjoni tal-kartiera.
Restrizzjonijiet speċifiċi għall-format f'meta
SD-JWT VC: vct_values
Għal dc+sd-jwt, meta.vct_values telenka l-identifikaturi tat-tipi ta' kredenzjali li l-verifikatur jaċċetta. Mistoqsija taqbel biss ma' kredenzjali maħżuna li l-vct tagħha hu wieħed mill-valuri elenkati, għalhekk verifikatur li jafda biss it-tip ta' kredenzjali tar-reġistrazzjoni ta' emittent wieħed jelenka eżattament dak l-identifikatur.
mso_mdoc: doctype_value u namespace
Għal mso_mdoc, meta.doctype_value jiffissa l-ISO 18013-5 DocType, u kull mogħdija tad-dejta tibda bin-namespace mdoc li fih tinsab id-dejta minflok b'isem sempliċi ta' field, peress li mdoc jiġbor id-dejta skont in-namespace minflok f'oġġett ċatt.
Fejn wasal DCQL illum
- DCQL hu definit fl-ispeċifikazzjoni OpenID4VP innifisha, mhux f'dokument separat, u ilu parti mill-abbozz minn meta l-mekkaniżmu ġie introdott biex jissostitwixxi dipendenza preċedenti fuq DIF Presentation Exchange għat-talbiet OpenID4VP.
- L-EUDI Wallet Architecture and Reference Framework tispeċifika OpenID4VP bħala l-protokoll tal-preżentazzjoni u, flimkien miegħu, DCQL bħala l-mekkaniżmu tal-mistoqsijiet li l-partijiet li jistrieħu fuqu u l-kartieri fl-ekosistema huma mistennija jappoġġaw.
- L-implimentazzjonijiet ta' referenza tal-kartieri u tal-verifikaturi fil-programm EUDI Wallet Reference Implementation ikkonverġew fuq DCQL, għalhekk integrazzjonijiet ġodda ta' kartieri tan-negozju mibnija fuq OpenID4VP illum għandhom jassumu DCQL, u mhux Presentation Exchange, bħala l-format tal-mistoqsijiet għat-talbiet ta' preżentazzjoni.
Termini relatati
Mistoqsijiet frekwenti
X'inhi d-differenza bejn DCQL u DIF Presentation Exchange?
It-tnejn jiddeskrivu x'jixtieq verifikatur minn kartiera, iżda DCQL hu mfassal għal OpenID4VP u definit direttament f'dik l-ispeċifikazzjoni, filwaqt li Presentation Exchange hi speċifikazzjoni separata tad-DIF li tkopri wkoll protokolli oħra. DCQL hu apposta iżgħar: m'għandux gruppi ta' input descriptors jew submission requirements, u jesprimi r-restrizzjonijiet speċifiċi għall-format, bħal mdoc doctype jew tip ta' SD-JWT VC, direttament f'oġġett tal-mistoqsija minflok permezz ta' filtru ġeneriku JSON Schema. L-ekosistema tal-EUDI Wallet standardizzat fuq DCQL għall-preżentazzjonijiet OpenID4VP.
Mistoqsija DCQL waħda tista' titlob aktar minn kredenzjali waħda?
Iva. L-array credentials jista' jelenka diversi mistoqsijiet għal kredenzjali, kull waħda bl-id tagħha. Kartiera li jkollha qbil għal kull element tirritorna preżentazzjoni waħda għal kull element. Barra minn hekk, l-oġġett mhux obbligatorju credential_sets jista' jeħtieġ kombinazzjonijiet partikolari, pereżempju jaċċetta jew kredenzjali tar-reġistrazzjoni tal-kumpanija waħedha jew kredenzjali tar-reġistrazzjoni tal-kumpanija flimkien ma' dikjarazzjoni UBO, mingħajr ma jistaqsi lid-detentur darbtejn.
Liema problema jsolvu claim_sets f'mistoqsija waħda għal kredenzjali?
Kredenzjali mhux dejjem ikollha kull element tad-dejta li jixtieq verifikatur. claim_sets telenka gruppi alternattivi ta' id tad-dejta, fejn kull grupp waħdu jissodisfa t-talba, ordnati mill-aktar sal-inqas preferut. Il-kartiera tagħżel l-ewwel grupp li tista' tissodisfa għalkollox mid-dejta li d-detentur għandu fil-fatt. B'hekk verifikatur jista' jitlob numru preċiż tal-identità fejn ikun disponibbli, u jaqa' lura fuq verifika aktar ġenerali, bħal indikazzjoni ta' 'aktar minn 18-il sena', mingħajr ma jibgħat żewġ talbiet separati.
DCQL hu speċifiku għall-EUDI Wallet?
Le. DCQL hu parti mill-ispeċifikazzjoni ewlenija ta' OpenID4VP u kull implimentazzjoni ta' OpenID4VP tista' tużah. L-ekosistema tal-EUDI Wallet hi utent prominenti: l-Architecture and Reference Framework tispeċifika OpenID4VP flimkien ma' DCQL bħala l-mekkaniżmu tal-preżentazzjoni li l-partijiet li jistrieħu fuqu għandhom jappoġġaw. Għalhekk hu importanti b'mod partikolari għal kartieri u verifikaturi mibnija għas-suq Ewropew.
DCQL innifsu jwettaq żvelar selettiv?
Le. DCQL jiddeskrivi biss x'qed jintalab. Jekk il-kartiera tistax tiżvela eżattament dik id-dejta u xejn aktar jiddependi mill-format tal-kredenzjali: kemm SD-JWT VC kif ukoll ISO mdoc jappoġġaw l-iżvelar ta' parti mid-dejta tagħhom, u għalhekk l-array claims ta' DCQL jimxi ma' dak l-appoġġ. DCQL xorta jaħdem ma' format mingħajr żvelar selettiv, iżda d-detentur ikollu jirrilaxxa l-kredenzjali kollha biex jissodisfa anke mistoqsija għal element wieħed.
Sorsi
Din il-paġna hi għal skop ta' informazzjoni u ma tikkostitwixxix parir legali. Għal gwida awtorevoli kkuntattja direttament lill-OpenID Foundation u lill-Kummissjoni Ewropea.