پیش‌نیازها

پیش‌نیاز اصلی برای پیاده‌سازی یک تجربه ورود یکپارچه با Credential Manager در برنامه و وب‌سایت شما، ایجاد یک ارتباط امن بین آنها است. این امر با استفاده از فایل‌های Digital Asset Links محقق می‌شود که ارائه‌دهندگان اعتبارنامه را قادر می‌سازد تا اعتبارنامه‌ها را به طور ایمن بین برنامه و وب‌سایت شما به اشتراک بگذارند. به عنوان مثال، یک وب‌سایت می‌تواند با استفاده از یک فایل Digital Asset Links اعلام کند که اعتبارنامه‌ها را با یک برنامه اندروید یا وب‌سایت دیگری به اشتراک می‌گذارد. استفاده از Digital Asset Links به کاربران شما این امکان را می‌دهد که یک تجربه ورود یکپارچه داشته باشند و از اعتبارنامه‌های ذخیره شده یکسان در برنامه‌ها و وب‌سایت‌های مرتبط استفاده کنند.

برای اینکه ارائه‌دهندگان اعتبارنامه بتوانند از رمزهای عبور و کلیدهای عبور رایج در برنامه و وب‌سایت شما استفاده کنند، یک فایل پیوندهای دارایی دیجیتال برای برنامه خود با مراحل زیر ایجاد کنید:

فایلی با نام assetlinks.json با ساختار زیر ایجاد کنید:

[
    {
    "relation" : [
        "<array_of_permissions_granted_to_app>"
    ],
    "target" : {
        "namespace" : "android_app",
        "package_name" : "<android_application_package_name>",
        "sha256_cert_fingerprints" : [
            "<sha256_certificate_fingerprint_of_signing_key>"
]
    }
}
]
  • relation : آرایه‌ای از یک یا چند رشته که رابطه‌ی تعریف‌شده را توصیف می‌کند. برای اعلام اینکه برنامه‌ها و سایت‌ها اعتبارنامه‌های ورود به سیستم را به اشتراک می‌گذارند، روابط زیر را در یک آرایه مشخص کنید:

    • delegate_permission/common.handle_all_urls : این رابطه Android App Links را فعال می‌کند که به برنامه اندروید شما اجازه می‌دهد تمام URLهای وب را برای یک دامنه خاص مدیریت کند.

    • delegate_permission/common.get_login_creds : این رابطه امکان اشتراک‌گذاری اعتبارنامه‌ها بین وب‌سایت و برنامه اندروید شما را فراهم می‌کند.

  • target : شیء‌ای که دارایی مورد نظر برای اعلان را مشخص می‌کند.

    • target.namespace : این را روی android_app تنظیم کنید.
    • target.package_name : این را برابر با نام بسته‌ای که در مانیفست برنامه اعلام شده است، قرار دهید، برای مثال، com.example.android .
  • sha256_cert_fingerprints : اثر انگشت‌های SHA256 گواهی امضای برنامه شما. برای بازیابی اثر انگشت SHA256 برای برنامه خود، به بخش Declare website association مراجعه کنید.

یک نمونه هدف برای یک برنامه به شرح زیر است:

[
  {
    "relation" : [
      "delegate_permission/common.handle_all_urls",
      "delegate_permission/common.get_login_creds"
    ],
    "target" : {
      "namespace" : "android_app",
      "package_name" : "com.example.android",
      "sha256_cert_fingerprints" : [
        SHA_HEX_VALUE
      ]
    }
  }
]

فایل پیوندهای دارایی دیجیتال را در محل زیر در دامنه ورود به سیستم وب‌سایت خود میزبانی کنید:

```none
https://domain[:optional_port]/.well-known/assetlinks.json
```

برای مثال، اگر دامنه ورود شما signin.example.com است، فایل را در آدرس https://signin.example.com/.well-known/assetlinks.json میزبانی کنید.

نوع MIME برای فایل Digital Asset Links باید JSON باشد. مطمئن شوید که سرور در پاسخ، هدر Content-Type: application/json را با وضعیت HTTP 200 ارسال می‌کند.

۳. اجازه بازیابی فایل پیوندهای دارایی دیجیتال را بدهید

هاست خود را به‌روزرسانی کنید تا به گوگل اجازه دهید فایل پیوندهای دارایی‌های دیجیتال شما را بازیابی کند. اکثر وب‌سایت‌ها به هر عامل خودکاری اجازه می‌دهند تا فایل‌های موجود در مسیر /.well-known/ را بازیابی کند تا سایر سرویس‌ها بتوانند به فراداده‌های موجود در آن فایل‌ها دسترسی پیدا کنند.

اگر فایل robots.txt دارید، با به‌روزرسانی robots.txt به صورت زیر، به خزنده‌های وب اجازه دهید /.well-known/assetlinks.json را بازیابی کنند:

User-agent: *
Allow: /.well-known/

۴. به‌روزرسانی مانیفست برنامه

در فایل مانیفست برنامه خود، خطوط زیر را در زیر <application> اضافه کنید:

<meta-data android:name="asset_statements" android:resource="@string/asset_statements" />

۵. پیکربندی پیوندهای دارایی دیجیتال برای رمزهای عبور

اگر از Credential Manager برای رمزهای عبور استفاده می‌کنید، باید یک مرحله اضافی برای پیکربندی لینک‌های دارایی دیجیتال انجام دهید.

یک شیء اضافه کنید که فایل‌های assetlinks.json را برای بارگذاری در فایل مانیفست مشخص کند. شما باید هرگونه آپاستروف و علامت نقل قولی را که در رشته استفاده می‌کنید، همانطور که در مثال زیر نشان داده شده است، escape کنید:

<string name="asset_statements" translatable="false">
[{
  \"include\": \"https://signin.example.com/.well-known/assetlinks.json\"
}]
</string>

لینک https://signin.example.com/.well-known/assetlinks.json باید یک پاسخ HTTP 200 برگرداند و یک هدر Content-Type از application/json داشته باشد. اگر پاسخ دارای ریدایرکت HTTP 301 یا 302 یا یک Content-Type غیر JSON باشد، تأیید ناموفق خواهد بود.

مثال زیر یک درخواست نمونه و هدرهای پاسخ مورد انتظار را نشان می‌دهد:

> GET /.well-known/assetlinks.json HTTP/1.1
> User-Agent: curl/7.35.0
> Host: signin.example.com

< HTTP/1.1 200 OK
< Content-Type: application/json

مراحل بعدی

پس از افزودن وابستگی‌های لازم و پیکربندی پیوندهای دارایی دیجیتال برای کلیدهای عبور، می‌توانید از Credential Manager برای پیاده‌سازی روش‌های احراز هویت پشتیبانی‌شده استفاده کنید: کلیدهای عبور و ورود با گوگل. برای شروع، به راهنماهای توسعه‌دهنده زیر مراجعه کنید: