Method: vdc.provisionMobileSecurityObjects

Punkt końcowy do udostępniania danych logowania.

Żą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)

Metadane dotyczące żądania, wymagane we wszystkich żądaniach.

deviceReferenceId

string

Identyfikator odpowiadający urządzeniu i klucz tożsamości powiązany z urządzeniem. NIE jest to identyfikator urządzenia, co oznacza, że jeśli użytkownik ma 2 osobne dane logowania 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 ich korelowania.

credentialId

string

Nieprzezroczysty identyfikator reprezentujący konkretne dane logowania udostępnione na urządzeniu.

Przykład: UUID

authKeys[]

object (AuthKey)

Lista certyfikatów x509, które wymagają certyfikacji, aby można było ich używać jako obiektów zabezpieczeń mobilnych. Każdy certyfikat jest podpisany kluczem danych logowania urządzenia.

proofOfProvisioning

object (ProofOfProvisioning)

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

Uwaga: ten obiekt jest udostępniany tylko przy pierwszym udostępnianiu obiektów zabezpieczeń mobilnych po udostępnieniu danych logowania. Gdy ta metoda jest używana do odświeżania MSO, nie jest ona udostępniana.

deviceEncryptionKey

object (DeviceEncryptionKey)

Obiekt zawierający tymczasowy klucz szyfrowania urządzenia i powiązane z nim metadane. Ten klucz służy do ponownego zaszyfrowania wartości na urządzeniu. Podczas wdrażania w środowisku testowym ten obiekt może nie być dostępny, co oznacza, że wydawca powinien zwracać dane w formie zwykłego tekstu. W środowisku produkcyjnym to ustawienie powinno być zawsze włączone.

credentialVersionId

string

Identyfikator wersji danych logowania, które są obecnie na urządzeniu. NIE NALEŻY używać tej metody do udostępniania obiektów zabezpieczeń mobilnych w przypadku starszych wersji danych logowania. Jeśli nie pasuje do najnowszej wersji udostępnionej w rekordzie wystawcy, zamiast tego należy zwrócić ErrorResponse z 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)

Metadane dotyczące odpowiedzi, wymagane we wszystkich odpowiedziach.

mobileSecurityObjects[]

object (MobileSecurityObject)

Lista obiektów MobileSecurityObject, które są gotowe. Jeśli żadne obiekty MobileSecurityObject nie są obecnie gotowe, ta lista może być pusta.

AuthKey

Certyfikat x509 podpisany kluczem danych logowania urządzenia, który ma zostać zweryfikowany przez wystawcę.

Są one pobierane przez portfel z interfejsu Android Identity Credential API i są szczegółowo 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. Typ oneof wskazujący sposób prezentacji klucza AuthKey. presencetype może mieć tylko jedną z tych wartości:
encryptedData

object (EncryptedData)

zaszyfrowaną 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 poświadczeń urządzenia, która potwierdza, że powiązane poświadczenia zostały prawidłowo udostępnione w bezpiecznej pamięci na urządzeniu.

Ta struktura jest zdefiniowana przez interfejs Android Identity Credential API i jest szczegółowo 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. Typ oneof wskazujący sposób prezentacji dokumentu ProofOfProvisioning. presencetype może mieć tylko jedną z tych wartości:
encryptedData

object (EncryptedData)

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

unencryptedValue

string

Wartość ProofOfProvisioning zakodowana w formacie base64.

MobileSecurityObject

Obiekt zawierający skróty obliczone na podstawie każdego elementu danych uwzględnionego w danych logowania. Są one reprezentowane jako statyczne dane uwierzytelniające, które są wymaganym formatem w bibliotece 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 reprezentująca datę wygaśnięcia obiektu zabezpieczeń mobilnych. Sygnatura czasowa jest wyrażona w milisekundach od początku epoki uniksowej.

Pole zbiorcze presencetype. Typ oneof wskazujący, w jaki sposób prezentowane są dane logowania. presencetype może mieć tylko jedną z tych wartości:
encryptedData

object (EncryptedData)

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

unencryptedValue

string

Wartość danych logowania zakodowana w formacie base64.