Asset

منحصر به فرد دارایی را شناسایی می کند.

دارایی دیجیتال یک موجودیت آنلاین قابل شناسایی و آدرس پذیر است که معمولاً برخی از خدمات یا محتوا را ارائه می دهد. نمونه هایی از دارایی ها وب سایت ها، برنامه های اندروید، فیدهای توییتر و صفحات پلاس هستند.

نمایندگی JSON
{
  // Union field, only one of the following:
  "web": {
    object(WebAsset)
  },
  "androidApp": {
    object(AndroidAppAsset)
  },
}
نام زمینه تایپ کنید شرح
فیلد اتحادیه، فقط یکی از موارد زیر:
web object( WebAsset ) اگر این یک دارایی وب است، تنظیم کنید.
androidApp object( AndroidAppAsset ) اگر این دارایی برنامه Android باشد، تنظیم کنید.

دارایی وب

یک دارایی وب را توصیف می کند.

نمایندگی 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

یک دارایی برنامه اندروید را توصیف می کند.

نمایندگی JSON
{
  "packageName": string,
  "certificate": {
    object(CertificateInfo)
  },
}
نام زمینه تایپ کنید شرح
packageName string دارایی های برنامه Android به طور طبیعی با نام بسته جاوای خود شناسایی می شوند. برای مثال، برنامه Google Maps از نام بسته com.google.android.apps.maps استفاده می کند. ضروری
certificate object( 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 خواهد بود. 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 آن رشته را محاسبه کنید و نتیجه را به عنوان یک رشته هگزا (یعنی نمایش های هگزادسیمال بزرگ هر اکتت که با دو نقطه از هم جدا شده اند) نشان دهید. ).