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 ( |
| Pola | |
|---|---|
requestMetadata |
Wymagane. Metadane żądania wymagane we wszystkich żądaniach. |
deviceReferenceId |
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 |
Wymagane. Nieprzezroczysty identyfikator reprezentujący konkretne dane uwierzytelniające udostępnione na urządzeniu. Przykład: UUID |
authKeys[] |
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 |
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 |
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 |
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 ( |
| Pola | |
|---|---|
responseMetadata |
Wymagane. Metadane odpowiedzi wymagane we wszystkich odpowiedziach. |
mobileSecurityObjects[] |
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 |
| 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 |
Zaszyfrowana wartość i metadane szyfrowania niezbędne do odszyfrowania wartości. |
unencryptedValue |
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 |
| 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 |
Zaszyfrowana wartość i metadane szyfrowania niezbędne do odszyfrowania wartości. |
unencryptedValue |
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 |
| Pola | |
|---|---|
expirationTimeMillis |
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 |
Zaszyfrowana wartość i metadane szyfrowania niezbędne do odszyfrowania wartości. |
unencryptedValue |
Wartość danych uwierzytelniających zakodowana w formacie base64. |