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 ( |
| Pola | |
|---|---|
requestMetadata |
Metadane dotyczące żądania, wymagane we wszystkich żądaniach. |
deviceReferenceId |
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 |
Nieprzezroczysty identyfikator reprezentujący konkretne dane logowania udostępnione na urządzeniu. Przykład: UUID |
authKeys[] |
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 |
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 |
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 |
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 ( |
| Pola | |
|---|---|
responseMetadata |
Metadane dotyczące odpowiedzi, wymagane we wszystkich odpowiedziach. |
mobileSecurityObjects[] |
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 |
| Pola | |
|---|---|
Pole zbiorcze presencetype. Typ oneof wskazujący sposób prezentacji klucza AuthKey. presencetype może mieć tylko jedną z tych wartości: |
|
encryptedData |
zaszyfrowaną wartość i metadane szyfrowania niezbędne do odszyfrowania wartości. |
unencryptedValue |
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 |
| Pola | |
|---|---|
Pole zbiorcze presencetype. Typ oneof wskazujący sposób prezentacji dokumentu ProofOfProvisioning. presencetype może mieć tylko jedną z tych wartości: |
|
encryptedData |
zaszyfrowaną wartość i metadane szyfrowania niezbędne do odszyfrowania wartości. |
unencryptedValue |
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 |
| Pola | |
|---|---|
expirationTimeMillis |
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 |
zaszyfrowaną wartość i metadane szyfrowania niezbędne do odszyfrowania wartości. |
unencryptedValue |
Wartość danych logowania zakodowana w formacie base64. |