افزونه Google Workspace خود را به یک سرویس شخص ثالث متصل کنید

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

اگر افزونه Google Workspace شما به یک سرویس یا API شخص ثالث که نیاز به مجوز دارد وصل می‌شود، این افزونه می‌تواند از کاربران بخواهد وارد سیستم شوند و اجازه دسترسی را بدهند.

این صفحه نحوه احراز هویت کاربران را با استفاده از یک جریان مجوز (مانند OAuth) توضیح می‌دهد که شامل مراحل زیر است:

  1. تشخیص زمانی که مجوز لازم است.
  2. رابط کارتی را برگردانید که از کاربران می خواهد وارد سرویس شوند.
  3. افزونه را بازخوانی کنید تا کاربران بتوانند به سرویس یا منبع محافظت شده دسترسی داشته باشند.

اگر افزونه شما فقط به هویت کاربر نیاز دارد، می‌توانید مستقیماً با استفاده از شناسه Google Workspace یا آدرس ایمیل کاربران را احراز هویت کنید. برای استفاده از آدرس ایمیل برای احراز هویت، به تأیید درخواست‌های JSON مراجعه کنید. اگر افزونه خود را با استفاده از Google Apps Script ساخته‌اید، از مستندات Apps Script دیدن کنید تا در مورد اتصال افزونه خود به یک سرویس شخص ثالث اطلاعات کسب کنید.

تشخیص دهید که مجوز لازم است

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

  • رمز دسترسی برای اتصال به سرویس شخص ثالث هنوز ایجاد نشده یا منقضی شده است.
  • رمز دسترسی منبع درخواستی را پوشش نمی دهد.
  • رمز دسترسی محدوده های مورد نیاز درخواست را پوشش نمی دهد.

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

از کاربران بخواهید وارد سرویس شما شوند

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

توصیه می‌کنیم با استفاده از Google Sign-in از برنامه مقصد محافظت کنید و با استفاده از رمز شناسایی صادر شده در هنگام ورود، شناسه کاربری را دریافت کنید. ادعای فرعی حاوی شناسه منحصر به فرد کاربر است و می تواند با شناسه افزونه شما مرتبط باشد.

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

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

کارت مجوز پایه

تصویر زیر نمونه ای از کارت مجوز اولیه گوگل را نشان می دهد:

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

برای استفاده از کارت مجوز اصلی، پاسخ JSON زیر را برگردانید:

{
  "basic_authorization_prompt": {
    "authorization_url": "AUTHORIZATION_REDIRECT",
    "resource": "RESOURCE_DISPLAY_NAME"
  }
}

موارد زیر را جایگزین کنید:

  • AUTHORIZATION_REDIRECT : نشانی اینترنتی برنامه وب که مجوز را کنترل می کند.
  • RESOURCE_DISPLAY_NAME : نام نمایشی برای منبع یا سرویس محافظت شده. این نام در اعلان مجوز به کاربر نمایش داده می شود. به عنوان مثال، اگر RESOURCE_DISPLAY_NAME شما Example Account باشد، در فرمان می‌گوید "این افزونه می‌خواهد اطلاعات بیشتری را نشان دهد، اما برای دسترسی به حساب مثال شما به تایید نیاز دارد."

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

کارت مجوز سفارشی

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

اگر افزونه خود را به صورت عمومی منتشر می کنید، باید از کارت مجوز سفارشی استفاده کنید. برای کسب اطلاعات بیشتر در مورد الزامات انتشار برای Google Workspace Marketplace، به بررسی درباره برنامه مراجعه کنید.

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

یک کارت مجوز سفارشی برای Cymbal Labs که شامل لوگوی شرکت، توضیحات و دکمه ورود است.

برای استفاده از این نمونه کارت سفارشی، پاسخ JSON زیر را برگردانید:

{
  "custom_authorization_prompt": {
    "action": {
      "navigations": [
        {
          "pushCard": {
            "sections": [
              {
                "widgets": [
                  {
                    "image": {
                      "imageUrl": "LOGO_URL",
                      "altText": "LOGO_ALT_TEXT"
                    }
                  },
                  {
                    "divider": {}
                  },
                  {
                    "textParagraph": {
                      "text": "DESCRIPTION"
                    }
                  },
                  {
                    "buttonList": {
                      "buttons": [
                        {
                          "text": "Sign in",
                          "onClick": {
                            "openLink": {
                              "url": "AUTHORIZATION_REDIRECT",
                              "onClose": "RELOAD",
                              "openAs": "OVERLAY"
                            }
                          },
                          "color": {
                            "red": 0,
                            "green": 0,
                            "blue": 1,
                            "alpha": 1,
                          }
                        }
                      ]
                    }
                  },
                  {
                    "textParagraph": {
                      "text": "TEXT_SIGN_UP"
                    }
                  }
                ]
              }
            ]
          }
        }
      ]
    }
  }
}

موارد زیر را جایگزین کنید:

  • LOGO_URL : نشانی اینترنتی یک لوگو یا تصویر. باید یک URL عمومی باشد.
  • LOGO_ALT_TEXT : متن جایگزین برای لوگو یا تصویر، مانند Cymbal Labs Logo .
  • DESCRIPTION : یک فراخوان برای اقدام برای ورود کاربران، مانند Sign in to get started .
  • برای به روز رسانی دکمه ورود به سیستم:
    • AUTHORIZATION_REDIRECT : نشانی اینترنتی برنامه وب که مجوز را کنترل می کند.
    • اختیاری: برای تغییر رنگ دکمه، مقادیر شناور RGBA فیلد color را به‌روزرسانی کنید.
  • TEXT_SIGN_UP : متنی که از کاربران می‌خواهد در صورت نداشتن یک حساب کاربری ایجاد کنند. به عنوان مثال، New to Cymbal Labs? <a href=\"https://www.example.com/signup\">Sign up</a> here .