Method: vdc.provisionMobileSecurityObjects

Um endpoint para provisionar uma credencial.

Solicitação HTTP

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

Corpo da solicitação

O corpo da solicitação contém dados com a seguinte estrutura:

Representação JSON
{
  "requestMetadata": {
    object (RequestMetadata)
  },
  "deviceReferenceId": string,
  "credentialId": string,
  "authKeys": [
    {
      object (AuthKey)
    }
  ],
  "proofOfProvisioning": {
    object (ProofOfProvisioning)
  },
  "deviceEncryptionKey": {
    object (DeviceEncryptionKey)
  },
  "credentialVersionId": string
}
Campos
requestMetadata

object (RequestMetadata)

Os metadados sobre a solicitação, obrigatórios para todas elas.

deviceReferenceId

string

O ID que corresponde ao dispositivo e a chave de identidade associada a ele. Este NÃO é um ID do dispositivo, ou seja, se o usuário tivesse duas credenciais separadas no mesmo dispositivo, esse ID seria diferente entre elas.

Esse ID é fornecido em todas as solicitações e pode ser usado para correlacionar solicitações.

credentialId

string

Um identificador opaco que representa uma credencial específica provisionada a um dispositivo.

Por exemplo: UUID

authKeys[]

object (AuthKey)

Uma lista de certificados x509 que precisam ser certificados para serem usados como objetos de segurança móvel. Cada certificado é assinado pela chave de credencial do dispositivo.

proofOfProvisioning

object (ProofOfProvisioning)

Um objeto do dispositivo que comprova que a credencial foi provisionada corretamente. Confira a definição do objeto para mais detalhes sobre a estrutura dele.

Observação: esse objeto só é fornecido na primeira vez em que os objetos de segurança móvel são provisionados após o provisionamento da credencial. Quando o método for usado para atualizações de MSO, ele não será fornecido.

deviceEncryptionKey

object (DeviceEncryptionKey)

Um objeto que contém a chave de criptografia efêmera do dispositivo e os metadados associados. A chave é usada para criptografar um valor de volta ao dispositivo. Esse objeto pode não ser fornecido no ambiente de sandbox durante a integração, indicando que o emissor deve retornar dados de texto sem formatação. Isso sempre deve ser definido no ambiente de produção.

credentialVersionId

string

O ID da versão da credencial que o dispositivo tem atualmente. Ele NÃO DEVE ser usado para provisionar objetos de segurança de dispositivos móveis para as versões antigas das credenciais. Se o ID não corresponder à versão mais recente provisionada no registro do emissor, você vai receber ErrorResponse com InvalidState.

Corpo da resposta

Uma resposta contendo o resultado do provisionamento de objetos de segurança móvel.

Se bem-sucedido, o corpo da resposta incluirá dados com a estrutura a seguir:

Representação JSON
{
  "responseMetadata": {
    object (ResponseMetadata)
  },
  "mobileSecurityObjects": [
    {
      object (MobileSecurityObject)
    }
  ]
}
Campos
responseMetadata

object (ResponseMetadata)

Os metadados sobre a resposta, necessários em todas elas.

mobileSecurityObjects[]

object (MobileSecurityObject)

Uma lista de MobileSecurityObjects que estão prontos. Essa lista pode estar vazia se nenhum MobileSecurityObject estiver pronto no momento.

AuthKey

Um certificado x509, assinado pela chave de credencial do dispositivo, que será certificado pelo emissor.

Eles são recuperados pela carteira da API Android Identity Credential e são documentados posteriormente em https://developer.android.com/reference/android/security/identity/IdentityCredential#getAuthKeysNeedingCertification()

Representação 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ão presencetype. Um oneof que indica como o AuthKey está sendo apresentado. presencetype pode ser apenas de um dos tipos a seguir:
encryptedData

object (EncryptedData)

O valor criptografado e os metadados de criptografia necessários para descriptografar o valor.

unencryptedValue

string

O valor codificado em base64 da AuthKey.

ProofOfProvisioning

Um COSE_Sign1 estruturado e assinado pela chave de credencial do dispositivo, que prova que a credencial relacionada foi corretamente provisionada para armazenamento seguro no dispositivo.

Essa estrutura é definida pela API Android Identity Credential e está documentada com mais detalhes em https://developer.android.com/reference/android/security/identity/WritableIdentityCredential#personalize(android.security.identity.PersonalizationData)

Representação 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ão presencetype. Um oneof que indica como o ProofOfProvisioning está sendo apresentado. presencetype pode ser apenas de um dos tipos a seguir:
encryptedData

object (EncryptedData)

O valor criptografado e os metadados de criptografia necessários para descriptografar o valor.

unencryptedValue

string

O valor codificado em base64 do ProofOfProvisioning.

MobileSecurityObject

Um objeto que encapsula resumos calculados de cada elemento de dados incluído na credencial. Isso é representado como dados de autenticação estáticos, que é o formato necessário para a biblioteca Android Identity Credential. Consulte este link para detalhes sobre a construção de dados de autenticação estática.

Representação 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)

Um carimbo de data/hora que representa a expiração do objeto de segurança móvel. Ele é representado pelo número de milissegundos a contar da época do Unix.

Campo de união presencetype. Um oneof para indicar como a credencial está sendo apresentada. presencetype pode ser apenas de um dos tipos a seguir:
encryptedData

object (EncryptedData)

O valor criptografado e os metadados de criptografia necessários para descriptografar o valor.

unencryptedValue

string

O valor da credencial codificado em base64.