Конечная точка для предоставления учетных данных.
HTTP-запрос
POST https://example.issuer.com/api/v1/vdc/provisionMobileSecurityObjects
Текст запроса
Тело запроса содержит данные следующей структуры:
| JSON-представление |
|---|
{ "requestMetadata": { object ( |
| Поля | |
|---|---|
requestMetadata | Метаданные о запросе, необходимые для всех запросов. |
deviceReferenceId | Идентификатор, соответствующий устройству, и ключ идентификации, связанный с устройством. Это НЕ идентификатор устройства, то есть, если у пользователя будут две разные учетные данные на одном устройстве, этот идентификатор будет отличаться для них. Этот идентификатор указывается во всех запросах и может использоваться для сопоставления запросов. |
credentialId | Непрозрачный идентификатор, представляющий собой конкретные учетные данные, предоставленные устройству. Пример: UUID |
authKeys[] | Список сертификатов x509, которые необходимо сертифицировать, чтобы их можно было использовать в качестве объектов мобильной безопасности. Каждый сертификат подписан ключом учетных данных устройства. |
proofOfProvisioning | Объект от устройства, подтверждающий корректную инициализацию учетных данных. Более подробную информацию о структуре этого объекта см. в его определении. Примечание: Этот объект предоставляется только при первом создании объектов мобильной безопасности после предоставления учетных данных. При использовании этого метода для обновления MSO этот объект предоставляться не будет. |
deviceEncryptionKey | Объект, содержащий временный ключ шифрования устройства и связанные с ним метаданные. Этот ключ используется для шифрования значения, возвращаемого на устройство. В тестовой среде во время регистрации этот объект может не предоставляться, что указывает на необходимость возврата данных в открытом виде эмитентом. В производственной среде этот параметр всегда должен быть установлен. |
credentialVersionId | Идентификатор версии учетных данных, который в данный момент используется устройством. Его НЕ СЛЕДУЕТ использовать для создания объектов безопасности мобильных устройств для старых версий учетных данных. Если он не совпадает с самой актуальной версией, указанной в записи эмитента, вместо этого следует вернуть ErrorResponse с InvalidState. |
Ответный текст
Ответ, содержащий результат предоставления объектов безопасности для мобильных устройств.
В случае успеха тело ответа содержит данные следующей структуры:
| JSON-представление |
|---|
{ "responseMetadata": { object ( |
| Поля | |
|---|---|
responseMetadata | Метаданные об ответе, обязательные для всех ответов. |
mobileSecurityObjects[] | Список готовых объектов MobileSecurityObject. Этот список может быть пустым, если в данный момент ни один объект MobileSecurityObject не готов. |
AuthKey
Сертификат x509, подписанный ключом учетных данных устройства, который должен быть заверен эмитентом.
Эти данные извлекаются кошельком из API учетных данных Android и более подробно описаны по адресу https://developer.android.com/reference/android/security/identity/IdentityCredential#getAuthKeysNeedingCertification( ) .
| JSON-представление |
|---|
{ // Union field |
| Поля | |
|---|---|
Поле объединения presencetype . Тип данных oneof, указывающий, как представляется AuthKey. presencetype может принимать только одно из следующих значений: | |
encryptedData | Зашифрованное значение и метаданные шифрования, необходимые для расшифровки этого значения. |
unencryptedValue | Закодированное в 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 . Значение oneof, указывающее, как представляется ProofOfProvisioning. presencetype может принимать только одно из следующих значений: | |
encryptedData | Зашифрованное значение и метаданные шифрования, необходимые для расшифровки этого значения. |
unencryptedValue | Значение ProofOfProvisioning, закодированное в base64. |
MobileSecurityObject
Объект, инкапсулирующий дайджесты, вычисленные на основе каждого элемента данных, включенного в учетные данные. Это представлено в виде статических данных аутентификации, что является обязательным форматом для библиотеки Android Identity Credential. Подробнее о создании статических данных аутентификации см. здесь.
| JSON-представление |
|---|
{ "expirationTimeMillis": string, // Union field |
| Поля | |
|---|---|
expirationTimeMillis | Временная метка, указывающая на момент истечения срока действия объекта мобильной безопасности. Временная метка представлена в виде количества миллисекунд с начала эпохи Unix. |
Поле объединения presencetype . Тип данных oneof, указывающий, как представлены учетные данные. presencetype может принимать только одно из следующих значений: | |
encryptedData | Зашифрованное значение и метаданные шифрования, необходимые для расшифровки этого значения. |
unencryptedValue | Закодированное в base64 значение учетных данных. |