refresh date: 2026-09-25 robots: noindex
คำอธิบาย
ใช้ chrome.enterprise.platformKeys API เพื่อสร้างคีย์และติดตั้งใบรับรองสำหรับคีย์เหล่านี้ แพลตฟอร์มจะจัดการใบรับรองและสามารถใช้สำหรับการตรวจสอบสิทธิ์ TLS, การเข้าถึงเครือข่าย หรือโดยส่วนขยายอื่นๆ ผ่าน chrome.platformKeys
สิทธิ์
enterprise.platformKeysความพร้อมใช้งาน
การใช้งาน
การใช้งาน API นี้โดยทั่วไปเพื่อลงทะเบียนใบรับรองไคลเอ็นต์จะเป็นไปตามขั้นตอนต่อไปนี้
รับโทเค็นทั้งหมดที่มีโดยใช้ enterprise.platformKeys.getTokens
ค้นหาโทเค็นที่มี
idเท่ากับ"user"ใช้โทเค็นนี้ในภายหลังสร้างคู่คีย์โดยใช้วิธีการ
generateKeyToken (กำหนดไว้ใน SubtleCrypto) การดำเนินการนี้จะแสดงแฮนเดิลของคีย์ส่งออกคีย์สาธารณะโดยใช้เมธอด
exportKeyToken (กำหนดไว้ใน SubtleCrypto)สร้างลายเซ็นของข้อมูลคำขอการรับรองโดยใช้เมธอด
signToken (กำหนดไว้ใน SubtleCrypto)กรอกคำขอการรับรองให้เสร็จสมบูรณ์และส่งไปยังหน่วยงานที่ให้การรับรอง
หากได้รับใบรับรอง ให้นำเข้าโดยใช้ enterprise.platformKeys.importCertificate
ต่อไปนี้เป็นตัวอย่างที่แสดงการโต้ตอบ API หลัก ยกเว้นการสร้างและการส่งคำขอการรับรอง
function getUserToken(callback) {
chrome.enterprise.platformKeys.getTokens(function(tokens) {
for (var i = 0; i < tokens.length; i++) {
if (tokens[i].id == "user") {
callback(tokens[i]);
return;
}
}
callback(undefined);
});
}
function generateAndSign(userToken) {
var data = new Uint8Array([0, 5, 1, 2, 3, 4, 5, 6]);
var algorithm = {
name: "RSASSA-PKCS1-v1_5",
// RsaHashedKeyGenParams
modulusLength: 2048,
publicExponent:
new Uint8Array([0x01, 0x00, 0x01]), // Equivalent to 65537
hash: {
name: "SHA-256",
}
};
var cachedKeyPair;
userToken.subtleCrypto.generateKey(algorithm, false, ["sign"])
.then(function(keyPair) {
cachedKeyPair = keyPair;
return userToken.subtleCrypto.exportKey("spki", keyPair.publicKey);
},
console.log.bind(console))
.then(function(publicKeySpki) {
// Build the Certification Request using the public key.
return userToken.subtleCrypto.sign(
{name : "RSASSA-PKCS1-v1_5"}, cachedKeyPair.privateKey, data);
},
console.log.bind(console))
.then(function(signature) {
// Complete the Certification Request with |signature|.
// Send out the request to the CA, calling back
// onClientCertificateReceived.
},
console.log.bind(console));
}
function onClientCertificateReceived(userToken, certificate) {
chrome.enterprise.platformKeys.importCertificate(userToken.id, certificate);
}
getUserToken(generateAndSign);
ประเภท
Algorithm
ประเภทคีย์ที่จะสร้าง
ค่าแจกแจง
"RSA"
"ECDSA"
ChallengeKeyOptions
พร็อพเพอร์ตี้
-
ชาเลนจ์
ArrayBuffer
คำถามที่ส่งโดย Verified Access Web API
-
registerKey
RegisterKeyOptions ไม่บังคับ
หากมี ให้ลงทะเบียนคีย์ที่ถูกตรวจสอบด้วยโทเค็นของ
scopeที่ระบุ จากนั้นคุณจะเชื่อมโยงคีย์กับใบรับรองและใช้คีย์ดังกล่าวได้เหมือนกับคีย์ Signing อื่นๆ การเรียกใช้ฟังก์ชันนี้ในครั้งต่อๆ ไปจะสร้างคีย์ Enterprise ใหม่ในscopeที่ระบุ -
ขอบเขต
คีย์ Enterprise ที่จะทดสอบ
RegisterKeyOptions
พร็อพเพอร์ตี้
-
อัลกอริทึม
อัลกอริทึมที่คีย์ที่ลงทะเบียนควรใช้
Scope
เลือกว่าจะใช้ Enterprise User Key หรือ Enterprise Machine Key
ค่าแจกแจง
"USER"
"MACHINE"
Token
พร็อพเพอร์ตี้
-
id
สตริง
ระบุ
Tokenนี้แบบไม่ซ้ำรหัสแบบคงที่คือ
"user"และ"system"ซึ่งหมายถึงโทเค็นฮาร์ดแวร์เฉพาะผู้ใช้ของแพลตฟอร์มและโทเค็นฮาร์ดแวร์ทั้งระบบตามลำดับenterprise.platformKeys.getTokensอาจแสดงผลโทเค็นอื่นๆ (ที่มีตัวระบุอื่นๆ) -
softwareBackedSubtleCrypto
SubtleCrypto
Chrome 97 ขึ้นไปใช้อินเทอร์เฟซ SubtleCrypto ของ WebCrypto การดำเนินการเข้ารหัส รวมถึงการสร้างคีย์ จะได้รับการสนับสนุนโดยซอฟต์แวร์ การปกป้องคีย์และการใช้พร็อพเพอร์ตี้ที่แยกไม่ได้จะดำเนินการในซอฟต์แวร์ ดังนั้นคีย์จึงได้รับการปกป้องน้อยกว่าคีย์อิงฮาร์ดแวร์
สร้างได้เฉพาะคีย์ที่แยกไม่ได้เท่านั้น ประเภทคีย์ที่รองรับมีเพียง RSASSA-PKCS1-V1_5 ที่มี
modulusLengthสูงสุด 2048 คีย์แต่ละรายการใช้สำหรับการรับรองข้อมูลได้สูงสุด 1 ครั้ง เว้นแต่ว่าส่วนขยายจะอยู่ในรายการที่อนุญาตผ่านนโยบาย KeyPermissions ซึ่งในกรณีนี้จะใช้คีย์ได้ไม่จำกัดคีย์ที่สร้างใน
Tokenหนึ่งๆ จะใช้กับโทเค็นอื่นไม่ได้ และจะใช้กับwindow.crypto.subtleไม่ได้เช่นกัน ในทำนองเดียวกัน ออบเจ็กต์Keyที่สร้างด้วยwindow.crypto.subtleจะใช้กับอินเทอร์เฟซนี้ไม่ได้ -
subtleCrypto
SubtleCrypto
ใช้อินเทอร์เฟซ SubtleCrypto ของ WebCrypto การดำเนินการเข้ารหัส รวมถึงการสร้างคีย์ จะได้รับการสนับสนุนโดยฮาร์ดแวร์
สร้างได้เฉพาะคีย์ที่แยกไม่ได้เท่านั้น ประเภทคีย์ที่รองรับคือ RSASSA-PKCS1-V1_5 ที่มี
modulusLengthสูงสุด 2048 และ ECDSA ที่มีnamedCurveP-256 คีย์แต่ละรายการจะใช้สำหรับการลงนามข้อมูลได้ไม่เกิน 1 ครั้ง เว้นแต่ว่าส่วนขยายจะอยู่ในรายการที่อนุญาตโดยนโยบาย KeyPermissions ซึ่งในกรณีนี้จะใช้คีย์ได้ไม่จำกัดคีย์ที่สร้างใน
Tokenหนึ่งๆ จะใช้กับโทเค็นอื่นไม่ได้ และจะใช้กับwindow.crypto.subtleไม่ได้เช่นกัน ในทำนองเดียวกัน ออบเจ็กต์Keyที่สร้างด้วยwindow.crypto.subtleจะใช้กับอินเทอร์เฟซนี้ไม่ได้
เมธอด
challengeKey()
chrome.enterprise.platformKeys.challengeKey(
options: ChallengeKeyOptions,
callback?: function,
): Promise<ArrayBuffer>
คล้ายกับ challengeMachineKey และ challengeUserKey แต่ช่วยให้ระบุอัลกอริทึมของคีย์ที่ลงทะเบียนได้ ตรวจสอบคีย์เครื่องขององค์กรที่อิงฮาร์ดแวร์และแสดงการตอบกลับเป็นส่วนหนึ่งของโปรโตคอลการรับรองระยะไกล มีประโยชน์เฉพาะใน ChromeOS และเมื่อใช้ร่วมกับ Verified Access Web API ซึ่งทั้งส่งคำถามและยืนยันคำตอบ
การยืนยันที่สำเร็จโดย Verified Access Web API เป็นสัญญาณที่ชัดเจนว่าอุปกรณ์ปัจจุบันเป็นอุปกรณ์ ChromeOS ที่ถูกต้องตามกฎหมาย อุปกรณ์ปัจจุบันได้รับการจัดการโดยโดเมนที่ระบุในระหว่างการยืนยัน ผู้ใช้ที่ลงชื่อเข้าใช้ในปัจจุบันได้รับการจัดการโดยโดเมนที่ระบุในระหว่างการยืนยัน และสถานะอุปกรณ์ปัจจุบันเป็นไปตามนโยบายด้านอุปกรณ์ขององค์กร เช่น นโยบายอาจระบุว่าอุปกรณ์ต้องไม่อยู่ในโหมดนักพัฒนาซอฟต์แวร์ ข้อมูลประจำตัวของอุปกรณ์ที่ได้จากการยืนยันจะเชื่อมโยงกับฮาร์ดแวร์ของอุปกรณ์ปัจจุบันอย่างแน่นหนา หากระบุขอบเขต "user" ข้อมูลประจำตัวจะเชื่อมโยงกับผู้ใช้ที่ลงชื่อเข้าใช้อยู่ในปัจจุบันอย่างแน่นหนาด้วย
ฟังก์ชันนี้ถูกจำกัดอย่างเข้มงวดและจะดำเนินการไม่สำเร็จหากอุปกรณ์ปัจจุบันไม่มีการจัดการ ผู้ใช้ปัจจุบันไม่มีการจัดการ หรือหากนโยบายด้านอุปกรณ์ขององค์กรไม่ได้เปิดใช้การดำเนินการนี้อย่างชัดแจ้งสำหรับผู้เรียกใช้ คีย์ที่ถูกตรวจสอบไม่ได้อยู่ในโทเค็น "system" หรือ "user" และ API อื่นๆ ไม่สามารถเข้าถึงได้
พารามิเตอร์
-
ตัวเลือก
ออบเจ็กต์ที่มีช่องที่กำหนดไว้ใน
ChallengeKeyOptions -
callback
function ไม่บังคับ
พารามิเตอร์
callbackจะมีลักษณะดังนี้(response: ArrayBuffer) => void
-
การตอบกลับ
ArrayBuffer
การดำเนินการเพื่อเข้าสู่ระบบ
-
การคืนสินค้า
-
Promise<ArrayBuffer>
Chrome 131 ขึ้นไปแสดงผล Promise ซึ่งจะได้รับการแก้ไขด้วยการตอบกลับการตรวจสอบสิทธิ์
ระบบรองรับ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้ Callback
challengeMachineKey()
chrome.enterprise.platformKeys.challengeMachineKey(
challenge: ArrayBuffer,
registerKey?: boolean,
callback?: function,
): Promise<ArrayBuffer>
โปรดใช้ challengeKey แทน
ตรวจสอบคีย์เครื่องขององค์กรที่อิงฮาร์ดแวร์และแสดงการตอบกลับเป็นส่วนหนึ่งของโปรโตคอลการรับรองระยะไกล มีประโยชน์เฉพาะใน ChromeOS และเมื่อใช้ร่วมกับ Verified Access Web API ซึ่งทั้งส่งคำถามและยืนยันคำตอบ การยืนยันที่สำเร็จโดย Verified Access Web API เป็นสัญญาณที่ชัดเจนว่า * อุปกรณ์ปัจจุบันเป็นอุปกรณ์ ChromeOS ที่ถูกต้อง * อุปกรณ์ปัจจุบันได้รับการจัดการโดยโดเมนที่ระบุในระหว่างการยืนยัน * ผู้ใช้ที่ลงชื่อเข้าใช้อยู่ในปัจจุบันได้รับการจัดการโดยโดเมนที่ระบุในระหว่างการยืนยัน * สถานะปัจจุบันของอุปกรณ์เป็นไปตามนโยบายด้านอุปกรณ์ขององค์กร เช่น นโยบายอาจระบุว่าอุปกรณ์ต้องไม่อยู่ในโหมดนักพัฒนาซอฟต์แวร์ * ข้อมูลประจำตัวของอุปกรณ์ที่ได้จากการยืนยันจะเชื่อมโยงกับฮาร์ดแวร์ของอุปกรณ์ปัจจุบันอย่างแน่นหนา ฟังก์ชันนี้ถูกจำกัดอย่างเข้มงวดและจะดำเนินการไม่สำเร็จหากอุปกรณ์ปัจจุบันไม่มีการจัดการ ผู้ใช้ปัจจุบันไม่มีการจัดการ หรือหากนโยบายด้านอุปกรณ์ขององค์กรไม่ได้เปิดใช้การดำเนินการนี้อย่างชัดแจ้งสำหรับผู้เรียกใช้ คีย์เครื่องขององค์กรไม่ได้อยู่ในโทเค็น "system" และ API อื่นๆ ไม่สามารถเข้าถึงได้
พารามิเตอร์
-
ชาเลนจ์
ArrayBuffer
คำถามที่ส่งโดย Verified Access Web API
-
registerKey
บูลีน ไม่บังคับ
Chrome 59 ขึ้นไปหากตั้งค่าไว้ คีย์เครื่องขององค์กรปัจจุบันจะลงทะเบียนด้วยโทเค็น
"system"และสละบทบาทคีย์เครื่องขององค์กร จากนั้นคุณจะเชื่อมโยงคีย์กับใบรับรองและใช้คีย์ดังกล่าวได้เหมือนกับคีย์ Signing อื่นๆ คีย์นี้เป็น RSA 2048 บิต จากนั้นการเรียกใช้ฟังก์ชันนี้ในครั้งต่อๆ ไปจะสร้างคีย์เครื่องขององค์กรใหม่ -
callback
function ไม่บังคับ
พารามิเตอร์
callbackจะมีลักษณะดังนี้(response: ArrayBuffer) => void
-
การตอบกลับ
ArrayBuffer
การดำเนินการเพื่อเข้าสู่ระบบ
-
การคืนสินค้า
-
Promise<ArrayBuffer>
Chrome 131 ขึ้นไปแสดงผล Promise ซึ่งจะได้รับการแก้ไขด้วยการตอบกลับการตรวจสอบสิทธิ์
ระบบรองรับ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้ Callback
challengeUserKey()
chrome.enterprise.platformKeys.challengeUserKey(
challenge: ArrayBuffer,
registerKey: boolean,
callback?: function,
): Promise<ArrayBuffer>
โปรดใช้ challengeKey แทน
ตรวจสอบคีย์ผู้ใช้ระดับองค์กรที่อิงฮาร์ดแวร์และส่งการตอบกลับเป็นส่วนหนึ่งของโปรโตคอลการรับรองระยะไกล มีประโยชน์เฉพาะใน ChromeOS และเมื่อใช้ร่วมกับ Verified Access Web API ซึ่งทั้งส่งคำถามและยืนยันคำตอบ การยืนยันที่สำเร็จโดย Verified Access Web API เป็นสัญญาณที่ชัดเจนว่า * อุปกรณ์ปัจจุบันเป็นอุปกรณ์ ChromeOS ที่ถูกต้อง * อุปกรณ์ปัจจุบันได้รับการจัดการโดยโดเมนที่ระบุในระหว่างการยืนยัน * ผู้ใช้ที่ลงชื่อเข้าใช้อยู่ในปัจจุบันได้รับการจัดการโดยโดเมนที่ระบุในระหว่างการยืนยัน * สถานะปัจจุบันของอุปกรณ์เป็นไปตามนโยบายผู้ใช้ระดับองค์กร เช่น นโยบายอาจระบุว่าอุปกรณ์ต้องไม่อยู่ในโหมดนักพัฒนาซอฟต์แวร์ * คีย์สาธารณะที่ได้จากการยืนยันจะเชื่อมโยงกับฮาร์ดแวร์ของอุปกรณ์ปัจจุบันและผู้ใช้ที่ลงชื่อเข้าใช้ในปัจจุบันอย่างแน่นหนา ฟังก์ชันนี้ถูกจำกัดอย่างเข้มงวดและจะดำเนินการไม่สำเร็จหากอุปกรณ์ปัจจุบันไม่มีการจัดการ ผู้ใช้ปัจจุบันไม่มีการจัดการ หรือหากนโยบายผู้ใช้ระดับองค์กรไม่ได้เปิดใช้การดำเนินการนี้อย่างชัดแจ้งสำหรับผู้โทร คีย์ผู้ใช้ระดับองค์กรไม่ได้อยู่ในโทเค็น "user" และ API อื่นๆ จะเข้าถึงไม่ได้
พารามิเตอร์
-
ชาเลนจ์
ArrayBuffer
คำถามที่ส่งโดย Verified Access Web API
-
registerKey
บูลีน
หากตั้งค่าไว้ ระบบจะลงทะเบียนคีย์ผู้ใช้ระดับองค์กรปัจจุบันด้วยโทเค็น
"user"และสละบทบาทคีย์ผู้ใช้ระดับองค์กร จากนั้นคุณจะเชื่อมโยงคีย์กับใบรับรองและใช้คีย์ดังกล่าวได้เหมือนกับคีย์ Signing อื่นๆ คีย์นี้เป็น RSA 2048 บิต การเรียกใช้ฟังก์ชันนี้ในครั้งต่อๆ ไปจะสร้างคีย์ผู้ใช้ระดับองค์กรใหม่ -
callback
function ไม่บังคับ
พารามิเตอร์
callbackจะมีลักษณะดังนี้(response: ArrayBuffer) => void
-
การตอบกลับ
ArrayBuffer
การดำเนินการเพื่อเข้าสู่ระบบ
-
การคืนสินค้า
-
Promise<ArrayBuffer>
Chrome 131 ขึ้นไปแสดงผล Promise ซึ่งจะได้รับการแก้ไขด้วยการตอบกลับการตรวจสอบสิทธิ์
ระบบรองรับ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้ Callback
getCertificates()
chrome.enterprise.platformKeys.getCertificates(
tokenId: string,
callback?: function,
): Promise<ArrayBuffer[]>
แสดงรายการใบรับรองไคลเอ็นต์ทั้งหมดที่ใช้ได้จากโทเค็นที่ระบุ ใช้เพื่อตรวจสอบการมีอยู่และวันหมดอายุของใบรับรองไคลเอ็นต์ที่ใช้ได้สำหรับการตรวจสอบสิทธิ์บางอย่าง
พารามิเตอร์
-
tokenId
สตริง
รหัสของโทเค็นที่แสดงผลโดย
getTokens -
callback
function ไม่บังคับ
พารามิเตอร์
callbackจะมีลักษณะดังนี้(certificates: ArrayBuffer[]) => void
-
ใบรับรอง
ArrayBuffer[]
รายการใบรับรอง โดยแต่ละรายการอยู่ในการเข้ารหัส DER ของใบรับรอง X.509
-
การคืนสินค้า
-
Promise<ArrayBuffer[]>
Chrome 131 ขึ้นไปแสดงผล Promise ซึ่งจะแก้ไขด้วยรายการใบรับรองที่ใช้ได้
ระบบรองรับ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้ Callback
getTokens()
chrome.enterprise.platformKeys.getTokens(
callback?: function,
): Promise<Token[]>
แสดงผลโทเค็นที่ใช้ได้ ในเซสชันของผู้ใช้ทั่วไป รายการจะมีโทเค็นของผู้ใช้ที่มี id "user" เสมอ หากมีโทเค็น TPM ทั่วทั้งระบบ รายการที่แสดงผลจะมีโทเค็นทั่วทั้งระบบที่มี id "system" ด้วย โทเค็นทั้งระบบจะเหมือนกันทั้งหมดสำหรับทุกเซสชันในอุปกรณ์นี้ (อุปกรณ์ในความหมาย เช่น Chromebook)
พารามิเตอร์
การคืนสินค้า
-
Promise<Token[]>
Chrome 131 ขึ้นไปเรียกใช้โดย
getTokensพร้อมรายการโทเค็นที่ใช้ได้ระบบรองรับ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้ Callback
importCertificate()
chrome.enterprise.platformKeys.importCertificate(
tokenId: string,
certificate: ArrayBuffer,
callback?: function,
): Promise<void>
นำเข้า certificate ไปยังโทเค็นที่ระบุหากคีย์ที่ผ่านการรับรองจัดเก็บไว้ในโทเค็นนี้แล้ว หลังจากส่งคำขอการรับรองสำเร็จแล้ว ควรใช้ฟังก์ชันนี้เพื่อจัดเก็บใบรับรองที่ได้รับ และทำให้ใบรับรองพร้อมใช้งานในระบบปฏิบัติการและเบราว์เซอร์สำหรับการตรวจสอบสิทธิ์
พารามิเตอร์
-
tokenId
สตริง
รหัสของโทเค็นที่แสดงผลโดย
getTokens -
ใบรับรอง
ArrayBuffer
การเข้ารหัส DER ของใบรับรอง X.509
-
callback
function ไม่บังคับ
พารามิเตอร์
callbackจะมีลักษณะดังนี้() => void
การคืนสินค้า
-
Promise<void>
Chrome 131 ขึ้นไปแสดงผล Promise ซึ่งจะได้รับการแก้ไขเมื่อการดำเนินการนี้เสร็จสิ้น
ระบบรองรับ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้ Callback
removeCertificate()
chrome.enterprise.platformKeys.removeCertificate(
tokenId: string,
certificate: ArrayBuffer,
callback?: function,
): Promise<void>
นำ certificate ออกจากโทเค็นที่ระบุ หากมี ควรใช้เพื่อนำใบรับรองที่ล้าสมัยออก เพื่อไม่ให้ระบบพิจารณาใบรับรองดังกล่าวในระหว่างการตรวจสอบสิทธิ์และไม่ทำให้ตัวเลือกใบรับรองรก ควรใช้เพื่อเพิ่มพื้นที่เก็บข้อมูลในที่เก็บใบรับรอง
พารามิเตอร์
-
tokenId
สตริง
รหัสของโทเค็นที่แสดงผลโดย
getTokens -
ใบรับรอง
ArrayBuffer
การเข้ารหัส DER ของใบรับรอง X.509
-
callback
function ไม่บังคับ
พารามิเตอร์
callbackจะมีลักษณะดังนี้() => void
การคืนสินค้า
-
Promise<void>
Chrome 131 ขึ้นไปแสดงผล Promise ซึ่งจะได้รับการแก้ไขเมื่อการดำเนินการนี้เสร็จสิ้น
ระบบรองรับ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้ Callback