ขอแนะนำช่วงทดลองใช้ Digital Credentials API จากต้นทาง

ช่วงทดลองใช้จากต้นทางสำหรับ Digital Credentials API จะเริ่มจาก Chrome 128 Digital Credentials API เป็น API แพลตฟอร์มเว็บใหม่ที่ช่วยให้เว็บไซต์เลือกขอข้อมูลที่ยืนยันได้เกี่ยวกับผู้ใช้ผ่านข้อมูลเข้าสู่ระบบดิจิทัล เช่น ใบขับขี่หรือบัตรประจำตัวประชาชนที่จัดเก็บไว้ในกระเป๋าเงินดิจิทัลได้

ข้อมูลเบื้องต้น

ตัวตนบนโลกดิจิทัลในชีวิตจริงกำลังกลายเป็นความจริงเมื่อหน่วยงานภาครัฐและเอกชนจำนวนมากเริ่มออกเอกสารรับรองดิจิทัลที่ผูกกับอุปกรณ์ ตัวอย่างเช่น ใบขับขี่และบัตรประจำตัวบนอุปกรณ์เคลื่อนที่ในบางรัฐในสหรัฐอเมริกา (เช่น แอริโซนา แคลิฟอร์เนีย โคโลราโด จอร์เจีย และแมริแลนด์) สามารถจัดสรรไปยังแอปกระเป๋าเงินดิจิทัล เช่น Google Wallet บนอุปกรณ์เคลื่อนที่ได้แล้ว นอกจากนี้ยังมีกฎระเบียบเกี่ยวกับการยอมรับข้อมูลเข้าสู่ระบบดิจิทัลสำหรับการยืนยันทางออนไลน์บางรายการและ eIDAS 2.0 ก็เป็นตัวอย่างหนึ่ง

วันที่ ใบขับขี่บนอุปกรณ์เคลื่อนที่ใน Google Wallet
ใบขับขี่บนอุปกรณ์เคลื่อนที่ใน Google Wallet

ฟีเจอร์ของเอกสารรับรองดิจิทัลจะขึ้นอยู่กับรูปแบบของเอกสารรับรอง แต่โดยทั่วไปจะรวมถึงสิ่งต่อไปนี้

  • ความปลอดภัยและความเป็นส่วนตัวที่มีประสิทธิภาพมากขึ้น: การใช้การเข้ารหัสขั้นสูงและวิธีการตรวจสอบสิทธิ์ที่รัดกุมจะช่วยปกป้องข้อมูลที่ละเอียดอ่อนและรับประกันการเข้าถึงที่ปลอดภัย ตัวอย่างเช่น การแสดงข้อมูลเข้าสู่ระบบมักจะได้รับการปกป้องหลังการตรวจสอบสิทธิ์ผู้ใช้ผ่านแอป Wallet
  • การเปิดเผยแบบเลือกส่วน: ผู้ที่อาศัย (RP) จะขอข้อมูลบางอย่างจากข้อมูลเข้าสู่ระบบได้ ซึ่งช่วยให้ผู้ใช้จํากัดข้อมูลที่แชร์เฉพาะที่จําเป็นสําหรับกรณีการใช้งานได้ ตัวอย่างเช่น สามารถแชร์ผู้ใช้อายุเกิน 18 ปีได้โดยไม่เปิดเผยวันเกิดของผู้ใช้
  • ความสามารถในการทำงานร่วมกัน: เอกสารรับรองควรเป็นไปตามมาตรฐานสากล ทำให้สามารถใช้งานร่วมกันได้ระหว่างระบบและประเทศต่างๆ และช่วยให้มีการยอมรับข้ามพรมแดน
  • การยืนยัน: ข้อมูลเข้าสู่ระบบที่แชร์มีการลงนามแบบดิจิทัลโดยผู้ออกบัตร RP สามารถตรวจสอบลายเซ็นนี้เพื่อยืนยันความถูกต้องของข้อมูล

เพราะข้อมูลเข้าสู่ระบบดิจิทัล ที่ยืนยันได้ ซึ่งอาจเปิดใช้กรณีการใช้งานต่างๆ เช่น

  • การยืนยันอายุ: ขอการยืนยันอายุของผู้ใช้ก่อนแสดงเนื้อหาที่มีการจำกัดอายุผู้ชมหรือซื้อสินค้าที่จำกัดอายุผู้ชม
  • การยืนยันตัวตน: ขอชื่อและที่อยู่ในการยืนยันตัวตนของบุคคลเพื่อปฏิบัติตามกฎหมายหรือป้องกันการประพฤติมิชอบ
  • การตรวจสอบสิทธิ์ในการขับขี่: ยืนยันสิทธิ์ในการขับรถของบุคคล (เช่น เมื่อเช่ารถยนต์)

เนื่องจากเว็บไซต์ได้เริ่มติดต่อโดยตรงกับแอปพลิเคชันกระเป๋าเงินมือถือ (เช่น โดยใช้รูปแบบ URL ที่กำหนดเอง) เพื่อขอข้อมูลเข้าสู่ระบบดิจิทัลสำหรับกรณีการใช้งานต่างๆ เบราว์เซอร์จึงมองเห็นโอกาสในการทำให้การโต้ตอบนี้ปลอดภัยยิ่งขึ้น ป้องกันการละเมิด และใช้งานได้ง่ายขึ้นผ่าน API ที่สร้างขึ้นมาโดยเฉพาะ

ขอแนะนำ Digital Credentials API

Digital Credentials API คือ API แพลตฟอร์มเว็บใหม่ที่ช่วยให้เว็บไซต์ RP ขอนําเสนอข้อมูลเข้าสู่ระบบดิจิทัลจากแอปกระเป๋าเงินได้ API นี้มีให้ใน Chrome เป็นช่วงทดลองใช้จากต้นทางโดยเริ่มตั้งแต่ Chrome 128 เป็นต้นไป

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

วันที่
แผนภาพการสื่อสารระหว่างเบราว์เซอร์ กระเป๋าสตางค์ และฝ่ายที่เกี่ยวข้อง

ก่อนอื่น Chrome จะสนับสนุน API ใน Chrome บน Android สำหรับการขอข้อมูลรับรองจากแอป Wallet บนอุปกรณ์เดียวกัน ในอนาคต เราวางแผนที่จะรองรับ Chrome สำหรับเดสก์ท็อปเพื่อขอข้อมูลเข้าสู่ระบบแบบข้ามอุปกรณ์จากอุปกรณ์เคลื่อนที่เครื่องอื่น

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

ในเร็วๆ นี้ บัญชี Google จะใช้ API ดังกล่าวเพื่อยืนยันผู้ใช้บางราย วันเดือนปีเกิด ผู้ใช้ที่อาศัยอยู่ในรัฐในสหรัฐอเมริกาที่รองรับสามารถใช้บัตรประจำตัวประชาชนหรือใบขับขี่ที่จัดสรรไว้ให้ในแอปกระเป๋าเงินที่มีให้บริการ (รวมถึง Google Wallet) เพื่อแชร์เฉพาะวันเกิดกับ Google ได้อย่างราบรื่นโดยไม่ต้องแชร์รายละเอียดอื่นๆ เกี่ยวกับตัวตน วิธีนี้ช่วยให้ผู้ใช้แสดงให้ Google เห็นว่าผู้ใช้มีคุณสมบัติตามข้อกำหนดด้านอายุที่เกี่ยวข้องกับบัญชี ซึ่งเป็นวิธีที่รักษาความเป็นส่วนตัว

ลองเลย

หากต้องการลองใช้ Digital Credentials API ให้ทําตามวิธีการต่อไปนี้

  1. ติดตั้งแอปพลิเคชัน Wallet สาธิตโดยทำตามวิธีการที่อธิบายไว้ในหน้านี้
  2. เปิดแอป IC Wallet และจัดสรรใบขับขี่ดิจิทัล (mDL) ให้เป็นตัวอย่าง
    • แตะปุ่มเมนูแล้วเลือกเพิ่มเอกสารที่ลงนามด้วยตนเอง
  3. ไปที่ https://digital-credentials.dev ด้วย Chrome 128 ขึ้นไป
  4. กด Request Credentials (OpenID4VP)

ดูการสาธิตที่ใช้ https://digital-credentials.dev ซึ่งเป็นเว็บไซต์ทดสอบสำหรับนักพัฒนาซอฟต์แวร์เพื่อสร้างคำขอข้อมูลเข้าสู่ระบบสำหรับแอตทริบิวต์ต่างๆ

วิธีการทำงานของการสาธิตแบบทีละขั้นตอนมีดังนี้

วันที่
1. ผู้ใช้เข้ามายังเว็บไซต์ของฝ่ายที่พึ่งดังกล่าว และขอให้แสดงชื่อนามสกุลจริงที่ได้รับการยืนยัน ชื่อดังกล่าว และการรับประกันอายุที่มีอายุมากกว่า 21 ปี
2. เบราว์เซอร์จะยืนยันว่าผู้ใช้ต้องการแชร์ข้อมูลเข้าสู่ระบบดิจิทัลกับเว็บไซต์นี้หรือไม่
วันที่
3. ระบบปฏิบัติการจะแสดงข้อมูลที่ขอและข้อมูลรับรองที่มีสิทธิ์ซึ่งตรงกับคำขอให้ผู้ใช้เลือกและดำเนินการตามคำขอได้
4. Wallet จะตรวจสอบสิทธิ์ผู้ใช้ในเครื่องด้วยการปลดล็อกหน้าจอ

วันที่
5. ขณะนี้ได้มีการส่งเอกสารรับรองดิจิทัลตามที่ขอไปยังเว็บไซต์ของฝ่ายที่เกี่ยวข้องแล้ว

วิธีการทำงานของ API

Digital Credentials API สร้างขึ้นจากรากฐานของ API การจัดการข้อมูลเข้าสู่ระบบ แต่มาจากแพลตฟอร์ม API อิสระ: navigator.identity เมื่อโทรหา navigator.identity.get() เว็บไซต์จะสามารถขอข้อมูลเข้าสู่ระบบดิจิทัลที่จัดเก็บไว้ในแอป Wallet บนอุปกรณ์เคลื่อนที่ ที่ใช้เวลาเพียง 2 นาที

// Gets a CBOR with specific fields out of mobile driver's license as an mdoc
const controller = new AbortController();
const {protocol, data} = await navigator.identity.get({
  signal: controller.signal,
  digital: {
    providers: [{
      protocol: "openid4vp",
      request: {
        response_type: "vp_token",
        nonce: "n-0S6_WzA2Mj",
        client_metadata: {...},
        presentation_definition: {...}
      }
    }],
  }
});

แพลตฟอร์ม API พื้นฐานคล้ายกับ navigator.credentials.get() แต่จะยอมรับเฉพาะประเภทข้อมูลเข้าสู่ระบบ "digital" เท่านั้น ภายในประเภทข้อมูลเข้าสู่ระบบดิจิทัล ให้เพิ่มอาร์เรย์ providers ที่มี IdentityRequestProvider พร้อมพารามิเตอร์พื้นฐานต่อไปนี้

  • protocol: ระบุโปรโตคอลการแลกเปลี่ยนด้วยสตริง ระหว่างช่วงทดลองใช้จากต้นทาง โปรโตคอลหลักที่พัฒนาขึ้นคือ "openid4vp"
  • request: กรอกพารามิเตอร์ที่แอปกระเป๋าเงินดิจิทัลยอมรับสำหรับโปรโตคอลที่ระบุ สำหรับ "openid4vp" จะมีการกำหนดพารามิเตอร์ใน OpenID for Verifiable งานนำเสนอ (OID4VP) สำหรับข้อกำหนดของ W3C Digital Credentials API

ตัวอย่างเพย์โหลดสำหรับประเภทข้อมูลเข้าสู่ระบบดิจิทัลที่ใช้ OID4VP

{
  protocol: 'openid4vp',
  request: {
    response_type: 'vp_token',
    nonce: 'gf69kepV+m5tGxUIsFtLi6pwg=',
    client_metadata: {},
    presentation_definition: {     
      id: 'mDL-request-demo',
      input_descriptors: [{
        id: "org.iso.18013.5.1.mDL",
        format: {
          mso_mdoc: {
            alg: ["ES256"]
          }
        },
        constraints: {
          limit_disclosure: "required",
          fields: [
            {
              path: ["$['org.iso.18013.5.1']['family_name']"],
              intent_to_retain: false
            }, {
              path: ["$['org.iso.18013.5.1']['given_name']"],
              intent_to_retain: false
            }, {
              path: ["$['org.iso.18013.5.1']['age_over_21']"],
              intent_to_retain: false
            }
          ]
        }
      }],
    }
  }
}

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

  • นามสกุลของผู้ใช้
  • ชื่อของผู้ใช้
  • ค่าบูลีนที่ระบุว่าผู้ใช้มีอายุมากกว่า 21 ปีหรือไม่

ตัวอย่างเพย์โหลดการตอบกลับมีดังนี้

{
  data: '{\n  "vp_token": "o2d2ZXJzaW9uYz..."\n}'
  id: '',
  protocol: 'openid4vp',
  type: 'digital'
}

ในตัวอย่างนี้ มีการขอข้อมูลเข้าสู่ระบบด้วยโปรโตคอล "openid4vp" และการตอบกลับมี "vp_token" ในพร็อพเพอร์ตี้ data โปรดดูข้อมูลจำเพาะของ W3C Digital Credentials API (OID4VP) ของ OpenID for Verifiable งานนำเสนอ (OID4VP) เพื่อดูวิธีแยกวิเคราะห์คำตอบและยืนยันข้อมูลเข้าสู่ระบบ

ระบบรองรับ Digital Credentials API ใน Chrome ใน Android เป็นช่วงทดลองใช้จากต้นทาง ปัจจุบัน Chrome บนเดสก์ท็อปและ iOS ยังไม่รองรับ สำหรับเครื่องมืออื่นๆ ของเบราว์เซอร์ การสนทนาที่กำลังดำเนินอยู่จะสนับสนุนผ่านกลุ่มชุมชน W3C Web Incubator

เข้าร่วมช่วงทดลองใช้จากต้นทาง

สำหรับการพัฒนาซอฟต์แวร์ คุณเปิดใช้ Digital Credentials API ในเครื่องได้โดยเปิด Flag chrome://flags#web-identity-digital-credentials ของ Chrome ใน Chrome 128 ขึ้นไป

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

  1. ขอโทเค็นสำหรับต้นทาง
  2. เพิ่มโทเค็นลงในหน้าเว็บ ซึ่งทำได้ 2 วิธีดังนี้
    • เพิ่มแท็ก origin-trial <meta> ที่ส่วนหัวของแต่ละหน้า ตัวอย่างเช่น <meta http-equiv="origin-trial" content="TOKEN_GOES_HERE">. อาจมีลักษณะดังนี้
    • หากกำหนดค่าเซิร์ฟเวอร์ได้ คุณจะเพิ่มโทเค็นโดยใช้ส่วนหัว HTTP ของ Origin-Trial ได้ด้วย ส่วนหัวการตอบกลับที่ได้ควรมีลักษณะดังนี้Origin-Trial: TOKEN_GOES_HERE.

แชร์ความคิดเห็น

หากมีความคิดเห็นเกี่ยวกับ Digital Credentials API ให้ส่งไปที่เครื่องมือติดตามปัญหา Chromium โดยเฉพาะ