Asset

يعرّف هذا العنصر مادة العرض بشكل فريد.

الأصول الرقمية هي عبارة عن كيان على الإنترنت يمكن التعرّف عليه بسهولة ويقدّم عادةً بعض الخدمات أو المحتوى. ومن أمثلة مواد العرض المواقع الإلكترونية وتطبيقات Android وخلاصات Twitter وصفحات Plus.

تمثيل JSON
{
  // Union field, only one of the following:
  "web": {
    object(WebAsset)
  },
  "androidApp": {
    object(AndroidAppAsset)
  },
}
اسم الحقل النوع الوصف
حقل اتحاد، واحد فقط مما يلي:
web object(WebAsset) يجب تحديد ما إذا كانت مادة العرض على الويب.
androidApp object(AndroidAppAsset) حدِّد ما إذا كانت مادة عرض تطبيق Android.

WebAsset

يصف مادة عرض الويب.

تمثيل JSON
{
  "site": string,
}
اسم الحقل النوع الوصف
site string

ويتم تحديد مواد العرض على الويب من خلال عنوان URL يحتوي فقط على المخطّط واسم المضيف وأجزاء المنفذ. التنسيق هو

http[s]://<hostname>[:<port>]

يجب أن تكون أسماء المضيفين مؤهَّلة بالكامل: يجب أن تنتهي خلال نقطة واحدة (".").

يُسمح حاليًا باستخدام المخططين "http" و "https" فقط.

يتم تحديد أرقام المنافذ كرقم عشري، ويجب حذفها في حال استخدام أرقام المنافذ العادية: 80 لـ http و443 لـ https.

ونُطلق على عنوان URL المحدود هذا اسم "الموقع الإلكتروني". تُعتبر جميع عناوين URL التي تتشارك في المخطط واسم المضيف والمنفذ نفسه جزءًا من الموقع الإلكتروني وبالتالي تنتمي إلى مادة عرض الويب.

مثال: تحتوي مادة العرض التي تتضمّن الموقع الإلكتروني https://www.google.com على جميع عناوين URL التالية:

  • https://www.google.com/
  • https://www.google.com:443/
  • https://www.google.com/foo
  • https://www.google.com/foo?bar
  • https://www.google.com/foo#bar
  • https://user@password:www.google.com/

لا يتضمّن عناوين URL التالية:

  • http://www.google.com/ (مخطط خاطئ)
  • https://google.com/ (اسم المضيف غير متطابق)
  • https://www.google.com:444/ (المنفذ غير متطابق) مطلوب

AndroidAppAsset

تصف مادة عرض تطبيق Android.

تمثيل JSON
{
  "packageName": string,
  "certificate": {
    object(CertificateInfo)
  },
}
اسم الحقل النوع الوصف
packageName string يتمّ تحديد مواد عرض تطبيقات Android بشكلٍ طبيعي من خلال اسم حزمة Java. على سبيل المثال، يستخدم تطبيق "خرائط Google" اسم الحزمة com.google.android.apps.maps. مطلوب
certificate object(CertificateInfo)

بسبب عدم فرض إجراء عام على تفرد اسم الحزمة، نطلب أيضًا شهادة توقيع تؤدي إلى تعريف التطبيق بشكل فريد مع اسم الحزمة.

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

(يُرجى ملاحظة أنّ بناء الجملة لنشر العبارات والاستعلام عنها تحتوي على غوّاد نحوي للسماح لك بتحديد التطبيقات المعروفة بواسطة شهادات متعددة.) مطلوب

CertificateInfo

تصف شهادة X509.

تمثيل JSON
{
  "sha256Fingerprint": string,
}
اسم الحقل النوع الوصف
sha256Fingerprint string

تمثّل هذه السمة الملف المرجعي للشهادة SHA-265 بالأحرف الكبيرة. من شهادة PEM، يمكن الحصول عليها على النحو التالي:

$ keytool -printcert -file $CERTFILE | grep SHA256:
SHA256: 14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64:16:A0:83: \
    42:E6:1D:BE:A8:8A:04:96:B2:3F:CF:44:E5

أو مثل هذا:

$ openssl x509 -in $CERTFILE -noout -fingerprint -sha256
SHA256 Fingerprint=14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64: \
    16:A0:83:42:E6:1D:BE:A8:8A:04:96:B2:3F:CF:44:E5

في هذا المثال، سيكون محتوى هذا الحقل 14:6D:E9:83:C5:73: 06:50:D8:EE:B9:95:2F:34:FC:64:16:A0:83:42:E6:1D:BE:A8:8A:04:96:B2:3F:CF: 44:E5.

إذا لم تكن هذه الأدوات متاحة لك، يمكنك تحويل شهادة PEM إلى تنسيق DER وحساب تجزئة SHA-256 لتلك السلسلة وتقديم النتيجة كسلسلة سداسية عشرية (أي تمثيلات سداسية عشرية كبيرة لكل ثماني بتات، مفصولة بنقطتين).