แอปให้สิทธิ์การเรียกใช้ API ของลูกค้าในการตั้งค่าอุปกรณ์พร้อมใช้แบบรวมกลุ่ม โดยใช้ OAuth เอกสารนี้อธิบายการให้สิทธิ์ API สำหรับ ผู้ให้บริการ Enterprise Mobility Management (EMM) และนักพัฒนาซอฟต์แวร์ด้านไอทีระดับองค์กร หลังจากอ่านเอกสารนี้ คุณจะทราบวิธีให้สิทธิ์คำขอ API ใน และอธิบายข้อกำหนดของบัญชีให้ผู้ใช้แอปทราบ
การเริ่มต้นการให้สิทธิ์อย่างรวดเร็ว
- วิธีตั้งค่าโปรเจ็กต์ Google Cloud Platform ด้วย API การตั้งค่าอุปกรณ์พร้อมใช้แบบรวมกลุ่ม และรหัสลับไคลเอ็นต์ OAuth ให้เรียกใช้วิซาร์ดนี้
- สร้างโค้ดตัวอย่างการเริ่มต้นอย่างรวดเร็วสำหรับ Java, .NET หรือ Python ใช้ไลบรารีไคลเอ็นต์ API ของ Google เพื่อสนับสนุน ภาษา
ภาพรวม
- ผู้ดูแลระบบไอทีอย่างน้อย 1 คนคือผู้ใช้ในบัญชีลูกค้าการตั้งค่าอุปกรณ์พร้อมใช้แบบรวมกลุ่ม
- ผู้ดูแลระบบไอทีใช้บัญชี Google ในการตรวจสอบสิทธิ์ตนเอง
- คำขอ 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 ผู้ใช้แอปของคุณต้องดำเนินการต่อไปนี้
- เชื่อมโยงบัญชี Google กับอีเมล
- เข้าร่วมบัญชีลูกค้าโดยใช้อีเมลเดียวกัน
- ยอมรับข้อกำหนดในการให้บริการ (ข้อกำหนดในการให้บริการ) ของลูกค้าการตั้งค่าอุปกรณ์พร้อมใช้แบบรวมกลุ่ม
เพื่อช่วยในการตั้งค่าผู้ใช้แอป ให้ใช้คำแนะนำสำหรับผู้ดูแลระบบไอทีในหัวข้อดาวน์โหลด เริ่มต้น และเชื่อมโยงบัญชี Google ในเอกสารของคุณเอง
การจัดการผู้ใช้
ผู้ดูแลระบบไอทีจัดการผู้ใช้ในบัญชีของลูกค้าได้ด้วยการแตะการตั้งค่าอุปกรณ์พร้อมใช้แบบรวมกลุ่ม ด้วยพอร์ทัลการลงทะเบียน ผู้ใช้ในบัญชีของลูกค้ามีบทบาทที่เป็น เจ้าของหรือผู้ดูแลระบบ ทั้ง 2 บทบาทมีสิทธิ์เข้าถึง Customer API เดียวกัน แต่ เจ้าของจะจัดการผู้ใช้คนอื่นได้
การยอมรับข้อกำหนดในการให้บริการ
ผู้ใช้แอปต้องยอมรับการเรียก API
ข้อกำหนดในการให้บริการ ซึ่งจะเกิดขึ้นเมื่อผู้ดูแลระบบไอทีใช้การตั้งค่าอุปกรณ์พร้อมใช้แบบรวมกลุ่มเป็นครั้งแรก หรือเมื่อเรา
อัปเดตข้อกำหนดในการให้บริการ เมื่อผู้ใช้ไม่ได้ยอมรับข้อกำหนดในการให้บริการล่าสุด API จะแสดงผล
รหัสสถานะ HTTP 403 Forbidden
และเนื้อหาการตอบกลับมีแอตทริบิวต์
TosError
พอร์ทัลจะแจ้งให้ผู้ใช้ยอมรับข้อกำหนดในการให้บริการล่าสุดโดยอัตโนมัติเมื่อลงนาม นิ้ว หากต้องการดูแนวทางที่แนะนำซึ่งแอปของคุณอาจรวมไว้ โปรดอ่านข้อกำหนดของแฮนเดิล บริการในคู่มือการผสานรวม EMM
เพิ่มการให้สิทธิ์ลงในแอปของคุณ
ทุกคำขอที่แอปของคุณส่งไปยัง 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 ในไฟล์ภายในแผนผังแหล่งที่มาของแอปพลิเคชัน
- หากคุณจัดเก็บคีย์ API ไว้ในไฟล์ ให้เก็บไฟล์ไว้นอกแอปพลิเคชัน แผนผังแหล่งที่มาเพื่อช่วยให้แน่ใจว่าคีย์ของคุณจะไม่ไปอยู่ในการควบคุมซอร์สโค้ดของคุณ ระบบ ซึ่งเป็นสิ่งสำคัญโดยเฉพาะอย่างยิ่งหากคุณใช้ซอร์สโค้ดสาธารณะ ระบบการจัดการ เช่น GitHub
- จำกัดคีย์ API ให้ใช้โดยที่อยู่ IP, URL ที่มาเท่านั้น และแอปบนอุปกรณ์เคลื่อนที่ที่ต้องการ
- โดยการจำกัดที่อยู่ IP, URL ผู้อ้างอิง และแอปบนอุปกรณ์เคลื่อนที่ที่สามารถ ใช้แต่ละคีย์ คุณก็จะลดผลกระทบจากคีย์ API ที่ถูกบุกรุกได้ คุณสามารถ ระบุโฮสต์และแอปที่สามารถใช้แต่ละคีย์จากคอนโซล Google API โดยเปิดหน้าข้อมูลเข้าสู่ระบบ แล้วสร้าง API ใหม่ ด้วยการตั้งค่าที่คุณต้องการ หรือการแก้ไขการตั้งค่าของ API
- ลบคีย์ API ที่ไม่จำเป็น
- หากต้องการลดความเสี่ยงต่อการถูกโจมตี ให้ลบคีย์ API ที่คุณไม่ได้อนุญาต ที่มีความต้องการใช้งานมากขึ้น
- สร้างคีย์ API ใหม่เป็นระยะ
- คุณสามารถสร้างคีย์ API ใหม่จากคอนโซล Google API โดยเปิด หน้าข้อมูลเข้าสู่ระบบ เลือกคีย์ API แล้วคลิกสร้างใหม่ สำหรับแต่ละคีย์ จากนั้นอัปเดตแอปพลิเคชันของคุณให้ใช้ คีย์ คีย์เก่าของคุณจะยังคงใช้งานได้เป็นเวลา 24 ชั่วโมงหลังจากที่คุณสร้าง คีย์ใหม่
- ตรวจสอบโค้ดก่อนเผยแพร่สู่สาธารณะ
- ตรวจสอบว่าโค้ดของคุณไม่มีคีย์ API หรือส่วนส่วนตัวอื่นๆ ก่อนจะเผยแพร่โค้ดต่อสาธารณะ