با احراز هویت و مجوز آشنا شوید

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

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

مثال ساده‌شده‌ی زیر از رزرو هتل را در نظر بگیرید. وقتی به هتل می‌رسید، متصدی پذیرش برای تأیید رزروتان از شما مدرک شناسایی می‌خواهد. مدرک شناسایی شما، شما را به هتل معرفی می‌کند . متصدی پذیرش یک کلید هتل به شما می‌دهد. این کلید به شما امکان دسترسی به منابع خاصی در هتل مانند اتاق هتل، باشگاه ورزشی و مرکز تجاری را می‌دهد. کلید هتل به شما اجازه دسترسی به آن منابع را می‌دهد .

مرور کلی فرآیند

نمودار زیر مراحل سطح بالای احراز هویت و مجوزدهی برای APIهای Google Workspace را نشان می‌دهد:

مراحل سطح بالای پیاده‌سازی احراز هویت و مجوزدهی
شکل ۱. مراحل سطح بالای پیاده‌سازی احراز هویت و مجوزدهی
  1. پیکربندی پروژه و برنامه Google Cloud: در طول توسعه، برنامه خود را در کنسول Google Cloud ثبت می‌کنید، محدوده‌های مجوز و اعتبارنامه‌های دسترسی را برای تأیید اعتبار برنامه خود با یک کلید API، اعتبارنامه کاربر نهایی یا اعتبارنامه حساب سرویس تعریف می‌کنید.

  2. برنامه خود را برای دسترسی تأیید کنید: وقتی برنامه شما اجرا می‌شود، اعتبارنامه‌های دسترسی ثبت‌شده ارزیابی می‌شوند. اگر برنامه شما به عنوان کاربر نهایی تأیید اعتبار می‌شود، ممکن است یک اعلان ورود نمایش داده شود.

  3. درخواست منابع: وقتی برنامه شما نیاز به دسترسی به منابع گوگل دارد، با استفاده از محدوده‌های دسترسی مربوطه که قبلاً ثبت کرده‌اید، از گوگل درخواست می‌کند.

  4. درخواست رضایت کاربر: اگر برنامه شما به عنوان کاربر نهایی احراز هویت می‌شود، گوگل صفحه رضایت OAuth را نمایش می‌دهد تا کاربر بتواند تصمیم بگیرد که آیا به برنامه شما اجازه دسترسی به داده‌های درخواستی را بدهد یا خیر.

  5. ارسال درخواست تأیید شده برای منابع: اگر کاربر با محدوده دسترسی موافقت کند، برنامه شما اعتبارنامه‌ها و محدوده‌های دسترسی تأیید شده توسط کاربر را در یک درخواست قرار می‌دهد. این درخواست برای دریافت توکن دسترسی به سرور مجوز گوگل ارسال می‌شود.

  6. گوگل یک توکن دسترسی برمی‌گرداند: توکن دسترسی شامل فهرستی از محدوده‌های دسترسی اعطا شده است. اگر فهرست محدوده‌های بازگشتی محدودتر از محدوده‌های دسترسی درخواستی باشد، برنامه شما هر ویژگی محدود شده توسط توکن را غیرفعال می‌کند.

  7. دسترسی به منابع درخواستی: برنامه شما از توکن دسترسی گوگل برای فراخوانی APIهای مربوطه و دسترسی به منابع استفاده می‌کند.

  8. دریافت توکن به‌روزرسانی (اختیاری): اگر برنامه شما به دسترسی به یک API گوگل فراتر از طول عمر یک توکن دسترسی واحد نیاز داشته باشد، می‌تواند یک توکن به‌روزرسانی دریافت کند.

  9. درخواست منابع بیشتر: اگر دسترسی بیشتری مورد نیاز باشد، برنامه شما از کاربر می‌خواهد که محدوده‌های دسترسی جدیدی را اعطا کند که منجر به درخواست جدیدی برای دریافت توکن دسترسی می‌شود (مراحل ۳ تا ۶).

اصطلاحات مهم

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

احراز هویت

عملی که طی آن اطمینان حاصل می‌شود که یک مدیر اصلی ، که می‌تواند یک کاربر یا برنامه‌ای باشد که به نمایندگی از یک کاربر عمل می‌کند، همان کسی است که ادعا می‌کند. هنگام نوشتن برنامه‌های Google Workspace، باید از این نوع احراز هویت آگاه باشید:

احراز هویت کاربر
عمل احراز هویت (ورود) کاربر به برنامه شما. احراز هویت کاربر معمولاً از طریق فرآیند ورود به سیستم انجام می‌شود که در آن کاربر از ترکیبی از نام کاربری و رمز عبور برای تأیید هویت خود در برنامه استفاده می‌کند. احراز هویت کاربر می‌تواند با استفاده از ورود با گوگل در یک برنامه گنجانده شود.
احراز هویت برنامه
عمل احراز هویت مستقیم یک برنامه در سرویس‌های گوگل از طرف کاربری که برنامه را اجرا می‌کند. احراز هویت برنامه معمولاً با استفاده از اعتبارنامه‌های از پیش ایجاد شده در کد برنامه شما انجام می‌شود.
مجوز

مجوزها یا «اختیاری» که مدیر برای دسترسی به داده‌ها یا انجام عملیات دارد. برنامه شما با اطلاع دادن به کاربر مبنی بر اینکه برنامه می‌خواهد از طرف او عمل کند، درخواست مجوز می‌کند. اگر کاربر درخواست را بپذیرد، برنامه از اعتبارنامه‌های منحصر به فرد خود برای دریافت یک توکن دسترسی از گوگل استفاده می‌کند.

اعتبارنامه

نوعی از شناسایی که در امنیت نرم‌افزار استفاده می‌شود. از نظر احراز هویت، اعتبارنامه اغلب ترکیبی از نام کاربری و رمز عبور است. از نظر مجوز برای APIهای Google Workspace، اعتبارنامه معمولاً نوعی از شناسایی است، مانند یک رشته مخفی منحصر به فرد که فقط بین توسعه‌دهنده برنامه و سرور احراز هویت شناخته می‌شود. گوگل از این اعتبارنامه‌های احراز هویت پشتیبانی می‌کند: کلید API، شناسه کلاینت OAuth 2.0 و حساب‌های سرویس.

کلید API
اعتبارنامه‌ای که برای درخواست دسترسی به داده‌های عمومی، مانند داده‌های ارائه شده با استفاده از API نقشه‌ها، استفاده می‌شود. فایل‌های عمومی Google Workspace که با استفاده از تنظیم «هر کسی در اینترنت با این لینک» به اشتراک گذاشته می‌شوند، نیز می‌توانند از این طریق قابل دسترسی باشند، اگرچه بیشتر داده‌های Google Workspace به OAuth 2.0 نیاز دارند.
شناسه کلاینت OAuth 2
اعتبارنامه‌ای که برای درخواست دسترسی به داده‌های متعلق به کاربر استفاده می‌شود. این اعتبارنامه، اعتبارنامه اصلی مورد استفاده هنگام درخواست دسترسی به داده‌ها با استفاده از APIهای Google Workspace است. این اعتبارنامه نیاز به رضایت کاربر دارد.
راز مشتری
رشته‌ای از کاراکترها که فقط باید توسط برنامه شما و سرور تأیید شناخته شوند. رمز کلاینت با اعطای توکن‌ها فقط به درخواست‌کنندگان مجاز، از داده‌های کاربر محافظت می‌کند. هرگز نباید رمز کلاینت رمزگذاری نشده خود را در برنامه خود قرار دهید. توصیه می‌کنیم رمز کلاینت را به صورت ایمن ذخیره کنید. برای اطلاعات بیشتر، به بخش «مدیریت ایمن اعتبارنامه‌های کلاینت» مراجعه کنید.
کلیدهای حساب سرویس
توسط حساب‌های کاربری سرویس برای دریافت مجوز دسترسی به یک سرویس گوگل استفاده می‌شود.
حساب کاربری خدمات
یک اعتبارنامه که برای تعاملات سرور به سرور استفاده می‌شود، مانند یک برنامه بدون رابط کاربری که به عنوان یک فرآیند برای دسترسی به داده‌ها یا انجام عملیات اجرا می‌شود. حساب‌های کاربری سرویس معمولاً برای دسترسی به داده‌ها و عملیات مبتنی بر ابر استفاده می‌شوند. با این حال، هنگامی که با تفویض اختیار در سطح دامنه استفاده می‌شوند، می‌توانند برای دسترسی به داده‌های کاربر نیز استفاده شوند.
محدوده

یک رشته URI از نوع OAuth 2.0 که سطح دسترسی به منابع یا اقدامات اعطا شده به یک برنامه را تعریف می‌کند. برای Google Workspace، URI های دامنه مجوز شامل نام برنامه Google Workspace، نوع داده‌ای که به آن دسترسی دارد و سطح دسترسی هستند. کاربران برنامه شما می‌توانند دامنه‌های درخواستی را بررسی کرده و انتخاب کنند که چه دسترسی‌هایی را اعطا کنند، سپس سرور احراز هویت گوگل دامنه‌های مجاز را در قالب یک توکن دسترسی به برنامه شما برمی‌گرداند. برای جزئیات بیشتر، به نحوه انتخاب دامنه‌ها برای برنامه خود مراجعه کنید.

سرور احراز هویت

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

کد مجوز

کدی که از سرور مجوز ارسال می‌شود و برای دریافت توکن دسترسی استفاده می‌شود. این کد فقط زمانی مورد نیاز است که نوع برنامه شما یک برنامه وب سرور یا یک برنامه نصب شده باشد.

توکن دسترسی

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

سرور منابع

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

چارچوب OAuth 2.0

استانداردی که برنامه شما می‌تواند از آن برای ارائه "دسترسی امن واگذار شده" یا دسترسی به داده‌ها و عملیات از طرف کاربر برنامه استفاده کند. مکانیسم‌های احراز هویت و مجوزدهی که در برنامه خود استفاده می‌کنید، نشان‌دهنده پیاده‌سازی شما از چارچوب OAuth 2.0 است.

مدیر مدرسه

یک موجودیت، که به عنوان هویت نیز شناخته می‌شود، که می‌تواند به آن دسترسی به یک منبع داده شود. API های Google Workspace از دو نوع مدیر اصلی پشتیبانی می‌کنند: حساب‌های کاربری و حساب‌های خدماتی. برای جزئیات بیشتر، به مدیر اصلی‌ها مراجعه کنید.

نوع داده

در زمینه احراز هویت و مجوز، نوع داده به موجودیتی اشاره دارد که مالک داده‌هایی است که برنامه شما سعی در دسترسی به آنها دارد. سه نوع داده وجود دارد:

داده‌های حوزه عمومی
داده‌هایی که توسط هر کسی قابل دسترسی هستند، مانند برخی از داده‌های نقشه‌های گوگل. این داده‌ها معمولاً با استفاده از یک کلید API قابل دسترسی هستند.
داده‌های کاربر نهایی
داده‌های متعلق به یک کاربر یا گروه نهایی خاص، مانند فایل‌های گوگل درایو یک کاربر خاص. این نوع داده معمولاً با استفاده از شناسه کلاینت OAuth 2 یا حساب سرویس قابل دسترسی است.
داده‌های ابری
داده‌های متعلق به یک پروژه Google Cloud. این نوع داده معمولاً توسط یک حساب کاربری سرویس قابل دسترسی است.
رضایت کاربر

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

نوع برنامه

نوع برنامه‌ای که می‌خواهید ایجاد کنید. هنگام ایجاد اعتبارنامه با استفاده از کنسول Google Cloud، از شما خواسته می‌شود نوع برنامه خود را انتخاب کنید. انواع برنامه عبارتند از: برنامه وب (جاوااسکریپت)، اندروید، برنامه کروم، iOS، تلویزیون‌ها و دستگاه‌های ورودی محدود، برنامه دسکتاپ (که "برنامه نصب شده" نیز نامیده می‌شود) و پلتفرم جهانی ویندوز (UWP).

حساب کاربری خدمات

نوع خاصی از حساب گوگل که برای نمایش یک کاربر غیرانسانی در نظر گرفته شده است که نیاز به احراز هویت و مجوز دسترسی به داده‌ها دارد. برنامه شما هویت حساب سرویس را برای فراخوانی APIهای گوگل در نظر می‌گیرد، به طوری که کاربران مستقیماً درگیر نمی‌شوند. حساب‌های سرویس به خودی خود نمی‌توانند برای دسترسی به داده‌های کاربر که معمولاً با استفاده از APIهای Google Workspace قابل دسترسی هستند، استفاده شوند. با این حال، یک حساب سرویس می‌تواند با پیاده‌سازی تفویض اختیار در سطح دامنه به داده‌های کاربر دسترسی پیدا کند. برای جزئیات بیشتر، به درک حساب‌های سرویس مراجعه کنید.

تفویض اختیار در سطح دامنه

یک ویژگی مدیریتی که می‌تواند به یک برنامه اجازه دهد تا از طرف کاربران در سازمان Google Workspace به داده‌های کاربر دسترسی داشته باشد. از واگذاری اختیارات در سطح دامنه می‌توان برای انجام وظایف مربوط به مدیر بر روی داده‌های کاربر استفاده کرد. برای واگذاری اختیارات به این روش، مدیران Google Workspace از حساب‌های سرویس با OAuth 2.0 استفاده می‌کنند. به دلیل قدرت این ویژگی، فقط مدیران ارشد می‌توانند واگذاری اختیارات در سطح دامنه را فعال کنند. برای جزئیات بیشتر، به واگذاری اختیارات در سطح دامنه به یک حساب سرویس مراجعه کنید.

مرحله بعدی

صفحه رضایت OAuth برنامه خود را پیکربندی کنید تا مطمئن شوید کاربران می‌توانند دسترسی برنامه شما به داده‌هایشان را درک و تأیید کنند.