الخطوات الأولى

نظرة عامة

يتيح بروتوكول Digital Asset Links وواجهة برمجة التطبيقات للتطبيق أو الموقع الإلكتروني تقديم بيانات يمكن التحقّق منها ومتاحة للجميع بشأن تطبيقات أو مواقع إلكترونية أخرى. على سبيل المثال، يمكن لموقع إلكتروني أن يعلن عن أنّه مرتبط بتطبيق Android معيّن، أو أن يعلن عن أنّه يريد مشاركة بيانات اعتماد المستخدم مع موقع إلكتروني آخر.

في ما يلي بعض الاستخدامات المحتملة لـ "روابط تنقل إلى مواد عرض رقمية":

  • يعلن الموقع الإلكتروني (أ) أنّ الروابط المؤدية إلى موقعه الإلكتروني يجب أن تُفتح في تطبيق محدّد على الأجهزة الجوّالة، إذا كان التطبيق مثبّتًا.
  • يعلن الموقع الإلكتروني (أ) أنّه يمكنه مشاركة بيانات اعتماد مستخدم Chrome مع الموقع الإلكتروني (ب) حتى لا يضطر المستخدم إلى تسجيل الدخول إلى الموقع الإلكتروني (ب) إذا كان مسجّلاً الدخول إلى الموقع الإلكتروني (أ).
  • يعلن التطبيق (أ) أنّه يمكنه مشاركة إعدادات الجهاز، مثل الموقع الجغرافي، مع الموقع الإلكتروني (ب).

العبارات الرئيسية

  • الجهة الرئيسية: هي التطبيق أو الموقع الإلكتروني الذي يصدر البيان. في Digital Asset Links، يكون الجهة الرئيسية دائمًا هي التطبيق أو الموقع الإلكتروني الذي يستضيف قائمة البيانات.
  • قائمة الجُمل: يتم تضمين الجُمل في قائمة جُمل تحتوي على جملة واحدة أو أكثر. قائمة البيانات هي نص عادي ومتاحة للجميع، وفي موقع جغرافي يتحكّم فيه الجهة الرئيسية ويصعب تزويره أو التلاعب به. يمكن أن يكون ملفًا مستقلاً أو قسمًا من عنصر آخر أكبر. على سبيل المثال، في الموقع الإلكتروني، يكون ملفًا كاملاً، وفي تطبيق Android، يكون قسمًا في بيان التطبيق. يمكن لأي شخص الاطّلاع على البيانات والتحقّق منها باستخدام طرق غير مملوكة. مزيد من المعلومات حول قائمة الكشوفات
  • البيان: البيان هو بنية JSON منظَّمة بإحكام تتألف من علاقة (ما يطلبه البيان، مثلاً: تفعيل مشاركة بيانات الاعتماد) وهدف (الموقع الإلكتروني أو التطبيق الذي تنطبق عليه العلاقة). لذلك، كل عبارة تشبه جملة، حيث يشير الموضوع إلى العلاقة بينه وبين الهدف.
  • مستهلك البيان: يطلب مستهلك البيان قائمة بيانات من جهة أساسية، ويتأكّد من توفّر بيان خاص بجهة أساسية معيّنة، وإذا كان متوفّرًا، يمكنه تنفيذ الإجراء المحدّد. مزيد من المعلومات حول بيان الاستهلاك.

مثال سريع على الاستخدام

في ما يلي مثال بسيط جدًا على الطريقة التي يمكن أن يستخدم بها الموقع الإلكتروني www.example.com روابط Digital Asset Links لتحديد أنّه يجب فتح أي روابط تؤدي إلى عناوين URL في ذلك الموقع الإلكتروني في تطبيق محدّد بدلاً من المتصفّح:

  1. ينشر الموقع الإلكتروني 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.
  2. يتضمّن تطبيق Android المُدرَج في البيان أعلاه فلتر أهداف يحدّد المخطط والمضيف ونمط المسار لعناوين URL التي يريد التطبيق التعامل معها، وهي في هذه الحالة https://www.example.com. يتضمّن فلتر الأهداف سمة خاصة android:autoVerify جديدة في Android M، تشير إلى أنّه على Android التحقّق من البيان على الموقع الإلكتروني الموضّح في فلتر الأهداف عند تثبيت التطبيق.
  3. يثبّت المستخدم التطبيق. يرى نظام التشغيل Android فلتر intent الذي يتضمّن السمة autoVerify، ويبحث عن قائمة البيانات في الموقع الإلكتروني المحدّد. وفي حال العثور عليها، يتحقّق نظام التشغيل Android مما إذا كان الملف يتضمّن بيانًا يمنح التطبيق إذنًا بمعالجة الروابط، ويتأكّد من التطبيق استنادًا إلى البيان من خلال تجزئة الشهادة. إذا كان كل شيء على ما يرام، سيعيد نظام التشغيل Android توجيه أي طلبات intent إلى https://www.example.com إلى تطبيق example.com.
  4. ينقر المستخدم على رابط يؤدي إلى https://www.example.com/puppies على جهازه. يمكن أن يكون هذا الرابط في أي مكان، مثل متصفّح أو اقتراح من Google Search Appliance أو أي مكان آخر. يعيد نظام التشغيل Android توجيه intent إلى تطبيق example.com.
  5. يتلقّى تطبيق example.com الغرض ويختار التعامل معه، ويفتح صفحة الجراء في التطبيق. إذا رفض التطبيق التعامل مع الرابط لسبب ما، أو إذا لم يكن التطبيق مثبّتًا على الجهاز، سيتم إرسال الرابط إلى معالج الأغراض التلقائي التالي الذي يتطابق مع نمط الغرض هذا (غالبًا المتصفّح).

اعتبارات وقيود مهمة:

  • لا يتيح البروتوكول التحقّق من هوية الجهة الرئيسية التي تقدّم البيان، ولكن يتم عرض البيان في موقع جغرافي محدّد مرتبط بشكل كبير بالجهة الرئيسية، ويخضع لسيطرتها.
  • لا يصادق البروتوكول على هدف البيان، ولكنه يوفّر وسيلة للمتصل لمصادقة الهدف (على سبيل المثال، يحدّد البيان أهداف التطبيقات على الأجهزة الجوّالة من خلال تجزئة الشهادة واسم الحزمة).
  • لا ينفّذ البروتوكول أي إجراءات بيانات بشكل أصلي، بل يتيح إمكانية عرض البيانات، ويجب أن يتحقّق التطبيق المستهلك من صحة البيانات ثم يقرّر ما إذا كان سيتخذ إجراءً بشأنها وكيفية اتّخاذه. يُجري نظام التشغيل Android M هذه الخطوات تلقائيًا، فعلى سبيل المثال، إذا فوّض موقع إلكتروني تطبيقًا معيّنًا للتعامل مع الروابط، يتحقّق نظام التشغيل Android من البيان ويتأكّد منه، ويتأكّد من التطبيق المستهدف، ثم يمنح التطبيق خيار التعامل مع الرابط المحدّد.
  • لا يتيح البروتوكول تقديم بيانات حول جهتين خارجيتين، أي يمكن للموقع الإلكتروني (أ) تقديم بيان حول الموقع الإلكتروني (ب)، ولكن لا يمكن للموقع الإلكتروني (أ) تقديم بيان حول علاقة الموقع الإلكتروني (ب) بالموقع الإلكتروني (ج). ومع ذلك، إذا كان الموقع الإلكتروني B يثق في الموقع الإلكتروني A، يمكنه التحقّق من الموقع الإلكتروني A بحثًا عن بيان يمنح الإذن للموقع الإلكتروني C، ثمّ اتّخاذ قرار بتنفيذ ذلك.

الخطوات التالية

  1. معرفة ما إذا كانت هناك مستندات توضيحية لحالة الاستخدام
  2. مزيد من المعلومات حول إنشاء كشف