Method: vdc.provisionMobileSecurityObjects

Point de terminaison pour provisionner un justificatif.

Requête HTTP

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

Corps de la requête

Le corps de la requête contient des données présentant la structure suivante :

Représentation JSON
{
  "requestMetadata": {
    object (RequestMetadata)
  },
  "deviceReferenceId": string,
  "credentialId": string,
  "authKeys": [
    {
      object (AuthKey)
    }
  ],
  "proofOfProvisioning": {
    object (ProofOfProvisioning)
  },
  "deviceEncryptionKey": {
    object (DeviceEncryptionKey)
  },
  "credentialVersionId": string
}
Champs
requestMetadata

object (RequestMetadata)

Métadonnées de la requête, obligatoires pour toutes les requêtes.

deviceReferenceId

string

Identifiant correspondant à l'appareil et clé d'identité associée à l'appareil. Il ne s'agit PAS de l'identifiant de l'appareil, c'est-à-dire que si l'utilisateur possède deux jeux d'identifiants distincts sur le même appareil, cet identifiant sera différent pour chacun d'entre eux.

Cet identifiant est fourni dans toutes les requêtes et peut être utilisé pour corréler des requêtes.

credentialId

string

Identifiant opaque représentant un justificatif spécifique provisionné sur un appareil.

Ex. : UUID

authKeys[]

object (AuthKey)

Liste de certificats x509 qui doivent être certifiés pour pouvoir être utilisés en tant qu'objets de sécurité mobile. Chaque certificat est signé à l'aide de la clé d'identification de l'appareil.

proofOfProvisioning

object (ProofOfProvisioning)

Objet de l'appareil qui prouve que le justificatif a bien été provisionné. Consultez la définition de l'objet pour en savoir plus sur cette structure.

Remarque : Cet objet n'est fourni que la première fois que des objets de sécurité mobile sont provisionnés après que le justificatif a été provisionné. Si cette méthode est utilisée pour actualiser des objets de sécurité mobile, il n'est pas fourni.

deviceEncryptionKey

object (DeviceEncryptionKey)

Objet contenant la clé de chiffrement éphémère de l'appareil ainsi que les métadonnées associées. Cette clé est utilisée pour chiffrer une valeur renvoyée à l'appareil. Il est possible que cet objet ne soit pas fourni dans l'environnement de bac à sable lors de l'intégration, ce qui indique à l'émetteur qu'il doit renvoyer des données en texte brut. Cet objet doit toujours être défini dans l'environnement de production.

credentialVersionId

string

ID de la version de justificatif dont dispose actuellement l'appareil. Il ne DOIT PAS servir à provisionner des objets de sécurité mobile pour d'anciennes versions de justificatifs. S'il ne correspond pas à la version la plus récente provisionnée dans l'enregistrement de l'émetteur, une ErrorResponse avec InvalidState doit être renvoyée.

Corps de la réponse

Réponse contenant le résultat du provisionnement d'objets de sécurité mobile.

Si la requête aboutit, le corps de la réponse contient des données qui ont la structure suivante :

Représentation JSON
{
  "responseMetadata": {
    object (ResponseMetadata)
  },
  "mobileSecurityObjects": [
    {
      object (MobileSecurityObject)
    }
  ]
}
Champs
responseMetadata

object (ResponseMetadata)

Métadonnées de la réponse, obligatoires pour toutes les réponses.

mobileSecurityObjects[]

object (MobileSecurityObject)

Liste des MobileSecurityObjects prêts. Cette liste peut être vide si aucun MobileSecurityObject n'est actuellement prêt.

AuthKey

Certificat x509, signé à l'aide de la clé d'identification de l'appareil, qui doit être certifié par l'émetteur.

Ces éléments sont récupérés par le portefeuille via l'API Android Identity Credential. Ils sont documentés plus en détail sur https://developer.android.com/reference/android/security/identity/IdentityCredential#getAuthKeysNeedingCertification()

Représentation 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.
}
Champs
Champ d'union presencetype. Oneof indiquant la manière dont l'AuthKey est présentée. presencetype ne peut être qu'un des éléments suivants :
encryptedData

object (EncryptedData)

Valeur chiffrée et métadonnées de chiffrement nécessaires pour la déchiffrer.

unencryptedValue

string

Valeur de l'AuthKey encodée en base64.

ProofOfProvisioning

Structure COSE_Sign1, signée à l'aide de la clé d'identification de l'appareil, qui prouve que le justificatif correspondant a bien été provisionné dans l'emplacement de stockage sécurisé de l'appareil.

Cette structure est définie par l'API Android Identity Credential. Elle est documentée plus en détail sur https://developer.android.com/reference/android/security/identity/WritableIdentityCredential#personalize(android.security.identity.PersonalizationData)

Représentation 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.
}
Champs
Champ d'union presencetype. Oneof indiquant la manière dont la ProofOfProvisioning est présentée. presencetype ne peut être qu'un des éléments suivants :
encryptedData

object (EncryptedData)

Valeur chiffrée et métadonnées de chiffrement nécessaires pour la déchiffrer.

unencryptedValue

string

Valeur de la ProofOfProvisioning encodée en base64.

MobileSecurityObject

Objet encapsulant des condensés calculés à partir de chaque élément de données inclus dans l'identifiant. Elles sont représentées sous forme de données d'authentification statiques, qui constituent le format requis pour la bibliothèque Android Identity Credential. Pour en savoir plus sur la création de données d'authentification statiques, cliquez ici.

Représentation 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.
}
Champs
expirationTimeMillis

string (int64 format)

Code temporel représentant le moment où l'objet de sécurité mobile expire. Il est indiqué en nombre de millisecondes écoulées depuis l'epoch Unix.

Champ d'union presencetype. Oneof indiquant la manière dont le justificatif est présenté. presencetype ne peut être qu'un des éléments suivants :
encryptedData

object (EncryptedData)

Valeur chiffrée et métadonnées de chiffrement nécessaires pour la déchiffrer.

unencryptedValue

string

Valeur du justificatif encodée en base64.