Method: vdc.provisionMobileSecurityObjects

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 (RequestMetadata)
  },
  "deviceReferenceId": string,
  "credentialId": string,
  "authKeys": [
    {
      object (AuthKey)
    }
  ],
  "proofOfProvisioning": {
    object (ProofOfProvisioning)
  },
  "deviceEncryptionKey": {
    object (DeviceEncryptionKey)
  },
  "credentialVersionId": string
}
Campi
requestMetadata

object (RequestMetadata)

I metadati relativi alla richiesta, necessari in tutte le richieste.

deviceReferenceId

string

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

string

Un identificatore opaco che rappresenta una credenziale specifica di cui è stato eseguito il provisioning su un dispositivo.

Esempio: UUID

authKeys[]

object (AuthKey)

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

object (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

object (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

string

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 (ResponseMetadata)
  },
  "mobileSecurityObjects": [
    {
      object (MobileSecurityObject)
    }
  ]
}
Campi
responseMetadata

object (ResponseMetadata)

I metadati relativi alla risposta, obbligatori in tutte le risposte.

mobileSecurityObjects[]

object (MobileSecurityObject)

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 presencetype can be only one of the following:
  "encryptedData": {
    object (EncryptedData)
  },
  "unencryptedValue": string
  // End of list of possible types for union field presencetype.
}
Campi
Campo unione presencetype. Un oneof che indica come viene presentata la chiave di autenticazione. presencetype può essere solo uno dei seguenti tipi:
encryptedData

object (EncryptedData)

Il valore criptato e i metadati di crittografia necessari per decriptarlo.

unencryptedValue

string

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 presencetype can be only one of the following:
  "encryptedData": {
    object (EncryptedData)
  },
  "unencryptedValue": string
  // End of list of possible types for union field presencetype.
}
Campi
Campo unione presencetype. Un oneof che indica come viene presentata la ProofOfProvisioning. presencetype può essere solo uno dei seguenti tipi:
encryptedData

object (EncryptedData)

Il valore criptato e i metadati di crittografia necessari per decriptarlo.

unencryptedValue

string

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 presencetype can be only one of the following:
  "encryptedData": {
    object (EncryptedData)
  },
  "unencryptedValue": string
  // End of list of possible types for union field presencetype.
}
Campi
expirationTimeMillis

string (int64 format)

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

object (EncryptedData)

Il valore criptato e i metadati di crittografia necessari per decriptarlo.

unencryptedValue

string

Il valore con codifica Base64 della credenziale.