نظرة عامة
يتيح بروتوكول "روابط مواد العرض الرقمية" وواجهة برمجة التطبيقات للتطبيق أو الموقع الإلكتروني نشر بيانات علنية يمكن التحقق منها عن تطبيقات أو مواقع إلكترونية أخرى. على سبيل المثال، يمكن لموقع إلكتروني أن يعلن عن أنّه مرتبط بتطبيق Android محدّد، أو يمكنه الإفصاح عن أنّه يريد مشاركة بيانات اعتماد المستخدم مع موقع إلكتروني آخر.
في ما يلي بعض الاستخدامات الممكنة لميزة "روابط مواد العرض الرقمية":
- يعلن الموقع الإلكتروني "أ" أنّ الروابط المؤدية إلى موقعه الإلكتروني يجب أن تفتح في تطبيق معيّن على الأجهزة الجوّالة إذا كان التطبيق مثبّتًا.
- يعلن الموقع الإلكتروني "أ" أنّه يمكنه مشاركة بيانات اعتماد مستخدم Chrome مع الموقع الإلكتروني "ب" حتى لا يضطر المستخدم إلى تسجيل الدخول إلى الموقع الإلكتروني "ب" في حال تسجيل الدخول إلى الموقع الإلكتروني "أ".
- يشير التطبيق "أ" إلى أنّه يمكنه مشاركة إعدادات الجهاز، مثل الموقع الجغرافي، مع الموقع الإلكتروني "ب".
المصطلحات الرئيسية
- مدير: يكون المحتوى الرئيسي هو التطبيق أو الموقع الإلكتروني الذي يصدر البيان. في روابط الأصول الرقمية، يكون العنصر الأساسي دائمًا هو التطبيق أو الموقع الإلكتروني الذي يستضيف قائمة الكشف.
- قائمة العبارات: تكون العبارات مضمّنة في قائمة العبارات التي تحتوي على عبارة واحدة أو أكثر. قائمة العبارات هي نص واضح ويمكن الوصول إليها بشكل علني، وتوضع في مكان يتحكم فيه المدير ويصعب انتحاله أو التلاعب به. يمكن أن يكون ملفًا مستقلاً أو قسمًا من عنصر آخر أكبر. على سبيل المثال، يكون الملف على موقع إلكتروني كاملاً، أما في تطبيق Android، فهو قسم في بيان التطبيق. يمكن لأي شخص الاطّلاع على البيانات وإثبات ملكيتها باستخدام طرق غير ملكية. يُرجى الاطّلاع على مستندات قائمة الكشف للحصول على مزيد من المعلومات.
- العبارة: العبارة هي بنية JSON منظَّمة بإحكام تتكوّن من relation (ما تنص عليه العبارة فعله، مثل: تفعيل مشاركة بيانات الاعتماد) وrelation (الموقع الإلكتروني أو التطبيق الذي تنطبق عليه العلاقة). لذلك، تكون كل عبارة مثل جملة، حيث يشير principal إلى relation حول target.
- مستهلك البيان: يطلب المستهلك الحصول على قائمة بيان من جهة رئيسية، ويتحقّق من توفُّر عبارة مقارنةً بأساسي معيّن، ويمكنه تنفيذ الإجراء المحدّد إن كان متوفرًا. لمزيد من المعلومات، يمكنك الاطّلاع على البيان الذي يتضمّن المستندات.
مثال على الاستخدام السريع
إليك مثال مبسَّط للغاية لكيفية استخدام الموقع الإلكتروني www.example.com لروابط مواد العرض الرقمية لتحديد أنّ أي روابط تؤدي إلى عناوين URL في ذلك الموقع الإلكتروني يجب فتحها في تطبيق مخصّص بدلاً من المتصفّح:
- ينشر الموقع الإلكتروني www.example.com قائمة بيانات على
https://www.example.com/.well-known/assetlinks.json. هذا هو الاسم الرسمي والموقع الجغرافي لقائمة الكشف على موقع إلكتروني. وقوائم البيان في أي
مكان آخر أو بأي اسم آخر ليست صالحة لهذا الموقع. في المثال الذي عرضناه، تتكوّن قائمة العبارات من عبارة واحدة تمنح تطبيق Android الإذن بفتح الروابط على موقعها الإلكتروني:
[{ "relation": ["delegate_permission/common.handle_all_urls"], "target" : { "namespace": "android_app", "package_name": "com.example.app", "sha256_cert_fingerprints": ["hash_of_app_certificate"] } }]
تتوافق قائمة العبارات مع مجموعة من العبارات ضمن العلامات [ ]، لكنّ ملف النموذج يحتوي على عبارة واحدة فقط.sha256_cert_fingerprints
هي الملفات المرجعية لشهادة SHA256 لشهادة توقيع تطبيقك. يمكنك العثور على مزيد من التفاصيل في مستندات Android App Links. - يحتوي تطبيق Android المدرَج في العبارة أعلاه على فلتر أهداف يحدّد المخطط والمضيف ونمط المسار لعناوين URL التي يريد معالجتها: في هذه الحالة، https://www.example.com. يتضمّن فلتر الأهداف سمة خاصة
android:autoVerify
، جديدة على Android M، والتي تشير إلى أنّه على Android التحقّق من العبارة الواردة في الموقع الإلكتروني الموضّح في فلتر الأهداف عند تثبيت التطبيق. - يثبّت أحد المستخدمين التطبيق. يرى نظام التشغيل Android فلتر الأهداف الذي يتضمّن
السمة
autoVerify
ويتحقّق من توفُّر قائمة العبارات في الموقع الإلكتروني المحدّد. وفي حال توفُّرها، يتحقّق Android مما إذا كان هذا الملف يتضمّن عبارة تتيح التعامل مع الرابط في التطبيق، ويتحقّق من التطبيق مقابل العبارة من خلال تجزئة الشهادة. بعد التحقق من كل شيء، سيعيد Android توجيه أي عناصر https://www.example.com إلى تطبيق example.com. - ينقر المستخدم على رابط إلى https://www.example.com/puppies على جهازه. يمكن أن يكون هذا الرابط في أي مكان: في المتصفح أو في اقتراح Google Search Appliance أو أي مكان آخر. يعيد Android توجيه الهدف إلى تطبيق example.com.
- يتلقّى تطبيق example.com الغرض ويختار التعامل معه ليفتح صفحة الجراء في التطبيق. إذا رفض التطبيق لسبب ما التعامل مع الرابط أو إذا لم يكن التطبيق على الجهاز، سيتم إرسال الرابط إلى معالج النية التلقائي التالي المطابق لنمط النية هذا (غالبًا ما يكون المتصفّح).
اعتبارات وقيود مهمة:
- لا يصادق البروتوكول على الطرف الرئيسي الذي أدلى بالبيان، ولكنّه يقع في مكان محدّد ومرتبط بشكل كبير بالشخص الرئيسي وتحت سيطرة مديره.
- لا يصادق البروتوكول على هدف العبارة، لكنّه يوفر وسيلة للمتصل لمصادقة الهدف (على سبيل المثال، تحدد العبارة أهداف تطبيقات الأجهزة الجوّالة من خلال تجزئة الشهادة واسم الحزمة).
- لا ينفّذ البروتوكول في الأصل أي إجراءات متعلقة بالبيان، بل يتيح إمكانية الكشف عن العبارات التي يجب أن يتحقق منها التطبيق المستهلِك، ثم اتخاذ القرار بشأن ما إذا كان سيتم اتخاذ إجراء بناءً عليها أم لا. ينفِّذ Android M هذه الخطوات في الأصل لك. على سبيل المثال، إذا فوّض موقع إلكتروني معالجة الرابط إلى تطبيق معيّن، يتحقّق Android من العبارة ويتأكّد من صحتها، ويتحقّق من التطبيق المستهدَف، ثم يوفّر للتطبيق خيار التعامل مع الرابط المحدَّد.
- ولا يسمح البروتوكول بالتصريح عن طرفَين ثالثَين: بمعنى أن الموقع الإلكتروني "أ" يمكنه إصدار بيان حول الموقع الإلكتروني "ب"، ولكن الموقع الإلكتروني "أ" لا يمكنه التصريح عن علاقة الموقع الإلكتروني "ب" بالموقع الإلكتروني "ج". في المقابل، إذا كان الموقع الإلكتروني "ب" يثق في الموقع الإلكتروني "أ"، يمكنه مراجعة الموقع الإلكتروني "أ" بحثًا عن عبارة تمنح الإذن للموقع الإلكتروني "ج" واتخاذ قرار بتنفيذ ذلك.