Method: vdc.provisionMobileSecurityObjects

Конечная точка для предоставления учетных данных.

HTTP-запрос

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

Текст запроса

Тело запроса содержит данные следующей структуры:

JSON-представление
{
  "requestMetadata": {
    object (RequestMetadata)
  },
  "deviceReferenceId": string,
  "credentialId": string,
  "authKeys": [
    {
      object (AuthKey)
    }
  ],
  "proofOfProvisioning": {
    object (ProofOfProvisioning)
  },
  "deviceEncryptionKey": {
    object (DeviceEncryptionKey)
  },
  "credentialVersionId": string
}
Поля
requestMetadata

object ( RequestMetadata )

Метаданные о запросе, необходимые для всех запросов.

deviceReferenceId

string

Идентификатор, соответствующий устройству, и ключ идентификации, связанный с устройством. Это НЕ идентификатор устройства, то есть, если у пользователя будут две разные учетные данные на одном устройстве, этот идентификатор будет отличаться для них.

Этот идентификатор указывается во всех запросах и может использоваться для сопоставления запросов.

credentialId

string

Непрозрачный идентификатор, представляющий собой конкретные учетные данные, предоставленные устройству.

Пример: UUID

authKeys[]

object ( AuthKey )

Список сертификатов x509, которые необходимо сертифицировать, чтобы их можно было использовать в качестве объектов мобильной безопасности. Каждый сертификат подписан ключом учетных данных устройства.

proofOfProvisioning

object ( ProofOfProvisioning )

Объект от устройства, подтверждающий корректную инициализацию учетных данных. Более подробную информацию о структуре этого объекта см. в его определении.

Примечание: Этот объект предоставляется только при первом создании объектов мобильной безопасности после предоставления учетных данных. При использовании этого метода для обновления MSO этот объект предоставляться не будет.

deviceEncryptionKey

object ( DeviceEncryptionKey )

Объект, содержащий временный ключ шифрования устройства и связанные с ним метаданные. Этот ключ используется для шифрования значения, возвращаемого на устройство. В тестовой среде во время регистрации этот объект может не предоставляться, что указывает на необходимость возврата данных в открытом виде эмитентом. В производственной среде этот параметр всегда должен быть установлен.

credentialVersionId

string

Идентификатор версии учетных данных, который в данный момент используется устройством. Его НЕ СЛЕДУЕТ использовать для создания объектов безопасности мобильных устройств для старых версий учетных данных. Если он не совпадает с самой актуальной версией, указанной в записи эмитента, вместо этого следует вернуть ErrorResponse с InvalidState.

Ответный текст

Ответ, содержащий результат предоставления объектов безопасности для мобильных устройств.

В случае успеха тело ответа содержит данные следующей структуры:

JSON-представление
{
  "responseMetadata": {
    object (ResponseMetadata)
  },
  "mobileSecurityObjects": [
    {
      object (MobileSecurityObject)
    }
  ]
}
Поля
responseMetadata

object ( ResponseMetadata )

Метаданные об ответе, обязательные для всех ответов.

mobileSecurityObjects[]

object ( MobileSecurityObject )

Список готовых объектов MobileSecurityObject. Этот список может быть пустым, если в данный момент ни один объект MobileSecurityObject не готов.

AuthKey

Сертификат x509, подписанный ключом учетных данных устройства, который должен быть заверен эмитентом.

Эти данные извлекаются кошельком из API учетных данных Android и более подробно описаны по адресу https://developer.android.com/reference/android/security/identity/IdentityCredential#getAuthKeysNeedingCertification( ) .

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.
}
Поля
Поле объединения presencetype . Тип данных oneof, указывающий, как представляется AuthKey. presencetype может принимать только одно из следующих значений:
encryptedData

object ( EncryptedData )

Зашифрованное значение и метаданные шифрования, необходимые для расшифровки этого значения.

unencryptedValue

string

Закодированное в base64 значение AuthKey.

ProofOfProvisioning

Документ COSE_Sign1, структурированный и подписанный ключом учетных данных устройства, подтверждает корректность предоставления соответствующих учетных данных в защищенное хранилище устройства.

Эта структура определяется API учетных данных Android Identity Credential и более подробно описана по адресу https://developer.android.com/reference/android/security/identity/WritableIdentityCredential#personalize(android.security.identity.PersonalizationData )

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.
}
Поля
Поле объединения presencetype . Значение oneof, указывающее, как представляется ProofOfProvisioning. presencetype может принимать только одно из следующих значений:
encryptedData

object ( EncryptedData )

Зашифрованное значение и метаданные шифрования, необходимые для расшифровки этого значения.

unencryptedValue

string

Значение ProofOfProvisioning, закодированное в base64.

MobileSecurityObject

Объект, инкапсулирующий дайджесты, вычисленные на основе каждого элемента данных, включенного в учетные данные. Это представлено в виде статических данных аутентификации, что является обязательным форматом для библиотеки Android Identity Credential. Подробнее о создании статических данных аутентификации см. здесь.

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.
}
Поля
expirationTimeMillis

string ( int64 format)

Временная метка, указывающая на момент истечения срока действия объекта мобильной безопасности. Временная метка представлена ​​в виде количества миллисекунд с начала эпохи Unix.

Поле объединения presencetype . Тип данных oneof, указывающий, как представлены учетные данные. presencetype может принимать только одно из следующих значений:
encryptedData

object ( EncryptedData )

Зашифрованное значение и метаданные шифрования, необходимые для расшифровки этого значения.

unencryptedValue

string

Закодированное в base64 значение учетных данных.