Matrice di Test per il Verificatore di Credenziali in Remoto

Questa sezione fornisce l’insieme dei casi di test progettati per implementatori tecnici e team di sviluppo responsabili della creazione e distribuzione di soluzioni Credential Verifier per flussi remoti. È inoltre destinata agli enti di valutazione che ispezionano e validano le implementazioni delle soluzioni Credential Verifier per flussi remoti.

Nota

I riferimenti ai piani di test ufficiali OpenID4VP aggiorneranno questa sezione nelle prossime versioni.

ID Caso di Test

Scopo

Descrizione

Risultato Atteso

RPR-01

Flusso stesso dispositivo

Verifica URL di redirect HTTP (302).

Il Relying Party emette un URL corretto utilizzando la base url fornita nei suoi metadati.

RPR-02

Flusso tra dispositivi

Verifica la generazione del QR Code per l’istanza Wallet.

Il Relying Party emette correttamente il QR Code.

RPR-03

Flusso tra dispositivi

Verifica che il QR Code contenga i parametri URL corretti.

Il Relying Party emette il QR-Code contenente un URL che utilizza la base url fornita nei suoi metadati.

RPR-04

Flusso tra dispositivi

Test della scansione del QR Code in condizioni di scarsa illuminazione.

Il QR Code viene scansionato con successo.

RPR-05

Flusso tra dispositivi

Verifica il livello di correzione degli errori del QR Code.

Il QR Code rimane leggibile anche se danneggiato.

RPR-06

Flusso tra dispositivi

Test della scansione del QR Code con dispositivi diversi.

Il QR Code viene scansionato con successo.

RPR-07

Metodo request_uri

Test di request_uri_method come post.

Il Relying Party accetta i metadati dell’istanza Wallet via POST e risponde con un oggetto Request aggiornato.

RPR-08

Metodo request_uri

Test di request_uri_method come get.

Il Relying Party emette l’oggetto Request tramite risposta HTTP GET.

RPR-09

Metodo request_uri

Test dell’assenza di request_uri_method.

Il Relying Party accetta e predefinisce il metodo GET.

RPR-10

Metadati

Verifica che i metadati della Relying Party seguano il prefisso di client_id.

Per openid_federation, i parametri corrispondono ai metadati openid_credential_verifier e sono considerati solo i parametri consentiti. Per x509_hash, i metadati della Relying Party sono trasportati in client_metadata e i dati di autorizzazione sono trasportati in verifier_info.

RPR-11

Consenso Utente

Test dell’idoneità di un Credential Verifier nel richiedere attributi utente.

L’utente può modificare la selezione dei dati sugli attributi opzionali.

RPR-12

Risposta di Autorizzazione

Test dell’invio della Presentation Response.

Il Relying Party riceve e valida la risposta con i valori state e nonce.

RPR-13

Risposta di Autorizzazione

Verifica la cifratura della risposta.

Il Relying Party valuta la risposta cifrata usando la propria chiave pubblica (una delle sue chiavi).

RPR-14

Gestione Errori

Test della gestione di un oggetto Request non valido.

Viene inviata una risposta di errore.

RPR-15

Annullato

Annullato

Annullato

RPR-16

Gestione Errori

Test del recupero da errore nella richiesta di autorizzazione.

Il Relying Party invita l’utente a riprovare o a scansionare un nuovo QR code.

RPR-17

Gestione Errori

Test di un cookie HTTP falso.

Il Relying Party verifica la coerenza della sessione utente accoppiando il cookie http di sessione con state e nonce forniti.

RPR-18

Annullato

Annullato

Annullato

RPR-19

Redirect URI

Test del reindirizzamento all’endpoint del Relying Party.

L’utente viene reindirizzato correttamente, l’endpoint funziona.

RPR-20

Redirect URI

Verifica la gestione di un redirect_uri non valido.

Viene restituita una risposta di errore.

RPR-21

Annullato

Annullato

Annullato

RPR-22

Annullato

Annullato

Annullato

RPR-23

Presentazione Credenziali

Verifica la conformità del formato della risposta.

Il Relying Party supporta tutti i formati di Credenziali inclusi nel parametro vp_formats_supported dei suoi metadati.

RPR-24

Annullato

Annullato

Annullato

RPR-25

Gestione Errori

Verifica la gestione di claim malformati nel payload della presentazione.

Viene inviata una risposta di errore di autorizzazione.

RPR-26

Gestione Errori

Verifica la gestione di claim malformati nelle Credenziali presentate.

Viene inviata una risposta di errore di autorizzazione.

RPR-27

Gestione Errori

Test della gestione di richieste scadute.

Il titolare viene informato della scadenza.

RPR-28

Risposta del Relying Party

Verifica l’inclusione del codice di risposta.

Il codice di risposta è crittograficamente casuale.

RPR-29

Risposta del Relying Party

Test della gestione di codici di risposta non validi.

Viene restituita una risposta di errore.

RPR-30

Endpoint di Stato

Verifica la gestione di accessi non autorizzati.

L’accesso non autorizzato viene negato.

RPR-31

Endpoint di Stato

Test della gestione di ID di sessione non validi.

Viene restituita una risposta di errore.

RPR-32

Redirect URI

Verifica la gestione di sessioni scadute.

Viene restituita una risposta di errore.

RPR-33

Redirect URI

Test della gestione di errori del server.

Viene restituita una risposta di errore.

RPR-34

Flusso stesso e tra dispositivi

Verifica la gestione di condizioni di rete lente.

Il Relying Party fornisce la risposta http entro il limite massimo di 2 secondi.

RPR-35

Annullato

Annullato

Annullato

RPR-36

Risposta di Presentazione

Verifica la gestione di payload di risposta di grandi dimensioni.

La risposta viene valutata entro soglie di sicurezza appropriate.

RPR-37

Risposta di Presentazione

Test della gestione di errori di cifratura della risposta.

Viene restituita una risposta di errore.

RPR-38

Gestione Errori

Verifica la gestione di firme non valide.

Viene inviata una risposta di errore di autorizzazione.

RPR-39

Gestione Errori

Test della gestione di valori nonce non validi.

Viene restituita una risposta di errore.

RPR-40

Risposta del Relying Party

Verifica la gestione di risposte malformate.

Viene restituita una risposta di errore.

RPR-41

Risposta del Relying Party

Test della gestione di parametri di risposta mancanti.

Viene restituita una risposta di errore.

RPR-42

Endpoint di Stato

Verifica la gestione dei timeout di sessione.

Viene restituita una risposta di errore.

RPR-43

Endpoint di Stato

Test della gestione di codici di stato non validi.

Viene restituita una risposta di errore.

RPR-44

Redirect URI

Verifica la gestione di sessioni utente non valide.

Viene restituita una risposta di errore.

RPR-45

Redirect URI

Test della gestione di servizi non disponibili.

Viene restituita una risposta di errore.

RPR-46

Flusso stesso dispositivo

Verifica la gestione delle cancellazioni da parte dell’utente.

L’utente può annullare il processo.

RPR-47

Flusso tra dispositivi

Test della scansione del QR Code con app diverse.

Il QR Code viene scansionato con successo.

RPR-48

Flusso tra dispositivi

Verifica la scansione del QR Code con illuminazione diversa.

Il QR Code viene scansionato con successo.

RPR-49

Metodo request_uri

Test della gestione di content type non supportati.

Viene restituita una risposta di errore.

RPR-50

Annullato

Annullato

Annullato

RPR-51

Annullato

Annullato

Annullato

RPR-52

Risposta di Autorizzazione

Verifica la gestione di errori di decifratura della risposta.

Viene restituita una risposta di errore.

RPR-53

Risposta di Autorizzazione

Test della verifica dell’integrità della risposta.

L’integrità della risposta è verificata.

RPR-54

Risposta del Relying Party

Verifica la gestione di errori di validazione della risposta.

Viene restituita una risposta di errore.

RPR-55

Risposta del Relying Party

Test della gestione di errori di elaborazione della risposta.

Viene restituita una risposta di errore.

RPR-56

Endpoint Risorsa Protetta

Verifica la gestione di accessi di sessione non autorizzati.

L’accesso non autorizzato viene negato.

RPR-57

Redirect URI

Verifica la gestione di parametri di redirect non validi.

Viene restituita una risposta di errore.

RPR-58

Redirect URI

Test della gestione di errori di redirect.

Viene restituita una risposta di errore.

RPR-59

Flusso stesso dispositivo

Verifica la gestione di interruzioni da parte dell’utente.

L’utente può riprendere o annullare il processo.

RPR-60

Metodo request_uri

Test della gestione di metodi HTTP non validi.

Viene restituita una risposta di errore.

RPR-61

Annullato

Annullato

Annullato

RPR-62

Consenso Utente

Test del consenso dell’utente per dati opzionali.

L’utente può acconsentire ai dati opzionali.

RPR-63

Risposta di Autorizzazione

Verifica la gestione di errori di firma della risposta.

Viene restituita una risposta di errore.

RPR-64

Risposta di Autorizzazione

Test della gestione di errori di formato della risposta.

Viene restituita una risposta di errore.

RPR-65

Gestione Errori

Verifica la gestione di firme JWT non valide.

Viene inviata una risposta di errore di autorizzazione.

RPR-66

Gestione Errori

Test della gestione di claim JWT non validi.

Viene restituita una risposta di errore.

RPR-67

Risposta del Relying Party

Verifica la gestione di errori di parsing della risposta.

Viene restituita una risposta di errore.

RPR-68

Risposta del Relying Party

Test della gestione di errori di timeout della risposta.

Viene restituita una risposta di errore.

RPR-69

Endpoint di Stato

Verifica la gestione della scadenza della sessione.

Viene restituita una risposta di errore.

RPR-70

Endpoint di Stato

Test della gestione di errori di rinnovo della sessione.

Viene restituita una risposta di errore.

RPR-71

Redirect URI

Verifica la gestione di errori di loop di redirect.

Viene restituita una risposta di errore.

RPR-72

Redirect URI

Test della gestione di errori di sicurezza nel redirect.

Viene restituita una risposta di errore.

RPR-73

Flusso stesso dispositivo

Verifica la gestione dei timeout utente.

L’utente viene informato del timeout.

RPR-74

Annullato

Annullato

Annullato

RPR-75

Annullato

Annullato

Annullato

RPR-76

Metodo request_uri

Test della gestione di metodi HTTP non supportati.

Viene restituita una risposta di errore.

RPR-77

Generazione QR Code

Verifica che il livello di correzione degli errori del QR Code sia Q (Quartile - fino al 25%).

Il QR Code utilizza il livello di correzione Q richiesto.

RPR-78

Annullato

Annullato

Annullato

RPR-79

Annullato

Annullato

Annullato

RPR-80

Annullato

Annullato

Annullato

RPR-81

Wallet Nonce

Test che il Relying Party controlli wallet_nonce quando presente.

Il Relying Party controlla correttamente wallet_nonce quando presente.

RPR-82

Tipi di Risposta

Verifica che response_types_supported sia impostato a vp_token quando presente.

response_types_supported è correttamente impostato a vp_token.

RPR-83

Redirect URI

Test che il Relying Party fornisca correttamente il parametro redirect_uri all’istanza Wallet.

Il Relying Party fornisce e gestisce correttamente redirect_uri.

RPR-84

Supporto Flussi

Test che il Relying Party supporti i flussi remoti richiesti.

Il Relying Party supporta sia il flusso stesso dispositivo che tra dispositivi.

RPR-85

Sicurezza Endpoint

Test che request_uri sia attestato nel Trust Framework selezionato.

Nel percorso nazionale, request_uri corrisponde esattamente a un valore di request_uris nei metadati openid_credential_verifier. Nel percorso EUDIW, request_uri è vincolato dal WRPAC e dal WRPRC. L'evidenza dell'altro Trust Framework non autorizza l'endpoint.

RPR-86

Protezione della Privacy

Test che il Relying Party validi correttamente i metadati dell’istanza Wallet senza informazioni utente.

Il Relying Party valuta correttamente le capacità tecniche dell’istanza Wallet.

RPR-87

Metodo POST request_uri

Test che il Relying Party supporti la ricezione dei metadati dell’istanza Wallet via POST all’endpoint request_uri con content type application/x-www-form-urlencoded.

Il Relying Party accetta e processa correttamente i metadati dell’istanza Wallet inviati via POST con il content type richiesto.

RPR-88

Validazione Algoritmo

Test che l’algoritmo JWT sia supportato e non sia none o MAC.

L’algoritmo JWT è tra quelli supportati e non è none o un identificatore MAC.

RPR-89

Validazione Media Type

Test che JWT typ sia impostato a oauth-authz-req+jwt.

Il parametro typ di JWT è correttamente impostato a oauth-authz-req+jwt.

RPR-90

Validazione Response Mode

Test che response_mode sia impostato a direct_post.jwt sia nel Flusso Same Device sia nel Flusso Cross Device.

Il parametro response_mode è correttamente impostato a direct_post.jwt per ogni transazione di presentazione remota.

RPR-91

Validazione Response Type

Test che response_type sia impostato a vp_token.

Il parametro response_type è correttamente impostato a vp_token.

RPR-92

Uso di Response URI

Test che il Relying Party fornisca correttamente il parametro response_uri all’istanza Wallet.

Il Relying Party invia la risposta di autorizzazione al corretto endpoint response_uri.

RPR-93

Entropia del Nonce

Test che il nonce abbia sufficiente entropia (32+ cifre).

Il parametro nonce ha sufficiente entropia con almeno 32 cifre.

RPR-94

Scadenza JWT

Test che il parametro exp di JWT sia impostato correttamente.

Il parametro exp di JWT è correttamente impostato e non scaduto.

RPR-95

Sicurezza Response URI

Test che response_uri sia attestato nel Trust Framework selezionato.

Nel percorso nazionale, response_uri corrisponde esattamente a un valore di response_uris nei metadati openid_credential_verifier. Nel percorso EUDIW, response_uri è vincolato dal WRPAC e dal WRPRC. L'evidenza dell'altro Trust Framework non autorizza l'endpoint.

RPR-96

Gestione Client Metadata

Test che client_metadata segua il prefisso di client_id selezionato.

Per openid_federation, client_metadata non sovrascrive i metadati della Trust Chain, salvo jwks e i parametri di capacità di cifratura della risposta. Per x509_hash, i metadati applicabili della Relying Party sono trasportati in client_metadata.

RPR-97

Annullato

Annullato

Annullato

RPR-98

Formato Risposta di Errore

Test che la risposta di errore utilizzi il content type application/json.

La risposta di errore utilizza correttamente il content type application/json.

RPR-99

Parametri Risposta di Errore

Test che la risposta di errore includa i parametri richiesti.

La risposta di errore include i parametri error ed error_description.

RPR-100

Annullato

Annullato

Annullato

RPR-101

Array Presentazione

Test che vp_token contenga le presentazioni firmate richieste.

vp_token contiene le presentazioni firmate richieste come previsto.

RPR-102

Inclusione KB-JWT

Test che il Titolare includa KB-JWT in SD-JWT.

Il Titolare include correttamente KB-JWT nella presentazione SD-JWT.

RPR-103

Validazione KB-JWT

Test che il Relying Party validi la firma KB-JWT.

Il Relying Party valida correttamente la firma KB-JWT usando la chiave pubblica.

RPR-104

Header KB-JWT

Test che KB-JWT contenga i parametri header richiesti.

KB-JWT contiene i parametri header typ e alg richiesti.

RPR-105

Payload KB-JWT

Test che KB-JWT contenga i parametri payload richiesti.

KB-JWT contiene i parametri iat, aud, nonce e sd_hash richiesti.

RPR-106

Audience KB-JWT

Test che aud di KB-JWT corrisponda al Client Identifier della Relying Party, prefisso incluso.

Il parametro aud di KB-JWT corrisponde al client_id della Relying Party, incluso il prefisso del Client Identifier.

RPR-107

Nonce KB-JWT

Test che nonce di KB-JWT corrisponda al nonce dell’oggetto request.

Il parametro nonce di KB-JWT corrisponde al nonce dell’oggetto request.

RPR-108

Risposta di Errore di Autorizzazione

Test che il Relying Party gestisca correttamente la risposta di errore di autorizzazione dell’istanza Wallet in caso di fallimento della validazione.

Il Relying Party valuta correttamente la risposta di errore di autorizzazione quando la validazione fallisce.

RPR-109

Codifica Risposta di Errore

Test che la risposta di errore di autorizzazione sia codificata correttamente.

La risposta di errore di autorizzazione è codificata in formato application/x-www-form-urlencoded.

RPR-110

Elaborazione Risposta

Test che la Response URI restituisca HTTP 200 in caso di elaborazione corretta.

La Response URI restituisce HTTP 200 con content type application/json.

RPR-111

Annullato

Annullato

Annullato

RPR-112

Inclusione Codice di Risposta

Test che il Relying Party includa il codice di risposta in redirect_uri.

Il Relying Party include un nuovo codice di risposta in redirect_uri.

RPR-113

Annullato

Annullato

Annullato

RPR-114

Risposta di Errore di Validazione

Test che la Response URI restituisca una risposta di errore in caso di fallimento della validazione.

La Response URI restituisce una risposta di errore quando i controlli di validazione falliscono.

RPR-115

Identity Matching

Test dell'Unique National Identifier Binding quando è presentato personal_administrative_number o tax_id_code.

La Relying Party applica l'Unique National Identifier Binding come specificato in Identity Matching e Identity Reconciliation.

RPR-116

Identity Matching

Test dell'Attribute-Based Binding quando un PID è presentato senza personal_administrative_number.

La Relying Party applica l'Attribute-Based Binding come specificato in Identity Matching e Identity Reconciliation.

RPR-117

Prefisso dell'identificatore del Client

Test che client_id utilizzi esattamente un prefisso di identificatore del Client per l'intera richiesta.

client_id utilizza esattamente uno tra openid_federation e x509_hash per l'intera richiesta.

RPR-118

Request Object EUDIW

Test dell'header x5c quando client_id utilizza il prefisso x509_hash.

x5c inizia con il WRPAC ed esclude il trust anchor. La chiave di firma è la chiave del WRPAC e client_id è l'hash di quel certificato.

RPR-119

Request Object nazionale

Test dell'header quando client_id utilizza il prefisso openid_federation.

L'header utilizza kid e può includere trust_chain. Il WRPAC e x5c non sono evidenza di trust nazionale.

RPR-120

Autorizzazione EUDIW

Test di verifier_info quando client_id utilizza il prefisso x509_hash.

verifier_info contiene registrar_dataset e registration_cert (il WRPRC). Questi oggetti non sono richiesti per openid_federation.