แอปให้สิทธิ์การเรียกใช้ customer 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 กับอีเมล
- เข้าร่วมบัญชีลูกค้าโดยใช้อีเมลเดียวกัน
- ยอมรับข้อกำหนดในการให้บริการ (ToS) ของลูกค้าในการตั้งค่าอุปกรณ์พร้อมใช้แบบรวมกลุ่ม
หากต้องการช่วยให้ผู้ใช้แอปตั้งค่าได้ ให้ใช้คำแนะนำของเราสำหรับผู้ดูแลระบบไอทีอีกครั้งในหัวข้อเริ่มต้นใช้งานและเชื่อมโยงบัญชี Google ในเอกสารของคุณเอง
การจัดการผู้ใช้
ผู้ดูแลระบบไอทีจัดการผู้ใช้สำหรับบัญชีลูกค้าในพอร์ทัลการลงทะเบียนอุปกรณ์พร้อมใช้แบบรวมกลุ่ม ผู้ใช้ในบัญชีลูกค้าจะมีบทบาทที่เป็นเจ้าของหรือผู้ดูแลระบบ ทั้ง 2 บทบาทมีสิทธิ์เข้าถึง 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 ในไฟล์ภายในโครงสร้างแหล่งที่มาของแอปพลิเคชัน
- หากคุณเก็บคีย์ API ไว้ในไฟล์ ให้เก็บไฟล์ไว้นอกโครงสร้างซอร์สของแอปพลิเคชันเพื่อให้แน่ใจว่าคีย์จะไม่เข้าไปอยู่ในระบบควบคุมซอร์สโค้ดของคุณ ซึ่งสำคัญมากหากคุณใช้ระบบจัดการซอร์สโค้ดสาธารณะ เช่น GitHub
- จำกัดคีย์ API ให้ใช้โดยที่อยู่ IP, URL ที่มา และแอปบนอุปกรณ์เคลื่อนที่ที่จำเป็นต้องใช้คีย์ API เท่านั้น
- การจำกัดที่อยู่ IP, URL ที่มา และแอปบนอุปกรณ์เคลื่อนที่ที่ใช้แต่ละคีย์ได้จะช่วยลดผลกระทบจากคีย์ API ที่ถูกบุกรุก คุณระบุโฮสต์และแอปที่ใช้แต่ละคีย์ได้จากคอนโซล Google API โดยเปิดหน้าข้อมูลเข้าสู่ระบบ จากนั้นสร้างคีย์ API ใหม่ด้วยการตั้งค่าที่ต้องการ หรือแก้ไขการตั้งค่าของคีย์ API
- ลบคีย์ API ที่ไม่จำเป็น
- หากต้องการลดโอกาสที่จะเกิดการโจมตี ให้ลบคีย์ API ที่คุณไม่ใช้แล้ว
- สร้างคีย์ API ใหม่เป็นระยะๆ
- คุณสร้างคีย์ API ใหม่จากคอนโซล Google API ได้โดยเปิดหน้าข้อมูลเข้าสู่ระบบ เลือกคีย์ API แล้วคลิกสร้างคีย์ใหม่สำหรับแต่ละคีย์ จากนั้นให้อัปเดตแอปพลิเคชันให้ใช้คีย์ที่สร้างขึ้นใหม่ คีย์เก่าจะยังคงใช้งานได้เป็นเวลา 24 ชั่วโมงหลังจากที่คุณสร้างคีย์เปลี่ยนทดแทน
- ตรวจสอบโค้ดของคุณก่อนเผยแพร่สู่สาธารณะ
- ตรวจสอบว่าโค้ดไม่มีคีย์ API หรือข้อมูลส่วนตัวอื่นๆ ก่อนทำให้โค้ดพร้อมใช้งานแบบสาธารณะ