Aqbeż għall-kontenut ewlieni

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

FieldTipObbligatorju
idstringM
formatenum: dc+sd-jwt | mso_mdoc | jwt_vc_json | ldp_vcM
metaoġġett, l-istruttura tiddependi mill-format
claimsarray ta' mistoqsijiet għad-dejta
claim_setsarray ta' arrays ta' id tad-dejta
trusted_authoritiesarray 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-jwt

Il-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

reg_nolegal_name

Jintbagħat meta l-kredenzjali jkollha ż-żewġ elementi

2. Alternattiva

legal_name

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

AND

Wieħed minn

Reġistrazzjoni tal-VAT

OR

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

type: etsi_tl

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

reg_countryvalues:"NL""BE"

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

  1. OpenID for Verifiable Presentations 1.0, it-taqsima Digital Credentials Query Language (DCQL)
  2. EUDI Wallet Architecture and Reference Framework
  3. L-ispeċifikazzjoni DIF Presentation Exchange 2.0.0

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.

Kellimna dwar l-integrazzjoni tal-EUDI Wallet