Method: vdc.provisionMobileSecurityObjects

Punkt końcowy do udostępniania danych uwierzytelniających.

Żądanie HTTP

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

Treść żądania

Treść żądania zawiera dane o następującej strukturze:

Zapis JSON
{
  "requestMetadata": {
    object (RequestMetadata)
  },
  "deviceReferenceId": string,
  "credentialId": string,
  "authKeys": [
    {
      object (AuthKey)
    }
  ],
  "proofOfProvisioning": {
    object (ProofOfProvisioning)
  },
  "deviceEncryptionKey": {
    object (DeviceEncryptionKey)
  },
  "credentialVersionId": string
}
Pola
requestMetadata

object (RequestMetadata)

Wymagane. Metadane żądania wymagane we wszystkich żądaniach.

deviceReferenceId

string

Wymagane. Identyfikator odpowiadający urządzeniu i kluczowi tożsamości powiązanemu z urządzeniem. NIE jest to identyfikator urządzenia. Jeśli użytkownik ma 2 osobne dane uwierzytelniające na tym samym urządzeniu, ten identyfikator będzie się różnić.

Ten identyfikator jest podawany we wszystkich żądaniach i może służyć do korelowania żądań.

credentialId

string

Wymagane. Nieprzezroczysty identyfikator reprezentujący konkretne dane uwierzytelniające udostępnione na urządzeniu.

Przykład: UUID

authKeys[]

object (AuthKey)

Wymagane. Lista certyfikatów x509, które muszą zostać potwierdzone, aby można było ich używać jako obiektów zabezpieczeń mobilnych. Każdy certyfikat jest podpisany kluczem danych uwierzytelniających urządzenia.

proofOfProvisioning

object (ProofOfProvisioning)

Wymagane. Obiekt z urządzenia, który potwierdza, że dane uwierzytelniające zostały prawidłowo udostępnione. Więcej informacji o strukturze tego obiektu znajdziesz w jego definicji.

Uwaga: ten obiekt jest udostępniany tylko wtedy, gdy obiekty zabezpieczeń mobilnych są udostępniane po raz pierwszy po udostępnieniu danych uwierzytelniających. Gdy ta metoda jest używana do odświeżania MSO, ten obiekt nie jest udostępniany.

deviceEncryptionKey

object (DeviceEncryptionKey)

Wymagane. Obiekt zawierający efemeryczny klucz szyfrowania urządzenia i powiązane metadane. Ten klucz służy do szyfrowania wartości, która ma zostać zwrócona do urządzenia. Ten obiekt może nie być dostępny w środowisku piaskownicy podczas wdrażania, co oznacza, że wydawca powinien zwrócić dane w postaci zwykłego tekstu. W środowisku produkcyjnym ten obiekt powinien być zawsze ustawiony.

credentialVersionId

string

Wymagane. Identyfikator wersji danych uwierzytelniających, które są obecnie dostępne na urządzeniu. NIE należy go używać do udostępniania obiektów zabezpieczeń mobilnych w przypadku starszych wersji danych uwierzytelniających. Jeśli nie pasuje on do najnowszej wersji udostępnionej w rekordzie wydawcy, należy zamiast tego zwrócić ErrorResponse z wartością InvalidState.

Treść odpowiedzi

Odpowiedź zawierająca wynik udostępniania obiektów zabezpieczeń mobilnych.

W przypadku powodzenia treść żądania zawiera dane o następującej strukturze:

Zapis JSON
{
  "responseMetadata": {
    object (ResponseMetadata)
  },
  "mobileSecurityObjects": [
    {
      object (MobileSecurityObject)
    }
  ]
}
Pola
responseMetadata

object (ResponseMetadata)

Wymagane. Metadane odpowiedzi wymagane we wszystkich odpowiedziach.

mobileSecurityObjects[]

object (MobileSecurityObject)

Wymagane. Lista gotowych obiektów MobileSecurityObject. Ta lista może być pusta, jeśli obecnie nie ma gotowych obiektów MobileSecurityObject.

AuthKey

Certyfikat x509 podpisany kluczem danych uwierzytelniających urządzenia, który ma zostać potwierdzony przez wydawcę.

Są one pobierane przez Portfel z interfejsu Android Identity Credential API i są opisane na stronie https://developer.android.com/reference/android/security/identity/IdentityCredential#getAuthKeysNeedingCertification().

Zapis 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.
}
Pola
Pole zbiorcze presencetype. Wymagane. Pole oneof wskazujące, jak prezentowany jest klucz AuthKey. presencetype może mieć tylko jedną z tych wartości:
encryptedData

object (EncryptedData)

Zaszyfrowana wartość i metadane szyfrowania niezbędne do odszyfrowania wartości.

unencryptedValue

string

Wartość klucza AuthKey zakodowana w formacie base64.

ProofOfProvisioning

Struktura COSE_Sign1 podpisana kluczem danych uwierzytelniających urządzenia, która potwierdza, że powiązane dane uwierzytelniające zostały prawidłowo udostępnione w bezpiecznym magazynie na urządzeniu.

Ta struktura jest zdefiniowana przez interfejs Android Identity Credential API i jest opisana na stronie https://developer.android.com/reference/android/security/identity/WritableIdentityCredential#personalize(android.security.identity.PersonalizationData).

Zapis 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.
}
Pola
Pole zbiorcze presencetype. Wymagane. Pole oneof wskazujące, jak prezentowany jest obiekt ProofOfProvisioning. presencetype może mieć tylko jedną z tych wartości:
encryptedData

object (EncryptedData)

Zaszyfrowana wartość i metadane szyfrowania niezbędne do odszyfrowania wartości.

unencryptedValue

string

Wartość obiektu ProofOfProvisioning zakodowana w formacie base64.

MobileSecurityObject

Obiekt, który zawiera skróty obliczone na podstawie każdego elementu danych uwzględnionego w danych uwierzytelniających. Jest on reprezentowany jako statyczne dane uwierzytelniające, czyli format wymagany przez bibliotekę Android Identity Credential. Szczegółowe informacje o tworzeniu statycznych danych uwierzytelniających znajdziesz tutaj.

Zapis 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.
}
Pola
expirationTimeMillis

string (int64 format)

Sygnatura czasowa wskazująca, kiedy wygasa obiekt zabezpieczeń mobilnych. Sygnatura czasowa jest reprezentowana jako liczba milisekund od początku epoki uniksowej.

Pole zbiorcze presencetype. Wymagane. Pole oneof wskazujące, jak prezentowane są dane uwierzytelniające. presencetype może mieć tylko jedną z tych wartości:
encryptedData

object (EncryptedData)

Zaszyfrowana wartość i metadane szyfrowania niezbędne do odszyfrowania wartości.

unencryptedValue

string

Wartość danych uwierzytelniających zakodowana w formacie base64.