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

เผยแพร่: 4 กันยายน 2024 อัปเดตล่าสุด: 16 ตุลาคม 2024

ช่วงทดลองใช้จากต้นทางสำหรับ 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 ส่งคำขอ เบราว์เซอร์จะส่งคำขอไปยังระบบปฏิบัติการบนอุปกรณ์เคลื่อนที่ซึ่งจะค้นหาข้อมูลเข้าสู่ระบบที่ตรงกันในแอปพลิเคชันเวิล์ตที่ติดตั้งไว้ หากพบ ระบบปฏิบัติการบนอุปกรณ์เคลื่อนที่จะแจ้งให้ผู้ใช้เลือก 1 รายการและส่งคำขอไปยังกระเป๋าเงินที่ผู้ใช้เลือก หลังจากการตรวจสอบสิทธิ์ในเครื่องแล้ว กระเป๋าสตางค์จะแสดงการตอบกลับที่มีข้อมูลเข้าสู่ระบบที่ขอ

แผนภาพการสื่อสารระหว่างเบราว์เซอร์ กระเป๋าสตางค์ และผู้อ้างอิง

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

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

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

ลองเลย

ข้อกำหนด

  • บริการ Google Play เวอร์ชัน 23.40 ขึ้นไป
  • Chrome 128 ขึ้นไป
  • เปิดใช้ Flag ที่ chrome://flags#web-identity-digital-credentials

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

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

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

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

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

5. ระบบจะส่งข้อมูลเข้าสู่ระบบดิจิทัลที่ขอไปยังเว็บไซต์ของบุคคลที่เชื่อถือ

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

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

// 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 สำหรับการแสดงข้อมูลที่ตรวจสอบได้ (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
            }
          ]
        }
      }],
    }
  }
}

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

  • นามสกุลของผู้ใช้
  • ชื่อจริงของผู้ใช้
  • ค่าบูลีนที่ระบุว่าผู้ใช้มีอายุมากกว่า 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) เพื่อดูวิธีแยกวิเคราะห์คำตอบและยืนยันข้อมูลเข้าสู่ระบบ

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

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

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

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

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

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

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