- Richiesta HTTP
- Corpo della richiesta
- Corpo della risposta
- AuthKey
- ProofOfProvisioning
- MobileSecurityObject
Un endpoint per il provisioning di una credenziale.
Richiesta HTTP
POST https://example.issuer.com/api/v1/vdc/provisionMobileSecurityObjects
Corpo della richiesta
Il corpo della richiesta contiene dati con la seguente struttura:
| Rappresentazione JSON |
|---|
{ "requestMetadata": { object ( |
| Campi | |
|---|---|
requestMetadata |
I metadati relativi alla richiesta, necessari in tutte le richieste. |
deviceReferenceId |
L'ID corrispondente al dispositivo e la chiave di identità associata al dispositivo. Non si tratta di un ID dispositivo, il che significa che se l'utente avesse due credenziali separate sullo stesso dispositivo, questo ID sarebbe diverso. Questo ID viene fornito in tutte le richieste e può essere utilizzato per correlarle. |
credentialId |
Un identificatore opaco che rappresenta una credenziale specifica di cui è stato eseguito il provisioning su un dispositivo. Esempio: UUID |
authKeys[] |
Un elenco di certificati x509 da certificare, in modo che possano essere utilizzati come oggetti di sicurezza mobile. Ogni certificato è firmato dalla chiave delle credenziali del dispositivo. |
proofOfProvisioning |
Un oggetto del dispositivo che dimostra che la credenziale è stata eseguita correttamente. Per ulteriori dettagli sulla struttura, consulta la definizione dell'oggetto. Nota: questo oggetto viene fornito solo la prima volta che vengono sottoposti a provisioning gli oggetti di sicurezza mobile dopo il provisioning della credenziale. Quando questo metodo viene utilizzato per gli aggiornamenti MSO, non viene fornito. |
deviceEncryptionKey |
Un oggetto contenente la chiave di crittografia effimera del dispositivo e i metadati associati. Questa chiave viene utilizzata per criptare un valore e inviarlo di nuovo al dispositivo. Questo oggetto potrebbe non essere fornito nell'ambiente sandbox durante l'onboarding, il che indica che l'emittente deve restituire dati non criptati. Questo valore deve essere sempre impostato nell'ambiente di produzione. |
credentialVersionId |
L'ID versione della credenziale attualmente presente sul dispositivo. Questo campo NON DEVE essere utilizzato per il provisioning di oggetti di sicurezza mobile per le versioni precedenti delle credenziali. Se non corrisponde alla versione più recente fornita nel record dell'emittente, deve essere restituita una ErrorResponse con InvalidState. |
Corpo della risposta
Una risposta contenente il risultato del provisioning degli oggetti di sicurezza mobile.
In caso di esito positivo, il corpo della risposta contiene dati con la seguente struttura:
| Rappresentazione JSON |
|---|
{ "responseMetadata": { object ( |
| Campi | |
|---|---|
responseMetadata |
I metadati relativi alla risposta, obbligatori in tutte le risposte. |
mobileSecurityObjects[] |
Un elenco di MobileSecurityObject pronti. Questo elenco potrebbe essere vuoto se al momento non sono pronti MobileSecurityObject. |
AuthKey
Un certificato x509, firmato dalla chiave delle credenziali del dispositivo, da certificare dall'emittente.
Questi vengono recuperati dal wallet dall'API Android Identity Credential e sono documentati ulteriormente all'indirizzo https://developer.android.com/reference/android/security/identity/IdentityCredential#getAuthKeysNeedingCertification()
| Rappresentazione JSON |
|---|
{ // Union field |
| Campi | |
|---|---|
Campo unione presencetype. Un oneof che indica come viene presentata la chiave di autenticazione. presencetype può essere solo uno dei seguenti tipi: |
|
encryptedData |
Il valore criptato e i metadati di crittografia necessari per decriptarlo. |
unencryptedValue |
Il valore con codifica Base64 di AuthKey. |
ProofOfProvisioning
Una struttura COSE_Sign1, firmata dalla chiave delle credenziali del dispositivo, che dimostra che le credenziali correlate sono state sottoposte al provisioning corretto nell'archivio sicuro del dispositivo.
Questa struttura è definita dall'API Android Identity Credential ed è ulteriormente documentata all'indirizzo https://developer.android.com/reference/android/security/identity/WritableIdentityCredential#personalize(android.security.identity.PersonalizationData)
| Rappresentazione JSON |
|---|
{ // Union field |
| Campi | |
|---|---|
Campo unione presencetype. Un oneof che indica come viene presentata la ProofOfProvisioning. presencetype può essere solo uno dei seguenti tipi: |
|
encryptedData |
Il valore criptato e i metadati di crittografia necessari per decriptarlo. |
unencryptedValue |
Il valore con codifica Base64 di ProofOfProvisioning. |
MobileSecurityObject
Un oggetto che incapsula i digest calcolati da ogni elemento di dati incluso nella credenziale. Questi dati vengono rappresentati come dati di autenticazione statici, ovvero il formato richiesto per la libreria Android Identity Credential. Per i dettagli sulla creazione dei dati di autenticazione statici, consulta questo articolo.
| Rappresentazione JSON |
|---|
{ "expirationTimeMillis": string, // Union field |
| Campi | |
|---|---|
expirationTimeMillis |
Un timestamp che indica la scadenza dell'oggetto di sicurezza mobile. Il timestamp è rappresentato come il numero di millisecondi dall'epoca Unix. |
Campo unione presencetype. Un valore oneof che indica come viene presentata la credenziale. presencetype può essere solo uno dei seguenti tipi: |
|
encryptedData |
Il valore criptato e i metadati di crittografia necessari per decriptarlo. |
unencryptedValue |
Il valore con codifica Base64 della credenziale. |