Method: vdc.provisionMobileSecurityObjects

Es 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)

Son los metadatos sobre la solicitud, que se requieren en todas las solicitudes.

deviceReferenceId

string

Es el ID que corresponde al dispositivo y la clave de identidad asociada a él. 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

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

Ejemplo: UUID

authKeys[]

object (AuthKey)

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

proofOfProvisioning

object (ProofOfProvisioning)

Es 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 para dispositivos móviles después de que se aprovisiona la credencial. Cuando este método se usa para las actualizaciones de MSO, no se proporciona.

deviceEncryptionKey

object (DeviceEncryptionKey)

Es 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 y enviarlo de vuelta al dispositivo. Es posible que este objeto no se proporcione en el entorno de zona de pruebas durante la incorporación, lo que indica que la entidad emisora debe devolver datos de texto sin formato. Este valor siempre debe establecerse en el entorno de producción.

credentialVersionId

string

Es el ID de la versión de la credencial que tiene el dispositivo actualmente. NO se debe usar para aprovisionar objetos de seguridad para dispositivos móviles en versiones anteriores de credenciales. Si no coincide con la versión más reciente aprovisionada en el registro de la entidad emisora, se debe devolver un ErrorResponse con InvalidState.

Cuerpo de la respuesta

Es una respuesta que contiene el resultado del aprovisionamiento de objetos de seguridad para dispositivos 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)

Son los metadatos sobre la respuesta, que se requieren en todas las respuestas.

mobileSecurityObjects[]

object (MobileSecurityObject)

Es una lista de MobileSecurityObjects que están listos. Esta lista puede estar vacía si no hay objetos MobileSecurityObject listos en este momento.

AuthKey

Es un certificado X.509, firmado por la clave de credencial del dispositivo, que el emisor debe certificar.

La billetera las 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. Es un campo oneof que indica cómo se presenta la clave de autorización. presencetype puede ser solo uno de los parámetros siguientes:
encryptedData

object (EncryptedData)

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

unencryptedValue

string

Es el valor codificado en base64 de AuthKey.

ProofOfProvisioning

Es un objeto COSE_Sign1 estructurado y firmado por la clave de credencial 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. Es un elemento oneof que indica cómo se presenta el ProofOfProvisioning. presencetype puede ser solo uno de los parámetros siguientes:
encryptedData

object (EncryptedData)

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

unencryptedValue

string

Es el valor codificado en base64 de ProofOfProvisioning.

MobileSecurityObject

Es un objeto que encapsula los resúmenes calculados a partir de cada elemento de datos incluido en la credencial. Esto se representa como datos de autorización estáticos, que es el formato requerido para la biblioteca de Android Identity Credential. Consulta este vínculo para obtener detalles sobre la construcción de datos de autorizació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)

Es una marca de tiempo que representa cuándo vence el objeto de seguridad para dispositivos móviles. La marca de tiempo se representa como la cantidad de milisegundos transcurridos desde la época Unix.

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

object (EncryptedData)

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

unencryptedValue

string

Es el valor de la credencial codificado en base64.