ช่วงทดลองใช้จากต้นทางสำหรับ Digital Credentials API จะเริ่มจาก Chrome 128 Digital Credentials API เป็น API แพลตฟอร์มเว็บใหม่ที่ช่วยให้เว็บไซต์เลือกขอข้อมูลที่ยืนยันได้เกี่ยวกับผู้ใช้ผ่านข้อมูลเข้าสู่ระบบดิจิทัล เช่น ใบขับขี่หรือบัตรประจำตัวประชาชนที่จัดเก็บไว้ในกระเป๋าเงินดิจิทัลได้
ข้อมูลเบื้องต้น
ตัวตนบนโลกดิจิทัลในชีวิตจริงกำลังกลายเป็นความจริงเมื่อหน่วยงานภาครัฐและเอกชนจำนวนมากเริ่มออกเอกสารรับรองดิจิทัลที่ผูกกับอุปกรณ์ ตัวอย่างเช่น ใบขับขี่และบัตรประจำตัวบนอุปกรณ์เคลื่อนที่ในบางรัฐในสหรัฐอเมริกา (เช่น แอริโซนา แคลิฟอร์เนีย โคโลราโด จอร์เจีย และแมริแลนด์) สามารถจัดสรรไปยังแอปกระเป๋าเงินดิจิทัล เช่น Google Wallet บนอุปกรณ์เคลื่อนที่ได้แล้ว นอกจากนี้ยังมีกฎระเบียบเกี่ยวกับการยอมรับข้อมูลเข้าสู่ระบบดิจิทัลสำหรับการยืนยันทางออนไลน์บางรายการและ eIDAS 2.0 ก็เป็นตัวอย่างหนึ่ง
ฟีเจอร์ของเอกสารรับรองดิจิทัลจะขึ้นอยู่กับรูปแบบของเอกสารรับรอง แต่โดยทั่วไปจะรวมถึงสิ่งต่อไปนี้
- ความปลอดภัยและความเป็นส่วนตัวที่มีประสิทธิภาพมากขึ้น: การใช้การเข้ารหัสขั้นสูงและวิธีการตรวจสอบสิทธิ์ที่รัดกุมจะช่วยปกป้องข้อมูลที่ละเอียดอ่อนและรับประกันการเข้าถึงที่ปลอดภัย ตัวอย่างเช่น การแสดงข้อมูลเข้าสู่ระบบมักจะได้รับการปกป้องหลังการตรวจสอบสิทธิ์ผู้ใช้ผ่านแอป 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 ให้ทําตามวิธีการต่อไปนี้
- ติดตั้งแอปพลิเคชัน Wallet สาธิตโดยทำตามวิธีการที่อธิบายไว้ในหน้านี้
- ดาวน์โหลดแอปพลิเคชัน Wallet สาธิตลงในอุปกรณ์ Android
- เรียกใช้คำสั่ง
adb install -t <path-to-apk>
เพื่อติดตั้งแอป
- เปิดแอป IC Wallet และจัดสรรใบขับขี่ดิจิทัล (mDL) ให้เป็นตัวอย่าง
- แตะปุ่มเมนูแล้วเลือกเพิ่มเอกสารที่ลงนามด้วยตนเอง
- ไปที่ https://digital-credentials.dev ด้วย Chrome 128 ขึ้นไป
- กด Request Credentials (OpenID4VP)
ดูการสาธิตที่ใช้ https://digital-credentials.dev ซึ่งเป็นเว็บไซต์ทดสอบสำหรับนักพัฒนาซอฟต์แวร์เพื่อสร้างคำขอข้อมูลเข้าสู่ระบบสำหรับแอตทริบิวต์ต่างๆ
วิธีการทำงานของการสาธิตแบบทีละขั้นตอนมีดังนี้
วิธีการทำงานของ 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 ขึ้นไป
ฟีเจอร์นี้มีให้บริการเป็นช่วงทดลองใช้จากต้นทางด้วย ช่วงทดลองใช้จากต้นทางช่วยให้คุณได้ลองใช้ฟีเจอร์ใหม่ๆ และแสดงความคิดเห็นเกี่ยวกับความสามารถในการใช้งาน การใช้งานจริง และประสิทธิภาพในชุมชนมาตรฐานเว็บ ดูข้อมูลเพิ่มเติมได้ที่เริ่มต้นใช้งานช่วงทดลองใช้จากต้นทาง หากต้องการลงชื่อสมัครใช้ช่วงทดลองใช้จากต้นทางนี้หรือเวอร์ชันอื่น ให้ไปที่หน้าการลงทะเบียน
- ขอโทเค็นสำหรับต้นทาง
- เพิ่มโทเค็นลงในหน้าเว็บ ซึ่งทำได้ 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 โดยเฉพาะ