เผยแพร่: 4 กันยายน 2024 อัปเดตล่าสุด: 16 ตุลาคม 2024
ช่วงทดลองใช้จากต้นทางสําหรับ 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 ส่งคำขอ เบราว์เซอร์จะส่งคำขอไปยังระบบปฏิบัติการบนอุปกรณ์เคลื่อนที่ซึ่งจะค้นหาข้อมูลเข้าสู่ระบบที่ตรงกันในแอปพลิเคชันเวิล์ตที่ติดตั้งไว้ หากพบ ระบบปฏิบัติการบนอุปกรณ์เคลื่อนที่จะแจ้งให้ผู้ใช้เลือกและส่งคำขอไปยังกระเป๋าเงินที่ผู้ใช้เลือก หลังจากการตรวจสอบสิทธิ์ในเครื่องแล้ว กระเป๋าสตางค์จะแสดงการตอบกลับที่มีข้อมูลเข้าสู่ระบบที่ขอ
โดย 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 ให้ทำตามวิธีการต่อไปนี้
- ติดตั้งแอปพลิเคชันเวิร์กช็อปกระเป๋าสตางค์โดยทำตามวิธีการ
- ดาวน์โหลดแอปพลิเคชันเวิร์กช็อปกระเป๋าสตางค์จำลองลงในอุปกรณ์ Android ดูซอร์สโค้ดได้ที่ที่เก็บข้อมูลเข้าสู่ระบบของมูลนิธิ OpenWallet
- เรียกใช้คําสั่ง
adb install -t <path-to-apk>
เพื่อติดตั้งแอป
- เปิดแอป IC Wallet และจัดสรรใบขับขี่ดิจิทัล (mDL) จำลอง
- แตะปุ่มเมนูแล้วเลือกเพิ่มเอกสารที่ลงนามด้วยตนเอง
- ไปที่ https://digital-credentials.dev ด้วย Chrome เวอร์ชัน 128 ขึ้นไป
- กดขอข้อมูลเข้าสู่ระบบ (OpenID4VP)
ดูการสาธิตที่ใช้ https://digital-credentials.dev ซึ่งเป็นเว็บไซต์ทดสอบสำหรับนักพัฒนาแอปในการสร้างคำขอข้อมูลเข้าสู่ระบบสำหรับแอตทริบิวต์ต่างๆ
วิธีการทํางานแบบทีละขั้นตอนของเดโมมีดังนี้
วิธีการทำงานของ API
Digital Credentials API สร้างขึ้นจากรากฐานของ Credential Management API แต่มาจากแพลตฟอร์ม API อิสระ: navigator.identity
การเรียกใช้ navigator.identity.get()
จะทำให้เว็บไซต์สามารถขอข้อมูลเข้าสู่ระบบดิจิทัลที่จัดเก็บไว้ในแอปกระเป๋าเงินบนอุปกรณ์เคลื่อนที่ได้
// 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
โปรดดูข้อกำหนด OpenID สำหรับการแสดงข้อมูลที่ตรวจสอบได้ (OID4VP) สำหรับ W3C Digital Credentials API เพื่อดูวิธีแยกวิเคราะห์การตอบกลับและยืนยันข้อมูลเข้าสู่ระบบ
Chrome ใน Android รองรับ Digital Credentials API เป็นช่วงทดลองใช้จากต้นทาง Chrome ในเดสก์ท็อปและ iOS ยังไม่รองรับในขณะนี้ สำหรับเครื่องมือเบราว์เซอร์อื่นๆ จะมีการอำนวยความสะดวกในการสนทนาที่ดำเนินอยู่ผ่านกลุ่มชุมชน W3C Web Incubator
เข้าร่วมช่วงทดลองใช้จากต้นทาง
สําหรับการพัฒนา คุณสามารถเปิดใช้ Digital Credentials API ในเครื่องได้โดยเปิด Chrome Flag chrome://flags#web-identity-digital-credentials
ใน Chrome เวอร์ชัน 128 ขึ้นไป
ฟีเจอร์นี้ยังพร้อมให้ใช้งานเป็นการทดลองใช้ต้นทางด้วย ช่วงทดลองใช้จากต้นทางช่วยให้คุณลองใช้ฟีเจอร์ใหม่ๆ และแสดงความคิดเห็นเกี่ยวกับความสามารถในการใช้งาน ประโยชน์ และประสิทธิภาพของฟีเจอร์ดังกล่าวต่อชุมชนมาตรฐานเว็บ โปรดดูข้อมูลเพิ่มเติมที่หัวข้อเริ่มต้นใช้งานการทดลองใช้ต้นทาง หากต้องการลงชื่อสมัครใช้ช่วงทดลองใช้นี้หรือช่วงทดลองใช้ต้นทางอื่นๆ โปรดไปที่หน้าการลงทะเบียน
- ขอโทเค็นสำหรับต้นทาง
- เพิ่มโทเค็นลงในหน้าเว็บ ซึ่งทำได้ 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 โดยเฉพาะ