- 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 |
Obbligatorio. I metadati relativi alla richiesta, obbligatori in tutte le richieste. |
deviceReferenceId |
Obbligatorio. L'ID che corrisponde al dispositivo e alla chiave di identità associata al dispositivo. NON è un ID dispositivo, il che significa che se l'utente avesse due credenziali separate sullo stesso dispositivo, questo ID sarebbe diverso tra loro. Questo ID viene fornito in tutte le richieste e può essere utilizzato per correlare le richieste. |
credentialId |
Obbligatorio. Un identificatore opaco che rappresenta una credenziale specifica di cui è stato eseguito il provisioning su un dispositivo. Esempio: UUID |
authKeys[] |
Obbligatorio. Un elenco di certificati x509 che devono essere certificati, in modo che possano essere utilizzati come oggetti di sicurezza mobile. Ogni certificato è firmato dalla chiave delle credenziali del dispositivo. |
proofOfProvisioning |
Obbligatorio. Un oggetto del dispositivo che dimostra che il provisioning della credenziale è stato eseguito correttamente. Per ulteriori dettagli sulla struttura, consulta la definizione dell'oggetto. Nota: questo oggetto viene fornito solo la prima volta che viene eseguito il provisioning degli oggetti di sicurezza mobile dopo il provisioning della credenziale. Quando questo metodo viene utilizzato per gli aggiornamenti di MSO, non verrà fornito. |
deviceEncryptionKey |
Obbligatorio. Un oggetto contenente la chiave di crittografia effimera del dispositivo e i metadati associati. Questa chiave viene utilizzata per criptare un valore e restituirlo al dispositivo. Questo oggetto potrebbe non essere fornito nell'ambiente sandbox durante l'onboarding, il che indica che l'emittente deve restituire i dati in testo normale. Questo valore deve essere sempre impostato nell'ambiente di produzione. |
credentialVersionId |
Obbligatorio. L'ID della versione della credenziale attualmente presente sul dispositivo. 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 di cui è stato eseguito il provisioning nel record dell'emittente, deve essere restituito un 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 |
Obbligatorio. I metadati relativi alla risposta, obbligatori in tutte le risposte. |
mobileSecurityObjects[] |
Obbligatorio. 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, che deve essere certificato 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. Obbligatorio. Un oneof che indica come viene presentata la AuthKey. presencetype può essere solo uno dei seguenti tipi: |
|
encryptedData |
Il valore criptato e i metadati di crittografia necessari per decriptare il valore. |
unencryptedValue |
Il valore con codifica Base64 della AuthKey. |
ProofOfProvisioning
Una struttura COSE_Sign1, firmata dalla chiave delle credenziali del dispositivo, che dimostra che il provisioning della credenziale correlata è stato eseguito correttamente nello spazio di archiviazione sicuro del dispositivo.
Questa struttura è definita dall'API Android Identity Credential ed è documentata ulteriormente all'indirizzo https://developer.android.com/reference/android/security/identity/WritableIdentityCredential#personalize(android.security.identity.PersonalizationData)
| Rappresentazione JSON |
|---|
{ // Union field |
| Campi | |
|---|---|
Campo unione presencetype. Obbligatorio. 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 decriptare il valore. |
unencryptedValue |
Il valore con codifica Base64 della ProofOfProvisioning. |
MobileSecurityObject
Un oggetto che incapsula i digest calcolati da ogni elemento di dati incluso nella credenziale. È rappresentato come dati di autenticazione statici, che è il formato richiesto per la libreria Android Identity Credential. Per i dettagli sulla creazione dei dati di autenticazione statici, consulta questa pagina.
| Rappresentazione JSON |
|---|
{ "expirationTimeMillis": string, // Union field |
| Campi | |
|---|---|
expirationTimeMillis |
Un timestamp che rappresenta la scadenza dell'oggetto di sicurezza mobile. Il timestamp è rappresentato come il numero di millisecondi trascorsi dall'epoca Unix. |
Campo unione presencetype. Obbligatorio. Un 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 decriptare il valore. |
unencryptedValue |
Il valore con codifica Base64 della credenziale. |