مجوز

برنامه‌ها با استفاده از OAuth به تماس‌ها با API ثبت‌نام مشتری بدون لمس اجازه می‌دهند. این سند مجوز API را برای ارائه دهندگان مدیریت تحرک سازمانی (EMM) و توسعه دهندگان فناوری اطلاعات سازمانی توضیح می دهد. پس از خواندن این سند، می‌دانید که چگونه درخواست‌های API را در برنامه خود مجاز کنید و الزامات حساب را برای کاربران برنامه خود توضیح دهید.

شروع سریع مجوز

  • برای راه‌اندازی یک پروژه Google Cloud Platform با API ثبت‌نام بدون لمس و رازهای سرویس گیرنده OAuth، این جادوگر را اجرا کنید.
  • کد نمونه شروع سریع را برای جاوا ، دات نت یا پایتون بسازید. از کتابخانه های سرویس گیرنده API Google برای پشتیبانی از زبان های دیگر استفاده کنید.

بررسی اجمالی

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

  1. یک یا چند سرپرست فناوری اطلاعات کاربرانی هستند که در یک حساب مشتری ثبت نام بدون لمس هستند.
  2. سرپرستان فناوری اطلاعات از یک حساب Google برای احراز هویت خود استفاده می کنند.
  3. درخواست‌های API یک توکن OAuth2 را برای تأیید درخواست‌های API از طرف سرپرست فناوری اطلاعات ارسال می‌کنند.

حساب های مشتری

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

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

مثال زیر نحوه دریافت حساب های مشتری برای کاربری که تماس API را مجاز می کند نشان می دهد:

جاوا

AndroidProvisioningPartner.Customers.List accountRequest = service.customers().list();
accountRequest.setPageSize(100);
CustomerListCustomersResponse accountResponse = accountRequest.execute();

List<Company> customers = accountResponse.getCustomers();
if (customers == null || customers.isEmpty()) {
    // No accounts found for the user. Confirm the Google Account
    // that authorizes the request can access the zero-touch portal.
    System.out.println("No zero-touch enrollment account found.");
} else {
    // Print the customers in this page.
    for (Company customer : customers) {
        System.out.format("%s\tcustomers/%d\n",
              customer.getCompanyName(), customer.getCompanyId());
    }
}

.خالص

CustomersResource.ListRequest accountRequest = service.Customers.List();
accountRequest.PageSize = 100;
CustomerListCustomersResponse accountResponse = accountRequest.Execute();
IList<Company> customers = accountResponse.Customers ?? new List<Company>();
if (customers.Count == 0)
{
    // No accounts found for the user. Confirm the Google Account
    // that authorizes the request can access the zero-touch portal.
    Console.WriteLine("No zero-touch enrollment account found.");
}
foreach (Company customer in customers)
{
    Console.WriteLine("{0}\tcustomers/{1}",
                      customer.CompanyName,
                      customer.CompanyId);
}

پایتون

response = service.customers().list(pageSize=100).execute()
if 'customers' not in response:
  # No accounts found for the user. Confirm the Google Account
  # that authorizes the request can access the zero-touch portal.
  print('No zero-touch enrollment account found.')
  response['customers'] = []

for customer in response['customers']:
  print('{0}\tcustomers/{1}'.format(
      customer['companyName'], customer['companyId']))

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

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

کاربران

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

  1. یک حساب Google را با آدرس ایمیل آنها مرتبط کنید.
  2. با استفاده از همان آدرس ایمیل به یک حساب مشتری بپیوندید.
  3. شرایط خدمات (ToS) مشتری ثبت نام بدون لمس را بپذیرید.

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

مدیریت کاربر

مدیران فناوری اطلاعات کاربران را برای حساب های مشتری خود در پورتال ثبت نام بدون لمس مدیریت می کنند. کاربران در حساب مشتری نقشی دارند که یا مالک یا سرپرست است. هر دو نقش دسترسی یکسان به API مشتری دارند اما مالک می‌تواند سایر کاربران را مدیریت کند.

پذیرش ToS

قبل از اینکه کاربران برنامه شما بتوانند تماس‌های API را مجاز کنند، باید آخرین ToS را بپذیرند. این زمانی اتفاق می‌افتد که سرپرستان فناوری اطلاعات برای اولین بار از ثبت‌نام بدون لمس استفاده می‌کنند یا زمانی که ما ToS را به‌روزرسانی می‌کنیم. وقتی کاربر آخرین ToS را نپذیرفت، API یک کد وضعیت HTTP 403 Forbidden را برمی‌گرداند و بدنه پاسخ حاوی یک TosError است.

پورتال به طور خودکار از کاربران می‌خواهد که آخرین ToS را هنگام ورود به سیستم بپذیرند. برای مشاهده رویکردهای پیشنهادی که برنامه شما می‌تواند شامل شود، Handle Terms of Service را در راهنمای ادغام EMM بخوانید.

مجوز را به برنامه خود اضافه کنید

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

دستورالعمل ها

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

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

محدوده مجوز

از محدوده مجوز API https://www.googleapis.com/auth/androidworkzerotouchemm در برنامه خود برای درخواست رمز دسترسی OAuth 2.0 استفاده کنید.

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

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

بهترین روش ها برای کلیدهای API

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

کلیدهای API را مستقیماً در کد جاسازی نکنید
کلیدهای API که در کد جاسازی شده‌اند ممکن است به‌طور تصادفی در معرض دید عموم قرار گیرند - برای مثال، اگر فراموش کنید کلیدها را از کدی که به اشتراک می‌گذارید حذف کنید. به جای جاسازی کلیدهای API در برنامه های خود، آنها را در متغیرهای محیطی یا در فایل های خارج از درخت منبع برنامه خود ذخیره کنید.
کلیدهای API را در فایل های داخل درخت منبع برنامه خود ذخیره نکنید
اگر کلیدهای API را در فایل‌ها ذخیره می‌کنید، فایل‌ها را خارج از درخت منبع برنامه خود نگه دارید تا مطمئن شوید که کلیدهای شما به سیستم کنترل کد منبع شما ختم نمی‌شوند. اگر از سیستم مدیریت کد منبع عمومی مانند GitHub استفاده می کنید، این امر به ویژه مهم است.
کلیدهای API خود را محدود کنید تا فقط توسط آدرس‌های IP، نشانی‌های اینترنتی ارجاع‌دهنده و برنامه‌های تلفن همراهی که به آنها نیاز دارند استفاده شوند.
با محدود کردن آدرس‌های IP، نشانی‌های اینترنتی ارجاع‌دهنده و برنامه‌های تلفن همراهی که می‌توانند از هر کلید استفاده کنند، می‌توانید تأثیر یک کلید API در معرض خطر را کاهش دهید. می‌توانید میزبان‌ها و برنامه‌هایی را که می‌توانند از هر کلید از کنسول API Google استفاده کنند، با باز کردن صفحه اعتبارنامه‌ها و سپس ایجاد یک کلید API جدید با تنظیمات مورد نظر خود یا ویرایش تنظیمات یک کلید API مشخص کنید.
کلیدهای غیر ضروری API را حذف کنید
برای به حداقل رساندن قرار گرفتن در معرض حمله، کلیدهای API را که دیگر نیاز ندارید حذف کنید.
کلیدهای API خود را به صورت دوره ای بازسازی کنید
می‌توانید کلیدهای API را از کنسول API Google با باز کردن صفحه اعتبارنامه‌ها ، انتخاب یک کلید API و کلیک کردن روی «بازسازی کلید» برای هر کلید، بازسازی کنید. سپس برنامه های خود را برای استفاده از کلیدهای جدید تولید شده به روز کنید. پس از تولید کلیدهای جایگزین، کلیدهای قدیمی شما تا 24 ساعت به کار خود ادامه می دهند.
کد خود را قبل از انتشار عمومی بررسی کنید
قبل از اینکه کد خود را برای عموم در دسترس قرار دهید، مطمئن شوید که کد شما حاوی کلیدهای API یا اطلاعات خصوصی دیگری نیست.