Method: vdc.provisionMobileSecurityObjects

Un extremo para aprovisionar una credencial.

Solicitud HTTP

POST https://example.issuer.com/api/v1/vdc/provisionMobileSecurityObjects

Cuerpo de la solicitud

El cuerpo de la solicitud contiene datos con la siguiente estructura:

Representación JSON
{
  "requestMetadata": {
    object (RequestMetadata)
  },
  "deviceReferenceId": string,
  "credentialId": string,
  "authKeys": [
    {
      object (AuthKey)
    }
  ],
  "proofOfProvisioning": {
    object (ProofOfProvisioning)
  },
  "deviceEncryptionKey": {
    object (DeviceEncryptionKey)
  },
  "credentialVersionId": string
}
Campos
requestMetadata

object (RequestMetadata)

Obligatorio. Los metadatos sobre la solicitud, que son obligatorios en todas las solicitudes.

deviceReferenceId

string

Obligatorio. El ID que corresponde al dispositivo y la clave de identidad asociada con el dispositivo. NO es un ID de dispositivo, lo que significa que, si el usuario tuviera dos credenciales separadas en el mismo dispositivo, este ID sería diferente entre ellas.

Este ID se proporciona en todas las solicitudes y se puede usar para correlacionarlas.

credentialId

string

Obligatorio. Un identificador opaco que representa una credencial específica aprovisionada en un dispositivo.

Ej.: UUID

authKeys[]

object (AuthKey)

Obligatorio. Una lista de certificados x509 que deben certificarse para que se puedan usar como objetos de seguridad móviles. Cada certificado está firmado por la clave de credenciales del dispositivo.

proofOfProvisioning

object (ProofOfProvisioning)

Obligatorio. Un objeto del dispositivo que demuestra que la credencial se aprovisionó correctamente. Consulta la definición del objeto para obtener más detalles sobre su estructura.

Nota: Este objeto solo se proporciona la primera vez que se aprovisionan objetos de seguridad móviles después de que se aprovisiona la credencial. Cuando se usa este método para las actualizaciones de MSO, no se proporcionará.

deviceEncryptionKey

object (DeviceEncryptionKey)

Obligatorio. Un objeto que contiene la clave de encriptación efímera del dispositivo y los metadatos asociados. Esta clave se usa para encriptar un valor en el dispositivo. Es posible que este objeto no se proporcione en la zona de pruebas durante la incorporación, lo que indica que la entidad emisora debe mostrar datos de texto simple. Esto siempre debe configurarse en el entorno de producción.

credentialVersionId

string

Obligatorio. El ID de versión de credencial que tiene actualmente el dispositivo. NO SE DEBE usar para aprovisionar objetos de seguridad móviles para versiones anteriores de las credenciales. Si no coincide con la versión más reciente aprovisionada en el registro del emisor, se debe mostrar un ErrorResponse con InvalidState.

Cuerpo de la respuesta

Una respuesta que contiene el resultado del aprovisionamiento de objetos de seguridad móviles.

Si se ejecuta correctamente, el cuerpo de la respuesta contendrá datos con la siguiente estructura:

Representación JSON
{
  "responseMetadata": {
    object (ResponseMetadata)
  },
  "mobileSecurityObjects": [
    {
      object (MobileSecurityObject)
    }
  ]
}
Campos
responseMetadata

object (ResponseMetadata)

Obligatorio. Los metadatos sobre la respuesta, que son obligatorios en todas las respuestas.

mobileSecurityObjects[]

object (MobileSecurityObject)

Obligatorio. Una lista de MobileSecurityObjects que están listos. Esta lista puede estar vacía si no hay MobileSecurityObjects listos en este momento.

AuthKey

Un certificado x509, firmado por la clave de credenciales del dispositivo, que debe certificar el emisor.

La billetera los recupera de la API de Android Identity Credential y se documentan más en https://developer.android.com/reference/android/security/identity/IdentityCredential#getAuthKeysNeedingCertification()

Representación 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.
}
Campos
Campo de unión presencetype. Obligatorio. Un oneof que indica cómo se presenta AuthKey. presencetype puede ser solo uno de los parámetros siguientes:
encryptedData

object (EncryptedData)

El valor encriptado y los metadatos de encriptación necesarios para desencriptar el valor.

unencryptedValue

string

El valor codificado en base64 de AuthKey.

ProofOfProvisioning

Un COSE_Sign1 estructurado, firmado por la clave de credenciales del dispositivo, que demuestra que la credencial relacionada se aprovisionó correctamente en el almacenamiento seguro del dispositivo.

Esta estructura se define en la API de Android Identity Credential y se documenta más en https://developer.android.com/reference/android/security/identity/WritableIdentityCredential#personalize(android.security.identity.PersonalizationData)

Representación 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.
}
Campos
Campo de unión presencetype. Obligatorio. Un oneof que indica cómo se presenta ProofOfProvisioning. presencetype puede ser solo uno de los parámetros siguientes:
encryptedData

object (EncryptedData)

El valor encriptado y los metadatos de encriptación necesarios para desencriptar el valor.

unencryptedValue

string

El valor codificado en base64 de ProofOfProvisioning.

MobileSecurityObject

Un objeto que encapsula resúmenes calculados a partir de cada elemento de datos incluido en la credencial. Esto se representa como datos de autenticación estáticos, que es el formato requerido para la biblioteca de Android Identity Credential. Consulta esto para obtener detalles sobre la construcción de datos de autenticación estáticos.

Representación 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.
}
Campos
expirationTimeMillis

string (int64 format)

Una marca de tiempo que representa cuándo vence el objeto de seguridad móvil. La marca de tiempo se representa como la cantidad de milisegundos transcurridos desde la época UNIX.

Campo de unión presencetype. Obligatorio. Un oneof que indica cómo se presenta la credencial. presencetype puede ser solo uno de los parámetros siguientes:
encryptedData

object (EncryptedData)

El valor encriptado y los metadatos de encriptación necesarios para desencriptar el valor.

unencryptedValue

string

El valor codificado en base64 de la credencial.