Method: vdc.provisionMobileSecurityObjects

ปลายทางในการจัดเตรียมข้อมูลเข้าสู่ระบบ

คำขอ HTTP

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

เนื้อหาคำขอ

เนื้อหาของคำขอมีข้อมูลซึ่งมีโครงสร้างดังต่อไปนี้

การแสดง JSON
{
  "requestMetadata": {
    object (RequestMetadata)
  },
  "deviceReferenceId": string,
  "credentialId": string,
  "authKeys": [
    {
      object (AuthKey)
    }
  ],
  "proofOfProvisioning": {
    object (ProofOfProvisioning)
  },
  "deviceEncryptionKey": {
    object (DeviceEncryptionKey)
  },
  "credentialVersionId": string
}
ช่อง
requestMetadata

object (RequestMetadata)

ต้องระบุ ข้อมูลเมตาเกี่ยวกับคำขอ ซึ่งจำเป็นในคำขอทั้งหมด

deviceReferenceId

string

ต้องระบุ รหัสที่ตรงกับอุปกรณ์และคีย์ข้อมูลประจำตัวที่เชื่อมโยงกับอุปกรณ์ รหัสนี้ไม่ใช่รหัสอุปกรณ์ ซึ่งหมายความว่าหากผู้ใช้มีข้อมูลเข้าสู่ระบบ 2 รายการแยกกันในอุปกรณ์เครื่องเดียวกัน รหัสนี้จะแตกต่างกัน

ระบบจะระบุรหัสนี้ในคำขอทั้งหมด และคุณสามารถใช้รหัสนี้เพื่อเชื่อมโยงคำขอต่างๆ ได้

credentialId

string

ต้องระบุ ตัวระบุแบบทึบแสงที่แสดงถึงข้อมูลเข้าสู่ระบบเฉพาะที่จัดเตรียมไว้สำหรับอุปกรณ์

เช่น UUID

authKeys[]

object (AuthKey)

ต้องระบุ รายการใบรับรอง x509 ที่ต้องได้รับการรับรองเพื่อให้ใช้เป็นออบเจ็กต์ความปลอดภัยของอุปกรณ์เคลื่อนที่ได้ ใบรับรองแต่ละรายการจะลงนามโดยคีย์ข้อมูลเข้าสู่ระบบอุปกรณ์

proofOfProvisioning

object (ProofOfProvisioning)

ต้องระบุ ออบเจ็กต์จากอุปกรณ์ที่พิสูจน์ว่ามีการจัดเตรียมข้อมูลเข้าสู่ระบบอย่างถูกต้อง ดูรายละเอียดเพิ่มเติมเกี่ยวกับโครงสร้างของออบเจ็กต์นี้ได้ที่คำจำกัดความของออบเจ็กต์

หมายเหตุ: ระบบจะระบุออบเจ็กต์นี้เฉพาะครั้งแรกที่มีการจัดเตรียมออบเจ็กต์ความปลอดภัยของอุปกรณ์เคลื่อนที่หลังจากที่จัดเตรียมข้อมูลเข้าสู่ระบบแล้ว เมื่อใช้วิธีนี้ในการรีเฟรช MSO ระบบจะไม่ระบุออบเจ็กต์นี้

deviceEncryptionKey

object (DeviceEncryptionKey)

ต้องระบุ ออบเจ็กต์ที่มีคีย์การเข้ารหัสแบบชั่วคราวของอุปกรณ์และข้อมูลเมตาที่เชื่อมโยง คีย์นี้ใช้สำหรับการเข้ารหัสค่ากลับไปยังอุปกรณ์ ระบบอาจไม่ระบุออบเจ็กต์นี้ในสภาพแวดล้อมแซนด์บ็อกซ์ระหว่างการเริ่มต้นใช้งาน ซึ่งบ่งบอกว่าผู้ออกควรแสดงข้อมูลข้อความธรรมดา ควรตั้งค่านี้ในสภาพแวดล้อมฮาร์ดแวร์และซอฟต์แวร์เสมอ

credentialVersionId

string

ต้องระบุ รหัสเวอร์ชันข้อมูลเข้าสู่ระบบที่อุปกรณ์มีอยู่ในปัจจุบัน ไม่ควรใช้รหัสนี้ในการจัดเตรียมออบเจ็กต์ความปลอดภัยของอุปกรณ์เคลื่อนที่สำหรับข้อมูลเข้าสู่ระบบเวอร์ชันเก่า หากรหัสนี้ไม่ตรงกับเวอร์ชันล่าสุดที่จัดเตรียมไว้ในบันทึกของผู้ออก ระบบควรแสดง ErrorResponse ที่มี InvalidState แทน

เนื้อหาการตอบกลับ

การตอบกลับที่มีผลลัพธ์ของการจัดเตรียมออบเจ็กต์ความปลอดภัยของอุปกรณ์เคลื่อนที่

หากทำสำเร็จ เนื้อหาการตอบกลับจะมีข้อมูลซึ่งมีโครงสร้างดังต่อไปนี้

การแสดง JSON
{
  "responseMetadata": {
    object (ResponseMetadata)
  },
  "mobileSecurityObjects": [
    {
      object (MobileSecurityObject)
    }
  ]
}
ช่อง
responseMetadata

object (ResponseMetadata)

ต้องระบุ ข้อมูลเมตาเกี่ยวกับการตอบกลับ ซึ่งจำเป็นในการตอบกลับทั้งหมด

mobileSecurityObjects[]

object (MobileSecurityObject)

ต้องระบุ รายการ MobileSecurityObject ที่พร้อมใช้งาน รายการนี้อาจว่างเปล่าหากไม่มี MobileSecurityObject ที่พร้อมใช้งานในขณะนี้

AuthKey

ใบรับรอง x509 ที่ลงนามโดยคีย์ข้อมูลเข้าสู่ระบบอุปกรณ์ ซึ่งผู้ออกต้องรับรอง

Wallet จะดึงข้อมูลเหล่านี้จาก Android Identity Credential API และมีเอกสารประกอบเพิ่มเติมที่ https://developer.android.com/reference/android/security/identity/IdentityCredential#getAuthKeysNeedingCertification()

การแสดง 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.
}
ช่อง
ฟิลด์ Union presencetype ต้องระบุ Oneof ที่ระบุวิธีแสดง AuthKey presencetype จะเป็นค่าใดค่าหนึ่งต่อไปนี้เท่านั้น
encryptedData

object (EncryptedData)

ค่าที่เข้ารหัสและข้อมูลเมตาการเข้ารหัสที่จำเป็นในการถอดรหัสค่า

unencryptedValue

string

ค่า AuthKey ที่เข้ารหัส Base64

ProofOfProvisioning

COSE_Sign1 ที่มีโครงสร้างและลงนามโดยคีย์ข้อมูลเข้าสู่ระบบอุปกรณ์ ซึ่งพิสูจน์ว่ามีการจัดเตรียมข้อมูลเข้าสู่ระบบที่เกี่ยวข้องอย่างถูกต้องในพื้นที่เก็บข้อมูลที่ปลอดภัยในอุปกรณ์

โครงสร้างนี้กำหนดโดย Android Identity Credential API และมีเอกสารประกอบเพิ่มเติมที่ https://developer.android.com/reference/android/security/identity/WritableIdentityCredential#personalize(android.security.identity.PersonalizationData)

การแสดง 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.
}
ช่อง
ฟิลด์ Union presencetype ต้องระบุ Oneof ที่ระบุวิธีแสดง ProofOfProvisioning presencetype จะเป็นค่าใดค่าหนึ่งต่อไปนี้เท่านั้น
encryptedData

object (EncryptedData)

ค่าที่เข้ารหัสและข้อมูลเมตาการเข้ารหัสที่จำเป็นในการถอดรหัสค่า

unencryptedValue

string

ค่า ProofOfProvisioning ที่เข้ารหัส Base64

MobileSecurityObject

ออบเจ็กต์ที่ห่อหุ้มค่าแฮชที่คำนวณจากองค์ประกอบข้อมูลแต่ละรายการที่รวมอยู่ในข้อมูลเข้าสู่ระบบ ออบเจ็กต์นี้แสดงเป็นข้อมูลการตรวจสอบสิทธิ์แบบคงที่ ซึ่งเป็นรูปแบบที่จำเป็นสำหรับไลบรารี Android Identity Credential ดูรายละเอียดเกี่ยวกับการสร้างข้อมูลการตรวจสอบสิทธิ์แบบคงที่ได้ที่ นี่

การแสดง 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.
}
ช่อง
expirationTimeMillis

string (int64 format)

การประทับเวลาที่แสดงเวลาที่ออบเจ็กต์ความปลอดภัยของอุปกรณ์เคลื่อนที่จะหมดอายุ การประทับเวลาแสดงเป็นจำนวนมิลลิวินาทีนับตั้งแต่ Unix Epoch

ฟิลด์ Union presencetype ต้องระบุ Oneof ที่ระบุวิธีแสดงข้อมูลเข้าสู่ระบบ presencetype จะเป็นค่าใดค่าหนึ่งต่อไปนี้เท่านั้น
encryptedData

object (EncryptedData)

ค่าที่เข้ารหัสและข้อมูลเมตาการเข้ารหัสที่จำเป็นในการถอดรหัสค่า

unencryptedValue

string

ค่าข้อมูลเข้าสู่ระบบที่เข้ารหัส Base64