ویژگی «بازگرداندن اعتبارنامهها» در «مدیر اعتبارنامه» به کاربران امکان میدهد حسابهای برنامهشان را بهطور خودکار بازگردانند و هنگام اولین باز کردن برنامه پساز راهاندازی دستگاه جدید، به سیستم وارد شوند. اعتبارنامه بازیابی، که با نام کلید بازیابی نیز شناخته میشود، نوعی اعتبارنامه است که میتواند بهصورت محلی ذخیره شود یا در ارائهدهنده ابری پشتیبانگیری شود و سپس برای فراهم کردن دسترسی در دستگاه جدید کاربر استفاده شود.
این راهنما فرض میکند که شما با مفاهیم زیر آشنا هستید:
مزايا
مزایای ویژگی «بازگرداندن اعتبارنامهها» عبارتند از:
- تجربه کاربری یکپارچه: کاربران میتوانند بلافاصله استفاده از برنامه را در دستگاه جدیدشان شروع کنند، بدون اینکه لازم باشد بهطور دستی به سیستم وارد شوند.
- افزایش حفظ کاربر و کاهش هزینههای پشتیبانی: ورود خودکار به سیستم درطول ارتقای دستگاه از ریزش کاربر جلوگیری میکند و هزینههای پشتیبانی مربوط به حسابهای رهاشده و جریانهای بازیابی گذرواژه را بهطور قابلتوجهی کاهش میدهد.
- امنیت بهبودیافته: بازیابی بیصدای اطلاعات کاربری نیاز به صفحههای ورود به سیستم اضافی و درخواستهای بازیابی دستی حساب را ازبین میبرد و آسیبپذیری دربرابر حملات فیشینگ و سرقت اطلاعات کاربری را کاهش میدهد.
- تعامل فوری: میتوانید بهمحض اینکه کاربران شروع به استفاده از دستگاه جدیدشان کردند، با اعلانها یا پیاموارههای دیگر با آنها تعامل برقرار کنید.
- پشتیبانی از چندین سازوکار اصالتسنجی: این ویژگی با چندین سازوکار اصالتسنجی کار میکند، ازجمله:
نمای کلی فرایند
بخشهای زیر فرایند موردنیاز در هر دستگاه را شرح میدهد:
در دستگاه قبلی
کلید بازیابی را پساز اصالتسنجی کاربر در برنامهتان، بلافاصله پساز ورود به سیستم، و درطول راهاندازی بعدی برنامه اگر قبلاً به سیستم وارد شده باشد، تولید کنید. سرویس پشتیبانگیری Android بهطور خودکار کلید بازیابی تولیدشده را در دستگاه ذخیره میکند و براساس تنظیمات پشتیبانگیری کاربر، آن را در فضای ابری نیز ذخیره میکند.
برای اینکه کاربر بتواند در فضای ابری پشتیبانگیری کند، باید شرایط زیر را داشته باشد:
- به سیستم «حساب Google» خود وارد شده باشد.
- پشتیبانگیری دادههای Android را فعال کرده باشید. برای اطلاعات بیشتر، به پشتیبانگیری از دادهها مراجعه کنید.
- سازوکار باز کردن قفل صفحه (مثل الگو، پین، گذرواژه، یا زیستسنجشی) راهاندازی شده باشد.
اگر این شرایط برآورده نشود، E2eeUnavailableException ایجاد میشود.
وقتی این اتفاق میافتد، استثنا را بگیرید و createCredential() را دوباره با
isCloudBackupEnabled = false فراخوانی کنید تا کلید بازیابی همچنان بهصورت محلی برای
انتقال دستگاه به دستگاه (D2D) ذخیره شود.
در دستگاه جدید
وقتی کاربر دستگاه جدیدش را راهاندازی میکند، «بازگرداندن اعتبارنامهها» در پسزمینه درطول فرایند راهاندازی دستگاه بیصدا کار میکند. کاربران میتوانند انتخاب کنند که دادهها را از یکی از گزینههای زیر بازیابی کنند:
- از نسخه پشتیبان ابری: اگر از نسخه پشتیبان ابری استفاده شود، کلید بازیابی همراه با دادههای برنامه در دستگاه جدید بارگیری میشود.
- استفاده از انتقال دستگاهبهدستگاه: وقتی کاربران دادهها را مستقیماً بین دستگاه قدیمی و جدیدشان درطول راهاندازی منتقل میکنند، کلید بازیابی ازطریق کابل USB یا انتقال بیسیم Wi-Fi دستگاهبهدستگاه (D2D) از دستگاه قدیمی به دستگاه جدید منتقل میشود.
پساز اینکه کلید بازیابی در دستگاه جدید دردسترس قرار گرفت، میتوانید از آن برای وارد کردن کاربر به سیستم استفاده کنید.
جفت کردن «بازگرداندن اعتبارنامهها» با «پشتیبانگیری دادههای برنامه»
علاوهبر ورود به سیستم کاربر، برنامهتان باید تنظیمات محلی، پیشنویسهای آفلاین، و اولویتهای زمینه تیره کاربر را منتقل کند تا انتقال دستگاه کامل و بدون اصطکاک انجام شود:
- بازگرداندن هویت: از «بازگرداندن اعتبارنامهها» برای اصالتسنجی مجدد دسترسی به حساب بهصورت بیصدا استفاده کنید.
- بازیابی وضعیت و اولویتها:
پشتیبانگیری خودکار (
dataExtractionRules) را پیکربندی کنید تا اولویتهای کاربر، پایگاههای داده محلی، و وضعیت برنامه در انتقالهای ابری و کابلی دستگاه حفظ شود. نشانههای اصالتسنجی خام، متن رمزی Android Keystore وابسته به سختافزار، و نشانگرhas_synced_restore_credentialمحلیتان را مستثنی کنید تا وضعیت جلسه قدیمی در دستگاه جدید کپی نشود.
مدیریت چندین نمایه سیستم و حساب برنامه
هنگام پیادهسازی ویژگی «بازگرداندن اعتبارنامهها»، محدودیتهای زیر را دررابطهبا برنامههای چندحسابی و نمایههای سطح سیستم درنظر بگیرید.
برنامههایی که چند حساب به سیستم آنها وارد شده است
برخیاز برنامهها به کاربران اجازه میدهند بین چند حساب فعال جابهجا شوند (برای مثال، حساب ایمیل شخصی و کاری در یک برنامه). «بازگرداندن اعتبارنامهها» فقط از یک حساب برای هر برنامه پشتیبانی میکند. اگر کاربر به سیستم چند حساب وارد شده باشد، باید فقط یک حساب را برای ایجاد کلید بازیابی انتخاب کنید. معمولاً، این حساب باید حساب اصلی یا حسابی باشد که اخیراً استفاده شده است.
دستگاههای دارای چند نمایه سیستم
در دستگاههایی که با نمایههای سیستم جداگانه پیکربندی شدهاند (مثل دستگاه شرکتی با نمایه کاری مدیریتشده و نمایه شخصی)، کلید بازیابی برای نمایه اصلی که درطول آمادهسازی اولیه دستگاه راهاندازی شده است دردسترس است. اگر
خطمشی فناوری اطلاعات سازمانی، پشتیبانگیری بیندستگاهی یا انتقال اطلاعات کاربری را در
نمایه کاری مدیریتشده غیرفعال کند، createCredential() یا getCredential() ممکن است هیچ
اطلاعات کاربریای برنگرداند و برنامهتان باید به ورود به سیستم استاندارد برگردد.
محدودیتها
«بازگرداندن اعتبارنامهها» در تلفنها، دستگاههای تاشو، و رایانههای لوحی Android
دارای Android نسخه ۹ (سطح میانای برنامهسازی کاربردی ۲۸) یا بالاتر با خدمات Google Play نسخه
242200000 یا بالاتر پشتیبانی میشود. بازیابی بین دستههای مختلف دستگاه (مثل بازیابی از تلفن به Wear OS، Android TV، Android Auto، Android XR، یا ChromeOS) پشتیبانی نمیشود؛ به اصالتسنجی در انواع مختلف دستگاه مراجعه کنید.
مراحل بعدی
- پیادهسازی کردن «بازگرداندن اعتبارنامهها»: ایجاد، بازیابی، و پاک کردن کلیدهای بازگرداندن در برنامه Android بااستفاده از Credential Manager.
- آزمایش «بازگرداندن اعتبارنامهها»: جریانهای بازگرداندن ابری و دستگاهبهدستگاه را در Android Studio یا با آزمایشهای پشتیبانگیری خودکار JUnit 5 درستیسنجی کنید.
- مهارت Android «بازگرداندن اعتبارنامهها»: از مهارت Android CLI برای راهنمایی عاملهای کدنویسی در یکپارچهسازی دو سطحی «بازگرداندن اعتبارنامهها» استفاده کنید.