refresh date: 2026-09-25 robots: noindex
الوصف
استخدِم واجهة برمجة التطبيقات chrome.enterprise.platformKeys لإنشاء مفاتيح وتثبيت شهادات لهذه المفاتيح. سيدير النظام الأساسي الشهادات ويمكن استخدامها لمصادقة بروتوكول أمان طبقة النقل (TLS) أو الوصول إلى الشبكة أو بواسطة إضافة أخرى من خلال chrome.platformKeys.
الأذونات
enterprise.platformKeysمدى التوفّر
الاستخدام
في ما يلي الخطوات التي يجب اتّباعها عند الاستخدام المعتاد لواجهة برمجة التطبيقات هذه لتسجيل شهادة عميل:
احصل على جميع الرموز المميزة المتاحة باستخدام enterprise.platformKeys.getTokens.
ابحث عن الرمز المميّز الذي تكون فيه قيمة
idمساوية"user". استخدِم هذا الرمز المميّز لاحقًا.أنشئ مفتاحَي تشفير باستخدام
generateKeyطريقة الرمز المميز (المحدّدة في SubtleCrypto). سيؤدي ذلك إلى عرض مقبض المفتاح.صدِّر المفتاح العام باستخدام
exportKeyطريقة الرمز المميز (المحدّدة في SubtleCrypto).أنشئ توقيعًا لبيانات طلب شهادة الاعتماد باستخدام
signطريقة الرمز المميز (المحدّدة في SubtleCrypto).أكمِل طلب الحصول على شهادة الاعتماد وأرسِله إلى هيئة إصدار الشهادات.
في حال تلقّي شهادة، استورِدها باستخدام enterprise.platformKeys.importCertificate.
في ما يلي مثال يعرض التفاعل الرئيسي مع واجهة برمجة التطبيقات باستثناء إنشاء طلب الشهادة وإرساله:
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
تمثّل هذه السمة تحديًا كما هو معروض من خلال واجهة برمجة التطبيقات على الويب الخاصة بخدمة التحقّق من الوصول.
-
registerKey
RegisterKeyOptions اختيارية
في حال توفّره، يسجّل المفتاح الذي تم التحقّق منه باستخدام الرمز المميّز
scopeالمحدّد. ويمكن بعد ذلك ربط المفتاح بشهادة واستخدامه مثل أي مفتاح توقيع آخر. بعد ذلك، ستؤدي عمليات الاستدعاء اللاحقة لهذه الدالة إلى إنشاء مفتاح Enterprise جديد فيscopeالمحدّد. -
نطاق
مفتاح المؤسسة الذي سيتم التحقّق منه
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. يمكن استخدام كل مفتاح لتوقيع البيانات مرة واحدة على الأكثر، ما لم تتم إضافة الإضافة إلى القائمة المسموح بها من خلال سياسة KeyPermissions، وفي هذه الحالة يمكن استخدام المفتاح إلى أجل غير مسمى.لا يمكن استخدام المفاتيح التي تم إنشاؤها على
Tokenمعيّن مع أي رموز مميّزة أخرى، كما لا يمكن استخدامها معwindow.crypto.subtle. وبالمثل، لا يمكن استخدام الكائناتKeyالتي تم إنشاؤها باستخدامwindow.crypto.subtleمع هذه الواجهة. -
subtleCrypto
SubtleCrypto
تنفِّذ هذه السمة واجهة SubtleCrypto في WebCrypto. تكون عمليات التشفير، بما في ذلك إنشاء المفاتيح، مستنِدة إلى الأجهزة.
يمكن إنشاء مفاتيح غير قابلة للاستخراج فقط. أنواع المفاتيح المتوافقة هي RSASSA-PKCS1-V1_5 مع
modulusLengthحتى 2048 وECDSA معnamedCurveP-256. يمكن استخدام كل مفتاح لتوقيع البيانات مرة واحدة على الأكثر، ما لم يتم إدراج الإضافة في القائمة المسموح بها بموجب سياسة KeyPermissions، وفي هذه الحالة يمكن استخدام المفتاح إلى أجل غير مسمى.لا يمكن استخدام المفاتيح التي تم إنشاؤها على
Tokenمعيّن مع أي رموز مميّزة أخرى، كما لا يمكن استخدامها معwindow.crypto.subtle. وبالمثل، لا يمكن استخدام الكائناتKeyالتي تم إنشاؤها باستخدامwindow.crypto.subtleمع هذه الواجهة.
الطُرق
challengeKey()
chrome.enterprise.platformKeys.challengeKey(
options: ChallengeKeyOptions,
callback?: function,
): Promise<ArrayBuffer>
تشبه السمتَين challengeMachineKey وchallengeUserKey، ولكنها تتيح تحديد خوارزمية مفتاح مسجّل. تحدّي مفتاح Enterprise Machine Key المستنِد إلى الأجهزة وإصدار الرد كجزء من بروتوكول إثبات صحة عن بُعد لا يمكن استخدامها إلا على ChromeOS وبالتزامن مع واجهة برمجة التطبيقات Verified Access Web API التي تطرح تحديات وتتحقّق من الردود.
يُعدّ التحقّق الناجح من خلال Verified Access Web API إشارة قوية إلى أنّ الجهاز الحالي هو جهاز ChromeOS صالح، وأنّ الجهاز الحالي مُدار من خلال النطاق المحدّد أثناء عملية التحقّق، وأنّ المستخدم الحالي الذي سجّل الدخول مُدار من خلال النطاق المحدّد أثناء عملية التحقّق، وأنّ حالة الجهاز الحالية تتوافق مع سياسة أجهزة المؤسسة. على سبيل المثال، قد تحدّد إحدى السياسات أنّه يجب ألا يكون الجهاز في وضع مطوّر البرامج. إنّ أي معرّف جهاز يتم إصداره من خلال عملية التحقّق يكون مرتبطًا بشكل وثيق بالجهاز الحالي. في حال تحديد نطاق "user"، يتم أيضًا ربط الهوية بشكل وثيق بالمستخدم الحالي الذي سجّل الدخول.
هذه الوظيفة مقيّدة للغاية ولن تنجح إذا لم يكن الجهاز الحالي مُدارًا أو لم يكن المستخدم الحالي مُدارًا أو إذا لم يتم تفعيل هذه العملية بشكل صريح للمتصل من خلال سياسة الجهاز في المؤسسة. لا يوجد المفتاح المطلوب إثبات ملكيته في الرمز المميّز "system" أو "user"، ولا يمكن لأي واجهة برمجة تطبيقات أخرى الوصول إليه.
المعلمات
-
الخيارات
عنصر يحتوي على الحقول المحدّدة في
ChallengeKeyOptions -
callback
الدالة اختيارية
تظهر المَعلمة
callbackعلى النحو التالي:(response: ArrayBuffer) => void
-
رد
ArrayBuffer
ردّ التحدّي
-
المرتجعات
-
Promise<ArrayBuffer>
Chrome 131 والإصدارات الأحدثتعرض هذه الطريقة Promise يتم تنفيذه مع ردّ التحدي.
لا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، بينما تحتاج المنصات الأخرى إلى استخدام عمليات معاودة الاتصال.
challengeMachineKey()
chrome.enterprise.platformKeys.challengeMachineKey(
challenge: ArrayBuffer,
registerKey?: boolean,
callback?: function,
): Promise<ArrayBuffer>
استخدِم challengeKey بدلاً من ذلك.
تحدّي مفتاح Enterprise Machine Key المستنِد إلى الأجهزة وإصدار الرد كجزء من بروتوكول إثبات صحة عن بُعد لا يمكن استخدامها إلا على ChromeOS وبالتزامن مع واجهة برمجة التطبيقات Verified Access Web API التي تطرح تحديات وتتحقّق من الردود. يشير التحقّق الناجح من خلال Verified Access Web API إلى ما يلي: * الجهاز الحالي هو جهاز ChromeOS صالح. * تتم إدارة الجهاز الحالي من خلال النطاق المحدّد أثناء عملية إثبات الملكية. * تتم إدارة المستخدم الحالي الذي سجّل الدخول من خلال النطاق المحدّد أثناء عملية إثبات الملكية. * تتوافق حالة الجهاز الحالية مع سياسة الجهاز في المؤسسة. على سبيل المثال، قد تحدّد إحدى السياسات أنّه يجب ألا يكون الجهاز في وضع مطوّر البرامج. * أي معرّف جهاز يتم إصدارها من خلال عملية التحقّق تكون مرتبطة بشكل وثيق بالجهاز الحالي. هذه الوظيفة مقيّدة للغاية ولن تنجح إذا لم يكن الجهاز الحالي مُدارًا أو لم يكن المستخدم الحالي مُدارًا أو إذا لم يتم تفعيل هذه العملية بشكل صريح للمتصل من خلال سياسة الجهاز في المؤسسة. لا يتوفّر مفتاح الجهاز Enterprise Machine Key في الرمز المميّز "system"، ولا يمكن لأي واجهة برمجة تطبيقات أخرى الوصول إليه.
المعلمات
-
تحدّي
ArrayBuffer
تمثّل هذه السمة تحديًا كما هو معروض من خلال واجهة برمجة التطبيقات على الويب الخاصة بخدمة التحقّق من الوصول.
-
registerKey
boolean اختياري
Chrome 59+في حال ضبط هذا الخيار، يتم تسجيل "مفتاح الجهاز للمؤسسة" الحالي باستخدام الرمز المميّز
"system"ويتم التنازل عن دور "مفتاح الجهاز للمؤسسة". ويمكن بعد ذلك ربط المفتاح بشهادة واستخدامه مثل أي مفتاح توقيع آخر. هذا المفتاح هو مفتاح RSA بحجم 2048 بت. ستؤدي عمليات الاستدعاء اللاحقة لهذه الدالة إلى إنشاء مفتاح جديد لجهاز المؤسسة. -
callback
الدالة اختيارية
تظهر المَعلمة
callbackعلى النحو التالي:(response: ArrayBuffer) => void
-
رد
ArrayBuffer
ردّ التحدّي
-
المرتجعات
-
Promise<ArrayBuffer>
Chrome 131 والإصدارات الأحدثتعرض هذه الطريقة Promise يتم تنفيذه مع ردّ التحدي.
لا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، بينما تحتاج المنصات الأخرى إلى استخدام عمليات معاودة الاتصال.
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" ولا يمكن الوصول إليه من خلال أي واجهة برمجة تطبيقات أخرى.
المعلمات
-
تحدّي
ArrayBuffer
تمثّل هذه السمة تحديًا كما هو معروض من خلال واجهة برمجة التطبيقات على الويب الخاصة بخدمة التحقّق من الوصول.
-
registerKey
قيمة منطقية
في حال ضبطها، يتم تسجيل "مفتاح مستخدم الإصدار الخاص بالمؤسسات" الحالي باستخدام رمز
"user"المميز ويتم التنازل عن دور "مفتاح مستخدم الإصدار الخاص بالمؤسسات". ويمكن بعد ذلك ربط المفتاح بشهادة واستخدامه مثل أي مفتاح توقيع آخر. هذا المفتاح هو مفتاح RSA بحجم 2048 بت. بعد ذلك، ستؤدي المكالمات اللاحقة إلى هذه الدالة إلى إنشاء مفتاح جديد لمستخدم المؤسسة. -
callback
الدالة اختيارية
تظهر المَعلمة
callbackعلى النحو التالي:(response: ArrayBuffer) => void
-
رد
ArrayBuffer
ردّ التحدّي
-
المرتجعات
-
Promise<ArrayBuffer>
Chrome 131 والإصدارات الأحدثتعرض هذه الطريقة Promise يتم تنفيذه مع ردّ التحدي.
لا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، بينما تحتاج المنصات الأخرى إلى استخدام عمليات معاودة الاتصال.
getCertificates()
chrome.enterprise.platformKeys.getCertificates(
tokenId: string,
callback?: function,
): Promise<ArrayBuffer[]>
تعرض هذه الطريقة قائمة بجميع شهادات العميل المتاحة من الرمز المميّز المحدّد. يمكن استخدامها للتحقّق من توفّر شهادات جهاز العميل التي يمكن استخدامها في مصادقة معيّنة ومن تاريخ انتهاء صلاحيتها.
المعلمات
-
tokenId
سلسلة
معرّف الرمز المميز الذي يعرضه
getTokens. -
callback
الدالة اختيارية
تظهر المَعلمة
callbackعلى النحو التالي:(certificates: ArrayBuffer[]) => void
-
الشهادات
ArrayBuffer[]
قائمة الشهادات، كل منها بترميز DER لشهادة X.509
-
المرتجعات
-
Promise<ArrayBuffer[]>
Chrome 131 والإصدارات الأحدثتعرض هذه الطريقة Promise يتم تنفيذه مع قائمة الشهادات المتاحة.
لا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، بينما تحتاج المنصات الأخرى إلى استخدام عمليات معاودة الاتصال.
getTokens()
chrome.enterprise.platformKeys.getTokens(
callback?: function,
): Promise<Token[]>
تعرض هذه الطريقة الرموز المميزة المتاحة. في جلسة مستخدم عادية، ستتضمّن القائمة دائمًا رمز المستخدم مع id "user". إذا كان الرمز المميّز لوحدة النظام الأساسي الموثوقة (TPM) على مستوى النظام متاحًا، ستتضمّن القائمة التي يتم عرضها أيضًا الرمز المميّز على مستوى النظام مع id "system". سيكون الرمز المميز على مستوى النظام هو نفسه لجميع الجلسات على هذا الجهاز (الجهاز بمعنى Chromebook مثلاً).
المعلمات
-
callback
الدالة اختيارية
تظهر المَعلمة
callbackعلى النحو التالي:(tokens: Token[]) => void
-
الرموز المميزة
قائمة الرموز المميزة المتاحة
-
المرتجعات
-
Promise<Token[]>
Chrome 131 والإصدارات الأحدثيتم استدعاؤها من خلال
getTokensمع قائمة الرموز المميزة المتاحة.لا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، بينما تحتاج المنصات الأخرى إلى استخدام عمليات معاودة الاتصال.
importCertificate()
chrome.enterprise.platformKeys.importCertificate(
tokenId: string,
certificate: ArrayBuffer,
callback?: function,
): Promise<void>
يستورد certificate إلى الرمز المميز المحدّد إذا كان المفتاح المعتمَد مخزَّنًا في هذا الرمز المميز. بعد إتمام طلب الشهادة بنجاح، يجب استخدام هذه الدالة لتخزين الشهادة التي تم الحصول عليها وإتاحتها لنظام التشغيل والمتصفّح من أجل المصادقة.
المعلمات
-
tokenId
سلسلة
معرّف الرمز المميز الذي يعرضه
getTokens. -
الشهادة
ArrayBuffer
ترميز DER لشهادة X.509
-
callback
الدالة اختيارية
تظهر المَعلمة
callbackعلى النحو التالي:() => void
المرتجعات
-
Promise<void>
Chrome 131 والإصدارات الأحدثتعرض هذه الطريقة Promise يتم تنفيذه عند انتهاء هذه العملية.
لا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، بينما تحتاج المنصات الأخرى إلى استخدام عمليات معاودة الاتصال.
removeCertificate()
chrome.enterprise.platformKeys.removeCertificate(
tokenId: string,
certificate: ArrayBuffer,
callback?: function,
): Promise<void>
تزيل هذه الدالة certificate من الرمز المميّز المحدّد إذا كان متوفّرًا. يجب استخدامها لإزالة الشهادات القديمة حتى لا يتم أخذها في الاعتبار أثناء المصادقة ولا تؤدي إلى تشويش خيار الشهادة. يجب استخدامها لتوفير مساحة تخزين في مخزن الشهادات.
المعلمات
-
tokenId
سلسلة
معرّف الرمز المميز الذي يعرضه
getTokens. -
الشهادة
ArrayBuffer
ترميز DER لشهادة X.509
-
callback
الدالة اختيارية
تظهر المَعلمة
callbackعلى النحو التالي:() => void
المرتجعات
-
Promise<void>
Chrome 131 والإصدارات الأحدثتعرض هذه الطريقة Promise يتم تنفيذه عند انتهاء هذه العملية.
لا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، بينما تحتاج المنصات الأخرى إلى استخدام عمليات معاودة الاتصال.