احراز هویت و مجوز مکانیزم هایی هستند که به ترتیب برای تأیید هویت و دسترسی به منابع استفاده می شوند. این سند عبارات کلیدی را که باید قبل از اجرای احراز هویت و مجوز در برنامه خود بدانید، مشخص می کند.
احراز هویت مشخص می کند که چه کسی درخواست را ارائه می دهد. مجوز مشخص می کند که درخواست کننده به چه منابعی می تواند دسترسی داشته باشد و چه سطحی از دسترسی را دارد. احراز هویت یک پیش نیاز برای مجوز است. شما نمی توانید بدون تعیین هویت درخواست کننده، تعیین کنید که به چه منابعی دسترسی داشته باشید. برای تعریف دقیق تر، به بخش اصطلاحات مهم مراجعه کنید.
مثال ساده شده زیر را از رزرو هتل در نظر بگیرید. وقتی به هتل میرسید، کارمند پذیرش از شما درخواست میکند تا رزروتان را تأیید کند. شناسه شما هویت شما را در هتل تأیید می کند . کارمند میز پذیرش کلید هتل را به شما می دهد. این کلید به شما امکان می دهد به منابع خاصی در هتل مانند اتاق هتل، سالن بدنسازی و مرکز تجاری دسترسی داشته باشید. کلید هتل به شما اجازه دسترسی به این منابع را می دهد .
نمای کلی فرآیند
نمودار زیر مراحل سطح بالای احراز هویت و مجوز برای API های Google Workspace را نشان می دهد:
پروژه و برنامه Google Cloud خود را پیکربندی کنید: در طول توسعه، برنامه خود را در کنسول Google Cloud ثبت میکنید، حوزههای مجوز را تعریف میکنید و به اعتبارنامه دسترسی میدهید تا برنامه خود را با یک کلید API، اعتبار کاربر نهایی یا اعتبار حساب سرویس تأیید کنید.
برنامه خود را برای دسترسی تأیید کنید: وقتی برنامه شما اجرا می شود، اعتبار دسترسی ثبت شده ارزیابی می شود. اگر برنامه شما به عنوان کاربر نهایی در حال احراز هویت باشد، ممکن است یک درخواست ورود به سیستم نمایش داده شود.
درخواست منابع: زمانی که برنامه شما نیاز به دسترسی به منابع Google دارد، با استفاده از محدوده دسترسی مرتبطی که قبلا ثبت نام کرده اید از Google درخواست می کند.
درخواست رضایت کاربر: اگر برنامه شما بهعنوان کاربر نهایی در حال احراز هویت است، Google صفحه رضایت OAuth را نشان میدهد تا کاربر بتواند تصمیم بگیرد که آیا برنامه شما به دادههای درخواستی دسترسی داشته باشد یا خیر.
ارسال درخواست تایید شده برای منابع: اگر کاربر با محدوده دسترسی موافقت کند، برنامه شما اعتبارنامه ها و دامنه های دسترسی تایید شده توسط کاربر را در یک درخواست جمع می کند. درخواست برای دریافت رمز دسترسی به سرور مجوز Google ارسال می شود.
Google یک نشانه دسترسی را برمیگرداند: نشانه دسترسی حاوی فهرستی از دامنههای دسترسی اعطا شده است. اگر لیست بازگردانده شده محدودتر از محدوده دسترسی درخواستی باشد، برنامه شما هر ویژگی محدود شده توسط نشانه را غیرفعال می کند.
دسترسی به منابع درخواستی: برنامه شما از رمز دسترسی Google برای فراخوانی APIهای مربوطه و دسترسی به منابع استفاده می کند.
دریافت نشانه تازهسازی (اختیاری): اگر برنامه شما بیش از طول عمر یک نشانه دسترسی نیاز به دسترسی به Google API داشته باشد، میتواند یک نشانه تازهسازی دریافت کند.
درخواست منابع بیشتر: در صورت نیاز به دسترسی اضافی، برنامه شما از کاربر میخواهد دامنههای جدیدی از دسترسی را اعطا کند و در نتیجه درخواست جدیدی برای دریافت نشانه دسترسی ایجاد میکند (مرحله 3-6).
اصطلاحات مهم
در زیر لیستی از شرایط مربوط به احراز هویت و مجوز آورده شده است:
- احراز هویت
عمل حصول اطمینان از اینکه یک مدیر ، که می تواند یک کاربر یا برنامه ای باشد که از طرف یک کاربر عمل می کند، همان کسی است که آنها می گویند. هنگام نوشتن برنامههای Google Workspace، باید از این نوع احراز هویت آگاه باشید:
- احراز هویت کاربر
- عمل احراز هویت کاربر (ورود به سیستم) به برنامه شما. احراز هویت کاربر معمولاً از طریق فرآیند ورود به سیستم انجام می شود که در آن کاربر از ترکیب نام کاربری و رمز عبور برای تأیید هویت خود در برنامه استفاده می کند. احراز هویت کاربر را می توان با استفاده از ورود به سیستم با Google در یک برنامه گنجاند.
- احراز هویت برنامه
- عمل احراز هویت برنامه به طور مستقیم به خدمات Google از طرف کاربری که برنامه را اجرا می کند. احراز هویت برنامه معمولاً با استفاده از اعتبارنامه های از پیش ایجاد شده در کد برنامه شما انجام می شود.
- مجوز
مجوزها یا "مرجع" اصلی برای دسترسی به داده ها یا انجام عملیات. عمل مجوز از طریق کدی که در برنامه خود می نویسید انجام می شود. این کد به کاربر اطلاع میدهد که برنامه میخواهد از طرف او عمل کند و در صورت اجازه، از اعتبارنامه منحصربهفرد برنامه شما برای دریافت کد دسترسی از Google استفاده میکند که برای دسترسی به دادهها یا انجام عملیات استفاده میشود.
- اعتبارنامه
شکلی از شناسایی که در امنیت نرم افزار استفاده می شود. از نظر احراز هویت، اعتبار اغلب ترکیبی از نام کاربری و رمز عبور است. از نظر مجوز برای APIهای Google Workspace، اعتبار معمولاً نوعی شناسایی است، مانند یک رشته مخفی منحصربهفرد که فقط بین توسعهدهنده برنامه و سرور احراز هویت شناخته میشود. Google از این اعتبارنامههای احراز هویت پشتیبانی میکند: کلید API، شناسه مشتری OAuth 2.0 و حسابهای سرویس.
- کلید API
- اعتبار مورد استفاده برای درخواست دسترسی به دادههای عمومی، مانند دادههای ارائهشده با استفاده از Maps API یا فایلهای Google Workspace که با استفاده از تنظیم «هر کسی در اینترنت با این پیوند» در تنظیمات اشتراکگذاری Google Workspace به اشتراک گذاشته شده است.
- شناسه مشتری OAuth 2
- اعتبار مورد استفاده برای درخواست دسترسی به داده های متعلق به کاربر. این اعتبار اولیه است که هنگام درخواست دسترسی به دادهها با استفاده از APIهای Google Workspace استفاده میشود. این اعتبار به رضایت کاربر نیاز دارد.
- راز مشتری
- رشته ای از کاراکترها که فقط باید توسط برنامه شما و سرور مجوز شناخته شوند. راز مشتری از داده های کاربر فقط با اعطای توکن به درخواست کنندگان مجاز محافظت می کند. هرگز نباید راز مشتری رمزگذاری نشده خود را در برنامه خود قرار دهید. ما توصیه می کنیم راز مشتری را به صورت ایمن ذخیره کنید. برای اطلاعات بیشتر، به مدیریت ایمن اعتبارنامه مشتری مراجعه کنید.
- کلیدهای حساب سرویس
- توسط حسابهای سرویس برای کسب مجوز برای یک سرویس Google استفاده میشود.
- حساب خدمات
- اعتباری که برای تعاملات سرور به سرور استفاده می شود، مانند یک برنامه بدون چهره که به عنوان فرآیندی برای دسترسی به برخی داده ها یا انجام برخی عملیات اجرا می شود. حسابهای سرویس معمولاً برای دسترسی به دادهها و عملیات مبتنی بر ابر استفاده میشوند. با این حال، هنگامی که با تفویض اختیار در دامنه استفاده می شود، می توان از آنها برای دسترسی به داده های کاربر استفاده کرد.
- دامنه
یک رشته URI OAuth 2.0 که سطح دسترسی به منابع یا اقدامات اعطا شده به برنامه را تعریف می کند. برای Google Workspace، URIهای محدوده مجوز شامل نام برنامه Google Workspace، نوع دادههایی که به آن دسترسی دارد و سطح دسترسی است. کاربران برنامه شما میتوانند دامنههای درخواستی را بررسی کنند و انتخاب کنند که چه دسترسی اعطا شود، سپس سرور احراز هویت Google محدودههای مجاز را در یک نشانه دسترسی به برنامه شما برمیگرداند. برای جزئیات بیشتر، به نحوه انتخاب دامنه برای برنامه خود مراجعه کنید.
- سرور مجوز
سرور Google برای اعطای دسترسی، با استفاده از رمز دسترسی ، به دادهها و عملیات درخواستی برنامه.
- کد مجوز
کدی که از سرور مجوز ارسال می شود که برای به دست آوردن رمز دسترسی استفاده می شود. کد فقط زمانی مورد نیاز است که نوع برنامه شما یک برنامه وب سرور یا یک برنامه نصب شده باشد.
- نشانه دسترسی
توکنی که اجازه دسترسی به Google Workspace API را می دهد. یک توکن دسترسی واحد می تواند درجات مختلفی را که به نام scope شناخته می شوند، به چندین API اعطا کند. کد مجوز برنامه شما کدهای دسترسی را درخواست می کند و از آنها برای فراخوانی APIهای Google Workspace استفاده می کند.
- سرور منبع
سرور میزبان API که برنامه شما میخواهد با آن تماس بگیرد.
- چارچوب OAuth 2.0
استانداردی که برنامه شما می تواند از آن برای ارائه «دسترسی ایمن تفویض شده» یا دسترسی به داده ها و عملیات از طرف کاربر برنامه استفاده کند. مکانیسمهای احراز هویت و مجوزی که در برنامه خود استفاده میکنید، اجرای شما از چارچوب OAuth 2.0 را نشان میدهد.
- اصلی
موجودیتی که به عنوان هویت نیز شناخته می شود، می توان به آن اجازه دسترسی به یک منبع را داد. APIهای Google Workspace از دو نوع اصل پشتیبانی میکنند: حسابهای کاربری و حسابهای خدمات. برای جزئیات بیشتر، به اصول مراجعه کنید.
- نوع داده
در زمینه احراز هویت و مجوز، نوع داده به نهادی اطلاق میشود که مالک دادههایی است که برنامه شما میخواهد به آنها دسترسی پیدا کند. سه نوع داده وجود دارد:
- داده های حوزه عمومی
- داده هایی که برای هر کسی قابل دسترسی است، مانند برخی از داده های نقشه های گوگل. این داده ها معمولاً با استفاده از یک کلید API قابل دسترسی هستند.
- داده های کاربر نهایی
- دادههای متعلق به یک کاربر نهایی یا گروه خاص، مانند فایلهای Google Drive یک کاربر خاص. این نوع داده معمولاً با استفاده از شناسه مشتری OAuth 2 یا حساب سرویس قابل دسترسی است.
- داده های ابری
- داده های متعلق به یک پروژه Google Cloud. این نوع داده معمولاً توسط یک حساب سرویس قابل دسترسی است.
- رضایت کاربر
مرحله مجوزی که کاربر برنامه شما را ملزم میکند تا به برنامه اجازه دسترسی به دادهها و انجام عملیات از طرف کاربر را بدهد.
- نوع برنامه
نوع برنامه ای که می خواهید ایجاد کنید. هنگام ایجاد اعتبار با استفاده از کنسول Google Cloud، از شما خواسته می شود که نوع برنامه خود را انتخاب کنید. انواع برنامه ها عبارتند از: برنامه وب (جاوا اسکریپت)، اندروید، برنامه کروم، iOS، تلویزیون ها و دستگاه های ورودی محدود، برنامه دسکتاپ (که «برنامه نصب شده» نیز نامیده می شود) و پلتفرم ویندوز جهانی (UWP).
- حساب خدمات
نوع خاصی از حساب Google با هدف نشان دادن یک کاربر غیر انسانی که نیاز به احراز هویت و مجوز دسترسی به داده ها دارد. برنامه شما هویت حساب سرویس برای فراخوانی APIهای Google را فرض میکند، به طوری که کاربران مستقیماً درگیر آن نباشند. به خودی خود، حساب های سرویس را نمی توان برای دسترسی به داده های کاربر استفاده کرد. دادههایی که معمولاً با استفاده از APIهای Workspace قابل دسترسی هستند. با این حال، یک حساب سرویس میتواند با اعمال تفویض اختیار در دامنه، به دادههای کاربر دسترسی داشته باشد. برای جزئیات بیشتر، به درک حساب های خدمات مراجعه کنید.
- تفویض اختیار در سطح دامنه
یک ویژگی مدیریتی که میتواند به یک برنامه اجازه دسترسی به دادههای کاربر از طرف کاربران در سازمان Google Workspace را بدهد. برای انجام وظایف مربوط به مدیریت بر روی داده های کاربر می توان از تفویض اختیار در سطح دامنه استفاده کرد. برای تفویض اختیار از این طریق، مدیران Google Workspace از حسابهای سرویس با OAuth 2.0 استفاده میکنند. به دلیل قدرت این ویژگی، فقط سوپر ادمین ها می توانند تفویض اختیار در سطح دامنه را فعال کنند. برای جزئیات بیشتر، به واگذاری اختیارات دامنه به یک حساب سرویس مراجعه کنید.
مرحله بعدی
صفحه رضایت OAuth برنامه خود را پیکربندی کنید تا مطمئن شوید که کاربران می توانند دسترسی برنامه شما به داده های خود را درک کرده و تأیید کنند.