بهترین شیوه ها

این صفحه برخی از بهترین روش‌های عمومی را برای ادغام با OAuth 2.0 پوشش می‌دهد. این بهترین شیوه ها را علاوه بر هر راهنمایی خاص برای نوع برنامه کاربردی و پلت فرم توسعه خود در نظر بگیرید. همچنین به توصیه برای آماده کردن برنامه خود برای تولید و خط‌مشی‌های Google OAuth 2.0 مراجعه کنید.

به طور ایمن اعتبار مشتری را مدیریت کنید

اعتبارنامه مشتری OAuth هویت برنامه شما را شناسایی می کند و باید با دقت مورد استفاده قرار گیرد. این اعتبارنامه‌ها را فقط در فضای ذخیره‌سازی ایمن ذخیره کنید، برای مثال با استفاده از یک مدیر مخفی مانند Google Cloud Secret Manager . اعتبارنامه ها را کد سختی نکنید، آنها را به یک مخزن کد و یا به صورت عمومی منتشر نکنید.

توکن های کاربر را ایمن مدیریت کنید

توکن‌های کاربر هم شامل نشانه‌های تازه‌سازی و هم نشانه‌های دسترسی مورد استفاده برنامه شما هستند. توکن ها را به صورت ایمن در حالت استراحت ذخیره کنید و هرگز آنها را به صورت متن ساده ارسال نکنید. از یک سیستم ذخیره سازی امن مناسب برای پلتفرم خود استفاده کنید، مانند Keystore در Android، Keychain Services در iOS و macOS، یا Credential Locker در Windows.

توکن ها را به محض اینکه دیگر مورد نیاز نیستند لغو کنید و برای همیشه از سیستم خود حذف کنید.

علاوه بر این، این بهترین شیوه ها را برای پلتفرم خود نیز در نظر بگیرید:

  • برای برنامه‌های سمت سرور که توکن‌ها را برای بسیاری از کاربران ذخیره می‌کنند، آنها را در حالت استراحت رمزگذاری کنید و اطمینان حاصل کنید که فروشگاه داده‌های شما برای عموم در دسترس اینترنت نیست.
  • برای برنامه‌های دسک‌تاپ بومی، استفاده از پروتکل Proof Key for Code Exchange (PKCE) برای دریافت کدهای مجوزی که می‌توانند با نشانه‌های دسترسی مبادله شوند، اکیداً توصیه می‌شود.

ابطال و انقضای نشانه رفرش را مدیریت کنید

اگر برنامه شما برای دسترسی آفلاین توکن به‌روزرسانی درخواست کرده است، باید ابطال یا انقضای آن را نیز رسیدگی کنید. نشانه‌ها ممکن است به دلایل مختلف باطل شوند، برای مثال ممکن است منقضی شده باشد یا دسترسی برنامه‌های شما توسط کاربر لغو شده باشد یا یک فرآیند خودکار. در این مورد، به دقت در نظر بگیرید که برنامه شما چگونه باید پاسخ دهد، از جمله درخواست کاربر در ورود به سیستم بعدی یا پاک کردن داده های او. برای اطلاع از لغو توکن، با سرویس محافظت از حساب‌های متقابل ادغام شوید.

از مجوز افزایشی استفاده کنید

از مجوز افزایشی برای درخواست دامنه های OAuth مناسب زمانی که برنامه شما به عملکرد نیاز دارد استفاده کنید.

وقتی کاربر برای اولین بار احراز هویت می شود، نباید درخواست دسترسی به داده ها را بدهید، مگر اینکه برای عملکرد اصلی برنامه شما ضروری باشد. در عوض، فقط دامنه‌های خاصی را که برای یک کار مورد نیاز است، درخواست کنید، و از اصل انتخاب کوچک‌ترین و محدودترین محدوده ممکن پیروی کنید.

همیشه دامنه‌ها را در زمینه درخواست کنید تا به کاربران خود کمک کنید بفهمند چرا برنامه شما درخواست دسترسی می‌کند و چگونه از داده‌ها استفاده می‌شود.

به عنوان مثال، برنامه شما ممکن است از این مدل پیروی کند:

  1. کاربر با برنامه شما احراز هویت می کند
    1. هیچ محدوده اضافی درخواست نمی شود. این برنامه عملکردهای اساسی را ارائه می دهد تا به کاربر امکان می دهد ویژگی هایی را که نیازی به داده یا دسترسی اضافی ندارند کاوش و استفاده کند.
  2. کاربر یک ویژگی را انتخاب می کند که نیاز به دسترسی به داده های اضافی دارد
    1. برنامه شما یک درخواست مجوز برای این محدوده OAuth خاص مورد نیاز برای این ویژگی می کند. اگر این ویژگی به چندین حوزه نیاز دارد، بهترین روش‌های زیر را دنبال کنید.
    2. اگر کاربر درخواست را رد کند، برنامه این ویژگی را غیرفعال می کند و به کاربر زمینه اضافی برای درخواست دسترسی مجدد می دهد.

رسیدگی به رضایت برای حوزه های متعدد

هنگام درخواست چندین دامنه به طور همزمان، کاربران ممکن است همه دامنه های OAuth را که درخواست کرده اید اعطا نکنند. برنامه شما باید با غیرفعال کردن عملکرد مربوطه، انکار دامنه ها را کنترل کند.

اگر عملکرد اصلی برنامه شما به چندین حوزه نیاز دارد، قبل از درخواست رضایت، این موضوع را برای کاربر توضیح دهید.

تنها زمانی می‌توانید از کاربر درخواست کنید که به وضوح قصد استفاده از ویژگی خاصی را که به محدوده نیاز دارد، نشان دهد. برنامه شما باید پیش از درخواست دامنه های OAuth، زمینه و توجیه مرتبط را در اختیار کاربر قرار دهد.

شما باید تعداد دامنه های درخواستی برنامه خود را به یکباره به حداقل برسانید. در عوض، از مجوز افزایشی برای درخواست دامنه ها در زمینه ویژگی ها و عملکردها استفاده کنید .

از مرورگرهای امن استفاده کنید

در وب، درخواست های مجوز OAuth 2.0 فقط باید از مرورگرهای وب با امکانات کامل انجام شود. در سایر پلتفرم‌ها، مطمئن شوید که نوع مشتری OAuth صحیح را انتخاب کرده و OAuth را متناسب با پلتفرم خود ادغام کنید. درخواست را از طریق محیط‌های مرور تعبیه‌شده، از جمله مشاهده‌های وب در پلتفرم‌های تلفن همراه، مانند WebView در Android یا WKWebView در iOS، هدایت نکنید. در عوض، از کتابخانه های بومی OAuth یا Google Sign-in برای پلتفرم خود استفاده کنید.

ایجاد و پیکربندی دستی مشتریان OAuth

به منظور جلوگیری از سوء استفاده، سرویس گیرندگان OAuth را نمی توان به صورت برنامه ریزی شده ایجاد یا تغییر داد. برای تأیید صریح شرایط خدمات، پیکربندی مشتری OAuth و آماده شدن برای تأیید OAuth، باید از کنسول توسعه دهندگان Google استفاده کنید.

برای گردش کار خودکار، به جای آن از حساب های خدماتی استفاده کنید.