Một điểm cuối để cung cấp thông tin xác thực.
Yêu cầu HTTP
POST https://example.issuer.com/api/v1/vdc/provisionMobileSecurityObjects
Nội dung yêu cầu
Nội dung yêu cầu chứa dữ liệu với cấu trúc sau:
| Biểu diễn dưới dạng JSON |
|---|
{ "requestMetadata": { object ( |
| Trường | |
|---|---|
requestMetadata |
Siêu dữ liệu về yêu cầu, bắt buộc trong tất cả các yêu cầu. |
deviceReferenceId |
Mã nhận dạng tương ứng với thiết bị và khoá nhận dạng được liên kết với thiết bị. Đây KHÔNG phải là mã nhận dạng thiết bị, tức là nếu người dùng có hai thông tin đăng nhập riêng biệt trên cùng một thiết bị, thì mã nhận dạng này sẽ khác nhau giữa hai thông tin đăng nhập đó. Mã nhận dạng này được cung cấp trong tất cả các yêu cầu và có thể dùng để tương quan các yêu cầu. |
credentialId |
Giá trị nhận dạng mờ đại diện cho một thông tin đăng nhập cụ thể được cung cấp cho một thiết bị. Ví dụ: UUID |
authKeys[] |
Danh sách các chứng chỉ x509 cần được chứng nhận để có thể dùng làm đối tượng bảo mật di động. Mỗi chứng chỉ đều được khoá thông tin đăng nhập của thiết bị ký. |
proofOfProvisioning |
Một đối tượng trên thiết bị chứng minh rằng thông tin đăng nhập đã được cung cấp đúng cách. Hãy xem định nghĩa đối tượng để biết thêm thông tin chi tiết về cấu trúc của đối tượng này. Lưu ý: Đối tượng này chỉ được cung cấp vào lần đầu tiên các đối tượng bảo mật trên thiết bị di động được cung cấp sau khi thông tin đăng nhập đã được cung cấp. Khi phương thức này được dùng để làm mới MSO, thông tin này sẽ không được cung cấp. |
deviceEncryptionKey |
Một đối tượng chứa khoá mã hoá tạm thời của thiết bị và siêu dữ liệu liên kết. Khoá này được dùng để mã hoá một giá trị trở lại thiết bị. Đối tượng này có thể không được cung cấp trong môi trường hộp cát trong quá trình tham gia, cho biết nhà phát hành phải trả về dữ liệu văn bản thuần tuý. Bạn phải luôn đặt giá trị này trong môi trường phát hành công khai. |
credentialVersionId |
Mã phiên bản thông tin đăng nhập mà thiết bị hiện có. Bạn KHÔNG NÊN dùng phương thức này để cung cấp các đối tượng bảo mật di động cho các phiên bản thông tin đăng nhập cũ. Nếu không khớp với phiên bản mới nhất được cung cấp trong bản ghi của tổ chức phát hành, thì bạn nên trả về ErrorResponse có InvalidState. |
Nội dung phản hồi
Một phản hồi chứa kết quả của việc cung cấp các đối tượng bảo mật trên thiết bị di động.
Nếu thành công, phần nội dung phản hồi sẽ chứa dữ liệu có cấu trúc sau:
| Biểu diễn dưới dạng JSON |
|---|
{ "responseMetadata": { object ( |
| Trường | |
|---|---|
responseMetadata |
Siêu dữ liệu về phản hồi, bắt buộc trong tất cả các phản hồi. |
mobileSecurityObjects[] |
Danh sách các MobileSecurityObject đã sẵn sàng. Danh sách này có thể trống nếu hiện không có MobileSecurityObject nào sẵn sàng. |
AuthKey
Một chứng chỉ x509, được ký bằng khoá thông tin đăng nhập của thiết bị, do nhà phát hành chứng nhận.
Ví sẽ truy xuất các khoá này từ Android Identity Credential API và được ghi lại thêm tại https://developer.android.com/reference/android/security/identity/IdentityCredential#getAuthKeysNeedingCertification()
| Biểu diễn dưới dạng JSON |
|---|
{ // Union field |
| Trường | |
|---|---|
Trường nhóm presencetype. Một oneof cho biết cách AuthKey được trình bày. presencetype chỉ có thể là một trong những trạng thái sau: |
|
encryptedData |
Giá trị đã mã hoá và siêu dữ liệu mã hoá cần thiết để giải mã giá trị. |
unencryptedValue |
Giá trị được mã hoá base64 của AuthKey. |
ProofOfProvisioning
Một cấu trúc COSE_Sign1, được khoá thông tin đăng nhập của thiết bị ký, chứng minh rằng thông tin đăng nhập liên quan đã được cung cấp chính xác cho bộ nhớ an toàn trên thiết bị.
Cấu trúc này được xác định bằng Android Identity Credential API và được ghi lại thêm tại https://developer.android.com/reference/android/security/identity/WritableIdentityCredential#personalize(android.security.identity.PersonalizationData)
| Biểu diễn dưới dạng JSON |
|---|
{ // Union field |
| Trường | |
|---|---|
Trường nhóm presencetype. Một trong những cách cho biết cách ProofOfProvisioning đang được trình bày. presencetype chỉ có thể là một trong những trạng thái sau: |
|
encryptedData |
Giá trị đã mã hoá và siêu dữ liệu mã hoá cần thiết để giải mã giá trị. |
unencryptedValue |
Giá trị được mã hoá base64 của ProofOfProvisioning. |
MobileSecurityObject
Một đối tượng đóng gói các thông tin tóm tắt được tính từ mỗi phần tử dữ liệu có trong thông tin đăng nhập. Dữ liệu này được biểu thị dưới dạng dữ liệu xác thực tĩnh, đây là định dạng bắt buộc đối với thư viện Thông tin nhận dạng Android. Xem phần này để biết thông tin chi tiết về cách tạo dữ liệu uỷ quyền tĩnh.
| Biểu diễn dưới dạng JSON |
|---|
{ "expirationTimeMillis": string, // Union field |
| Trường | |
|---|---|
expirationTimeMillis |
Dấu thời gian biểu thị thời điểm hết hạn của đối tượng bảo mật trên thiết bị di động. Dấu thời gian được biểu thị bằng số mili giây kể từ thời gian bắt đầu của hệ thống Unix. |
Trường nhóm presencetype. Một trong số các cách cho biết cách thông tin đăng nhập đang được trình bày. presencetype chỉ có thể là một trong những trạng thái sau: |
|
encryptedData |
Giá trị đã mã hoá và siêu dữ liệu mã hoá cần thiết để giải mã giá trị. |
unencryptedValue |
Giá trị được mã hoá base64 của thông tin đăng nhập. |