การให้สิทธิ์

แอปให้สิทธิ์การเรียกใช้ API ของลูกค้าในการตั้งค่าอุปกรณ์พร้อมใช้แบบรวมกลุ่ม โดยใช้ OAuth เอกสารนี้อธิบายการให้สิทธิ์ API สำหรับ ผู้ให้บริการ Enterprise Mobility Management (EMM) และนักพัฒนาซอฟต์แวร์ด้านไอทีระดับองค์กร หลังจากอ่านเอกสารนี้ คุณจะทราบวิธีให้สิทธิ์คำขอ API ใน และอธิบายข้อกำหนดของบัญชีให้ผู้ใช้แอปทราบ

การเริ่มต้นการให้สิทธิ์อย่างรวดเร็ว

  • วิธีตั้งค่าโปรเจ็กต์ Google Cloud Platform ด้วย API การตั้งค่าอุปกรณ์พร้อมใช้แบบรวมกลุ่ม และรหัสลับไคลเอ็นต์ OAuth ให้เรียกใช้วิซาร์ดนี้
  • สร้างโค้ดตัวอย่างการเริ่มต้นอย่างรวดเร็วสำหรับ Java, .NET หรือ Python ใช้ไลบรารีไคลเอ็นต์ API ของ Google เพื่อสนับสนุน ภาษา

ภาพรวม

ความสัมพันธ์ของอุปกรณ์และทรัพยากรลูกค้า

  1. ผู้ดูแลระบบไอทีอย่างน้อย 1 คนเป็นผู้ใช้ในบัญชีลูกค้าสำหรับการตั้งค่าอุปกรณ์พร้อมใช้แบบรวมกลุ่ม
  2. ผู้ดูแลระบบไอทีใช้บัญชี Google ในการตรวจสอบสิทธิ์ตนเอง
  3. คำขอ API จะส่งโทเค็น OAuth2 เพื่อให้สิทธิ์คำขอ API ในนามของ ผู้ดูแลระบบไอที

บัญชีลูกค้า

การกำหนดค่า อุปกรณ์ และผู้ใช้ (ผู้ดูแลระบบไอที) ขององค์กรเป็นของ บัญชีของลูกค้า บัญชีลูกค้ามีลักษณะคล้ายกับกลุ่มและไม่ใช่ ผู้ใช้รายบุคคล ตัวแทนจำหน่ายจะตั้งค่าลูกค้าเมื่อองค์กรซื้ออุปกรณ์สำหรับการตั้งค่าอุปกรณ์พร้อมใช้แบบรวมกลุ่มเป็นครั้งแรก ผู้ดูแลระบบไอทีจะจัดการผู้ใช้คนอื่นๆ ใน องค์กรโดยใช้พอร์ทัลการตั้งค่าอุปกรณ์พร้อมใช้แบบรวมกลุ่ม

API ใช้รหัสลูกค้าที่เป็นตัวเลขในการระบุบัญชี คุณส่งต่อรหัสลูกค้า เป็นส่วนหนึ่งของเส้นทาง URL เมื่อเรียกใช้เมธอด API แอปของคุณต้องมี รหัสลูกค้าก่อนที่จะเรียกใช้เมธอด API

ตัวอย่างด้านล่างแสดงวิธีขอรับบัญชีลูกค้าสำหรับผู้ใช้ที่ ให้สิทธิ์การเรียก API:

Java

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());
    }
}

.NET

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);
}

Python

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 บัญชีแรก หากต้องการดูวิธีการดำเนินการ โปรดอ่าน ผลลัพธ์แบบแบ่งหน้า

องค์กรมักจะมีบัญชีลูกค้า 1 บัญชี แต่องค์กรขนาดใหญ่กว่า อาจใช้บัญชีลูกค้าแยกกันสำหรับแต่ละแผนก เนื่องจากผู้ดูแลระบบไอทีสามารถเป็นสมาชิกของบัญชีลูกค้าต่างๆ แอปของคุณจึงควรช่วยให้ผู้ใช้ค้นหาและใช้บัญชีลูกค้าใหม่ได้ ในแอปของคุณ ให้ติดป้ายกำกับบัญชีลูกค้าแต่ละบัญชีโดยใช้ companyName

ผู้ใช้

ผู้ดูแลระบบไอทีให้สิทธิ์คำขอ API ที่แอปของคุณส่งในนามของผู้ดูแลระบบเหล่านั้น หากต้องการให้สิทธิ์คำขอ API ผู้ใช้แอปของคุณต้องทำดังนี้

  1. เชื่อมโยงบัญชี Google กับอีเมล
  2. เข้าร่วมบัญชีลูกค้าโดยใช้อีเมลเดียวกัน
  3. ยอมรับข้อกำหนดในการให้บริการ (ข้อกำหนดในการให้บริการ) ของลูกค้าการตั้งค่าอุปกรณ์พร้อมใช้แบบรวมกลุ่ม

เพื่อช่วยในการตั้งค่าผู้ใช้แอป ให้ใช้คำแนะนำสำหรับผู้ดูแลระบบไอทีในหัวข้อดาวน์โหลด เริ่มต้น และเชื่อมโยงบัญชี Google ในเอกสารของคุณเอง

การจัดการผู้ใช้

ผู้ดูแลระบบไอทีจัดการผู้ใช้ในบัญชีของลูกค้าได้ด้วยการแตะการตั้งค่าอุปกรณ์พร้อมใช้แบบรวมกลุ่ม ด้วยพอร์ทัลการลงทะเบียน ผู้ใช้ในบัญชีของลูกค้ามีบทบาทที่เป็น เจ้าของหรือผู้ดูแลระบบ ทั้ง 2 บทบาทมีสิทธิ์เข้าถึง Customer API เดียวกัน แต่ เจ้าของจะจัดการผู้ใช้คนอื่นได้

การยอมรับข้อกำหนดในการให้บริการ

ผู้ใช้แอปต้องยอมรับการเรียก API ข้อกำหนดในการให้บริการ ซึ่งจะเกิดขึ้นเมื่อผู้ดูแลระบบไอทีใช้การตั้งค่าอุปกรณ์พร้อมใช้แบบรวมกลุ่มเป็นครั้งแรก หรือเมื่อเรา อัปเดตข้อกำหนดในการให้บริการ เมื่อผู้ใช้ไม่ได้ยอมรับข้อกำหนดในการให้บริการล่าสุด API จะแสดงผล รหัสสถานะ HTTP 403 Forbidden และเนื้อหาการตอบกลับมีแอตทริบิวต์ TosError

พอร์ทัลจะแจ้งให้ผู้ใช้ยอมรับข้อกำหนดในการให้บริการล่าสุดโดยอัตโนมัติเมื่อลงนาม นิ้ว หากต้องการดูแนวทางที่แนะนำซึ่งแอปของคุณอาจรวมไว้ โปรดอ่านข้อกำหนดของแฮนเดิล บริการในคู่มือการผสานรวม EMM

เพิ่มการให้สิทธิ์ลงในแอปของคุณ

ทุกคำขอที่แอปส่งไปยัง Customer API จะต้องมีโทเค็นการให้สิทธิ์ โทเค็นดังกล่าวจะระบุตัวตนแอปพลิเคชันของคุณให้ Google ทราบด้วย เนื่องจาก API ของลูกค้าเข้าถึงข้อมูลผู้ใช้ การให้สิทธิ์จึงต้องมาจากเจ้าของข้อมูล แอปของคุณมอบสิทธิ์ API ให้กับผู้ดูแลระบบไอทีโดยใช้ OAuth 2.0 โปรโตคอล

วิธีการ

เรามีคู่มือเริ่มใช้งานฉบับย่อสำหรับ Java, .NET และ แอป Python หากใช้ภาษาอื่น ให้ทำตาม 2 ภาษา ขั้นตอนด้านล่างในการตั้งค่าการให้สิทธิ์สำหรับ แอป

หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการให้สิทธิ์ โปรดอ่านการใช้ OAuth 2.0 เพื่อเข้าถึง Google API

ขอบเขตการให้สิทธิ์

ใช้ขอบเขตการให้สิทธิ์ API https://www.googleapis.com/auth/androidworkzerotouchemm ในแอปเพื่อขอโทเค็นการเข้าถึง OAuth 2.0

พารามิเตอร์ขอบเขตจะควบคุมชุดทรัพยากรและการดำเนินการที่การเข้าถึง โทเค็นอนุญาตให้เรียกใช้ โทเค็นการเข้าถึงใช้ได้กับชุดการดำเนินการและทรัพยากรที่อธิบายไว้ในขอบเขตของคำขอโทเค็นเท่านั้น API ครอบคลุมเมธอดและทรัพยากรทั้งหมดที่มีขอบเขตการตั้งค่าอุปกรณ์พร้อมใช้แบบรวมกลุ่มเดียวที่แสดงอยู่ด้านบน

สำหรับตัวอย่างขอบเขตการตั้งค่าอุปกรณ์พร้อมใช้แบบรวมกลุ่มที่ใช้กับ Google API ไลบรารีของไคลเอ็นต์ โปรดดูการเริ่มต้นอย่างรวดเร็วสำหรับ Java, .NET และ Python หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการใช้ขอบเขต Google API โปรดอ่านการใช้ OAuth 2.0 เพื่อเข้าถึง Google API

แนวทางปฏิบัติแนะนำสำหรับคีย์ API

เมื่อคุณใช้คีย์ API ในแอปพลิเคชัน โปรดใช้ความระมัดระวังเพื่อรักษาคีย์ดังกล่าวให้ปลอดภัย การเปิดเผยข้อมูลเข้าสู่ระบบต่อสาธารณะอาจทำให้บัญชีของคุณถูกบุกรุก ซึ่งอาจนำไปสู่การเรียกเก็บเงินที่ไม่คาดคิดในบัญชี ทําตามแนวทางปฏิบัติแนะนำต่อไปนี้เพื่อรักษาความปลอดภัยให้คีย์ API

อย่าฝังคีย์ API ในโค้ดโดยตรง
คีย์ API ที่ฝังอยู่ในโค้ดอาจได้รับการเปิดเผยโดยไม่ได้ตั้งใจ สาธารณะ ตัวอย่างเช่น ถ้าคุณลืมนำคีย์ออกจากโค้ดที่คุณ แชร์ แทนที่จะฝังคีย์ API ในแอปพลิเคชัน ให้จัดเก็บคีย์เหล่านั้นในตัวแปรสภาพแวดล้อมหรือในไฟล์นอกโครงสร้างซอร์สโค้ดของแอปพลิเคชัน
อย่าจัดเก็บคีย์ API ในไฟล์ภายในแผนผังแหล่งที่มาของแอปพลิเคชัน
หากคุณจัดเก็บคีย์ API ไว้ในไฟล์ ให้เก็บไฟล์ไว้นอกแอปพลิเคชัน แผนผังแหล่งที่มาเพื่อช่วยให้แน่ใจว่าคีย์ของคุณจะไม่ไปอยู่ในการควบคุมซอร์สโค้ดของคุณ ระบบ ซึ่งเป็นสิ่งสำคัญโดยเฉพาะอย่างยิ่งหากคุณใช้ซอร์สโค้ดสาธารณะ ระบบการจัดการ เช่น GitHub
จำกัดให้ใช้คีย์ API เฉพาะกับที่อยู่ IP, URL ของผู้อ้างอิง และแอปบนอุปกรณ์เคลื่อนที่ที่ต้องการเท่านั้น
การจำกัดที่อยู่ IP, URL ของผู้อ้างอิง และแอปบนอุปกรณ์เคลื่อนที่ที่ใช้คีย์แต่ละรายการได้จะช่วยคุณลดผลกระทบจากคีย์ API ที่ถูกบุกรุก คุณสามารถ ระบุโฮสต์และแอปที่สามารถใช้แต่ละคีย์จากคอนโซล Google API โดยเปิดหน้าข้อมูลเข้าสู่ระบบ แล้วสร้าง API ใหม่ ด้วยการตั้งค่าที่คุณต้องการ หรือการแก้ไขการตั้งค่าของ API
ลบคีย์ API ที่ไม่จำเป็น
หากต้องการลดความเสี่ยงต่อการถูกโจมตี ให้ลบคีย์ API ที่คุณไม่ได้อนุญาต ที่มีความต้องการใช้งานมากขึ้น
สร้างคีย์ API ใหม่เป็นระยะ
คุณสามารถสร้างคีย์ API ใหม่จากคอนโซล Google API โดยเปิด หน้าข้อมูลเข้าสู่ระบบ เลือกคีย์ API แล้วคลิกสร้างใหม่ สำหรับแต่ละคีย์ จากนั้นอัปเดตแอปพลิเคชันของคุณให้ใช้ คีย์ คีย์เก่าของคุณจะยังคงใช้งานได้เป็นเวลา 24 ชั่วโมงหลังจากที่คุณสร้าง คีย์ใหม่
ตรวจสอบโค้ดก่อนเผยแพร่สู่สาธารณะ
ตรวจสอบว่าโค้ดของคุณไม่มีคีย์ API หรือส่วนส่วนตัวอื่นๆ ก่อนจะเผยแพร่โค้ดต่อสาธารณะ