การตรวจสอบสิทธิ์และการให้สิทธิ์เป็นกลไกที่ใช้ในการยืนยันตัวตนและการเข้าถึงทรัพยากรตามลำดับ เอกสารนี้จะระบุคำสำคัญที่คุณควรทราบก่อนที่จะนำการตรวจสอบสิทธิ์และการให้สิทธิ์ไปใช้กับแอปของคุณ
การตรวจสอบสิทธิ์ระบุว่าใครเป็นผู้ส่งคำขอ การให้สิทธิ์จะระบุทรัพยากรที่ผู้ขอเข้าถึงได้และระดับการเข้าถึงที่ผู้ขอมี การตรวจสอบสิทธิ์เป็นข้อกำหนดเบื้องต้น สำหรับการให้สิทธิ์ คุณจะไม่สามารถระบุทรัพยากรที่เข้าถึงได้หากไม่สร้างข้อมูลประจำตัวของผู้ขอไว้ก่อน ดูคำจำกัดความโดยละเอียดเพิ่มเติมได้ในส่วนคำศัพท์สำคัญ
ลองดูตัวอย่างการจองโรงแรมอย่างง่ายๆ ต่อไปนี้ เมื่อคุณมาถึงโรงแรม พนักงานต้อนรับจะขอบัตรประจำตัวเพื่อยืนยันการจอง บัตรประจำตัวจะตรวจสอบสิทธิ์นำคุณไปยังโรงแรม พนักงานต้อนรับ ส่งบัตรโรงแรมให้คุณ คีย์นี้ให้คุณเข้าถึงทรัพยากรบางอย่างของโรงแรม เช่น ห้องในโรงแรม ฟิตเนส และศูนย์ธุรกิจ คีย์โรงแรมจะให้สิทธิ์คุณเข้าถึงทรัพยากรเหล่านั้น
ภาพรวมของกระบวนการ
แผนภาพต่อไปนี้จะแสดงขั้นตอนระดับสูงของการตรวจสอบสิทธิ์และการให้สิทธิ์สำหรับ Google Workspace API
กำหนดค่าโปรเจ็กต์ Google Cloud และแอป: ในระหว่างการพัฒนา คุณจะลงทะเบียนแอปในคอนโซล Google Cloud เพื่อกำหนดขอบเขตการให้สิทธิ์และข้อมูลเข้าสู่ระบบเพื่อตรวจสอบสิทธิ์แอปด้วยคีย์ API, ข้อมูลเข้าสู่ระบบของผู้ใช้ปลายทาง หรือข้อมูลเข้าสู่ระบบบัญชีบริการ
ตรวจสอบสิทธิ์ของแอปเพื่อเข้าถึง: เมื่อแอปทำงาน ระบบจะประเมินข้อมูลเข้าสู่ระบบที่ลงทะเบียนไว้ หากแอปมีการตรวจสอบสิทธิ์ในฐานะผู้ใช้ปลายทาง อาจมีข้อความแจ้งการลงชื่อเข้าใช้ปรากฏขึ้น
ขอทรัพยากร: เมื่อแอปของคุณต้องการเข้าถึงทรัพยากรของ Google แอปจะถาม Google โดยใช้ขอบเขตการเข้าถึงที่เกี่ยวข้องซึ่งคุณลงทะเบียนไว้ก่อนหน้านี้
ขอความยินยอมจากผู้ใช้: หากแอปมีการตรวจสอบสิทธิ์ในฐานะผู้ใช้ปลายทาง Google จะแสดงหน้าจอขอความยินยอม OAuth เพื่อให้ผู้ใช้เลือกได้ว่าจะให้สิทธิ์เข้าถึงข้อมูลที่ขอแก่แอปหรือไม่
ส่งคำขอทรัพยากรที่ได้รับอนุมัติ: หากผู้ใช้ยินยอมให้ใช้ขอบเขตการเข้าถึง App Bundle ของข้อมูลเข้าสู่ระบบและขอบเขตการเข้าถึงที่ผู้ใช้อนุมัติไว้ในคำขอ คำขอจะส่งไปยังเซิร์ฟเวอร์การให้สิทธิ์ของ Google เพื่อรับโทเค็นเพื่อการเข้าถึง
Google แสดงผลโทเค็นเพื่อการเข้าถึง: โทเค็นเพื่อการเข้าถึงมีรายการขอบเขตการเข้าถึงที่ได้รับสิทธิ์ หากรายการขอบเขตที่แสดงมีจำกัดมากกว่าขอบเขตการเข้าถึงที่ขอ แอปจะปิดใช้ฟีเจอร์ที่โทเค็นจำกัด
การเข้าถึงทรัพยากรที่ขอ: แอปใช้โทเค็นเพื่อการเข้าถึงจาก Google เพื่อเรียกใช้ API ที่เกี่ยวข้องและเข้าถึงทรัพยากร
รับโทเค็นการรีเฟรช (ไม่บังคับ): หากแอปจำเป็นต้องเข้าถึง Google API เกินอายุการใช้งานของโทเค็นเพื่อการเข้าถึงเพียงรายการเดียว แอปจะรับโทเค็นการรีเฟรชได้
ขอทรัพยากรเพิ่มเติม: หากจำเป็นต้องเข้าถึงเพิ่มเติม แอปจะขอให้ผู้ใช้ให้สิทธิ์เข้าถึงขอบเขตใหม่ ซึ่งจะส่งผลให้เกิดคำขอใหม่เพื่อรับโทเค็นเพื่อการเข้าถึง (ขั้นตอนที่ 3-6)
คำศัพท์ที่สำคัญ
ต่อไปนี้เป็นรายการคำศัพท์ที่เกี่ยวข้องกับการตรวจสอบสิทธิ์และการให้สิทธิ์
- การตรวจสอบสิทธิ์
การดำเนินการตรวจสอบว่าผู้ใช้หลัก ซึ่งอาจเป็นผู้ใช้หรือแอปที่ดำเนินการในนามของผู้ใช้ได้ตามที่ผู้ใช้รายนั้นๆ ระบุ เมื่อเขียนแอป Google Workspace คุณควรตระหนักถึงการตรวจสอบสิทธิ์ประเภทต่อไปนี้
- การตรวจสอบสิทธิ์ผู้ใช้
- การดำเนินการของผู้ใช้ตรวจสอบสิทธิ์ (ลงชื่อเข้าใช้) แอปของคุณ โดยปกติการตรวจสอบสิทธิ์ผู้ใช้จะทำผ่านกระบวนการลงชื่อเข้าใช้ซึ่งผู้ใช้ใช้ชื่อผู้ใช้และรหัสผ่านเพื่อยืนยันตัวตนกับแอป รวมการตรวจสอบสิทธิ์ผู้ใช้เข้ากับแอปได้โดยใช้การลงชื่อเข้าใช้ด้วย Google
- การตรวจสอบสิทธิ์แอป
- การดำเนินการของแอปที่ตรวจสอบสิทธิ์โดยตรงในบริการต่างๆ ของ Google ในนามของผู้ใช้ที่เรียกใช้แอป การตรวจสอบสิทธิ์แอปจะดำเนินการโดยใช้ข้อมูลเข้าสู่ระบบที่กำหนดไว้ล่วงหน้าในโค้ดของแอป
- การให้สิทธิ์
สิทธิ์หรือ "อำนาจ" ที่ผู้ใช้หลักมีในการเข้าถึงข้อมูลหรือดำเนินการ การให้สิทธิ์จะดำเนินการผ่านโค้ดที่คุณเขียนในแอป โค้ดนี้จะแจ้งให้ผู้ใช้ทราบว่าแอปต้องการดำเนินการในนามของผู้ใช้ และหากได้รับอนุญาต ก็จะใช้ข้อมูลเข้าสู่ระบบที่ไม่ซ้ำของแอปเพื่อรับโทเค็นเพื่อการเข้าถึงจาก Google ซึ่งใช้เพื่อเข้าถึงข้อมูลหรือดำเนินการต่างๆ
- ข้อมูลเข้าสู่ระบบ
รูปแบบการระบุตัวตนที่ใช้ในการรักษาความปลอดภัยซอฟต์แวร์ ในการตรวจสอบสิทธิ์ ข้อมูลเข้าสู่ระบบมักจะเป็นชุดค่าผสมของชื่อผู้ใช้และรหัสผ่าน ในข้อกำหนดการให้สิทธิ์สำหรับ Google Workspace API ข้อมูลเข้าสู่ระบบมักจะเป็นการระบุตัวตนบางรูปแบบ เช่น สตริงลับที่ไม่ซ้ำกัน ซึ่งจะทราบกันระหว่างนักพัฒนาแอปกับเซิร์ฟเวอร์การตรวจสอบสิทธิ์เท่านั้น Google รองรับข้อมูลเข้าสู่ระบบสำหรับการตรวจสอบสิทธิ์เหล่านี้ ได้แก่ คีย์ API, รหัสไคลเอ็นต์ OAuth 2.0 และบัญชีบริการ
- คีย์ API
- ข้อมูลเข้าสู่ระบบที่ใช้ขอสิทธิ์เข้าถึงข้อมูลสาธารณะ เช่น ข้อมูลที่ได้จากการใช้ Maps API หรือไฟล์ Google Workspace ที่แชร์โดยใช้การตั้งค่า "ทุกคนบนอินเทอร์เน็ตที่มีลิงก์" ภายในการตั้งค่าการแชร์ของ Google Workspace
- รหัสไคลเอ็นต์ OAuth 2
- ข้อมูลเข้าสู่ระบบที่ใช้ขอสิทธิ์เข้าถึงข้อมูลของผู้ใช้ นี่คือข้อมูลเข้าสู่ระบบหลักที่ใช้ในการขอสิทธิ์เข้าถึงข้อมูลโดยใช้ Google Workspace API ข้อมูลเข้าสู่ระบบนี้ต้องมีความยินยอมของผู้ใช้
- รหัสลับไคลเอ็นต์
- สตริงอักขระที่แอปพลิเคชันและเซิร์ฟเวอร์การให้สิทธิ์ควรรู้จักเท่านั้น รหัสลับไคลเอ็นต์ปกป้องข้อมูลของผู้ใช้โดยการให้สิทธิ์โทเค็นแก่ผู้ขอที่ได้รับอนุญาตเท่านั้น คุณไม่ควรใส่รหัสลับไคลเอ็นต์ที่ไม่ได้เข้ารหัสไว้ในแอป เราขอแนะนำให้เก็บรหัสลับไคลเอ็นต์ไว้อย่างปลอดภัย ดูข้อมูลเพิ่มเติมได้ที่จัดการข้อมูลเข้าสู่ระบบของไคลเอ็นต์อย่างปลอดภัย
- คีย์บัญชีบริการ
- ใช้โดยบัญชีบริการเพื่อรับสิทธิ์ใช้บริการของ Google
- บัญชีบริการ
- ข้อมูลเข้าสู่ระบบที่ใช้สำหรับการโต้ตอบแบบเซิร์ฟเวอร์ต่อเซิร์ฟเวอร์ เช่น แอปที่ไม่มีใบหน้าซึ่งทำงานเป็นกระบวนการเข้าถึงข้อมูลหรือดำเนินการบางอย่าง โดยปกติแล้วบัญชีบริการจะใช้เพื่อเข้าถึงข้อมูลและการดำเนินการในระบบคลาวด์ แต่หากใช้ร่วมกับการมอบสิทธิ์ทั่วทั้งโดเมน คุณจะใช้สิทธิ์ดังกล่าวเพื่อเข้าถึงข้อมูลผู้ใช้ได้
- ขอบเขต
สตริง URI ของ OAuth 2.0 ที่กำหนดระดับการเข้าถึงทรัพยากรหรือการดำเนินการ ที่ให้แก่แอป สำหรับ Google Workspace นั้น URI ของขอบเขตการให้สิทธิ์จะมีชื่อแอป Google Workspace, ประเภทข้อมูลที่เข้าถึงได้ และระดับการเข้าถึง ผู้ใช้แอปจะตรวจสอบขอบเขตที่ขอและเลือกสิทธิ์เข้าถึงที่จะให้สิทธิ์ จากนั้นเซิร์ฟเวอร์การตรวจสอบสิทธิ์ของ Google จะแสดงขอบเขตที่ได้รับอนุญาตไปยังแอปของคุณในโทเค็นเพื่อการเข้าถึง โปรดดูรายละเอียดเพิ่มเติมที่วิธีเลือกขอบเขตสำหรับแอป
- เซิร์ฟเวอร์การให้สิทธิ์
เซิร์ฟเวอร์ของ Google สำหรับให้สิทธิ์การเข้าถึงโดยใช้โทเค็นเพื่อการเข้าถึง สำหรับข้อมูลและการดำเนินการของแอปที่ขอ
- รหัสการให้สิทธิ์
รหัสที่ส่งจากเซิร์ฟเวอร์การให้สิทธิ์ซึ่งใช้รับโทเค็นเพื่อการเข้าถึง โดยต้องใช้โค้ดก็ต่อเมื่อประเภทแอปพลิเคชันของคุณคือแอปเว็บเซิร์ฟเวอร์หรือแอปที่ติดตั้งแล้ว
- โทเค็นเพื่อการเข้าถึง
โทเค็นที่ให้สิทธิ์เข้าถึง Google Workspace API โทเค็นเพื่อการเข้าถึงรายการเดียวอาจให้สิทธิ์ในระดับต่างๆ ซึ่งเรียกว่าขอบเขต ในการเข้าถึง API หลายรายการ รหัสการให้สิทธิ์ของแอปจะขอโทเค็นเพื่อการเข้าถึงและใช้โทเค็นดังกล่าวเพื่อเรียกใช้ Google Workspace API
- เซิร์ฟเวอร์ทรัพยากร
เซิร์ฟเวอร์ที่โฮสต์ API ที่แอปของคุณต้องการเรียกใช้
- เฟรมเวิร์ก OAuth 2.0
มาตรฐานที่แอปสามารถใช้เพื่อมอบ "สิทธิ์เข้าถึงที่ได้รับมอบมาที่ปลอดภัย" หรือการเข้าถึงข้อมูลและการดำเนินการในนามของผู้ใช้แอป กลไกการตรวจสอบสิทธิ์และการให้สิทธิ์ที่คุณใช้ในแอปแสดงถึงการใช้งานเฟรมเวิร์ก OAuth 2.0
- อาจารย์ใหญ่
เอนทิตีหรือที่เรียกว่าข้อมูลประจำตัวที่ได้รับสิทธิ์เข้าถึงทรัพยากรได้ Google Workspace API รองรับผู้ใช้หลัก 2 ประเภท ได้แก่ บัญชีผู้ใช้และบัญชีบริการ ดูรายละเอียดเพิ่มเติมได้ที่ อาจารย์ใหญ่
- ประเภทข้อมูล
ในบริบทของการตรวจสอบสิทธิ์และการให้สิทธิ์ ประเภทข้อมูลหมายถึงเอนทิตีที่เป็นเจ้าของข้อมูลที่แอปพยายามเข้าถึง มีข้อมูล 3 ประเภท ได้แก่
- ข้อมูลสาธารณสมบัติ
- ข้อมูลที่ทุกคนเข้าถึงได้ เช่น ข้อมูล Google Maps บางอย่าง โดยปกติจะเข้าถึงข้อมูลนี้โดยใช้คีย์ API
- ข้อมูลผู้ใช้ปลายทาง
- ข้อมูลที่เป็นของผู้ใช้ปลายทางหรือกลุ่มเฉพาะ เช่น ไฟล์ใน Google ไดรฟ์ของผู้ใช้ โดยปกติแล้วข้อมูลประเภทนี้จะเข้าถึงได้โดยใช้รหัสไคลเอ็นต์ OAuth 2 หรือบัญชีบริการ
- ข้อมูลใน Cloud
- ข้อมูลที่เป็นของโปรเจ็กต์ Google Cloud ปกติแล้วข้อมูลประเภทนี้ จะเข้าถึงได้โดยบัญชีบริการ
- ความยินยอมของผู้ใช้
ขั้นตอนการให้สิทธิ์ที่กำหนดให้ผู้ใช้แอปของคุณต้องให้สิทธิ์แอปในการเข้าถึงข้อมูลและดำเนินการในนามของผู้ใช้
- ประเภทแอปพลิเคชัน
ประเภทของแอปที่คุณกำลังจะสร้าง เมื่อสร้างข้อมูลเข้าสู่ระบบโดยใช้ Google Cloud Console ระบบจะขอให้คุณเลือกประเภทแอปพลิเคชัน ประเภทแอปพลิเคชัน ได้แก่ เว็บแอปพลิเคชัน (JavaScript), Android, แอป Chrome, iOS, ทีวีและอุปกรณ์อินพุตที่จำกัด, แอปบนเดสก์ท็อป (หรือที่เรียกว่า "แอปที่ติดตั้ง") และ Universal Windows Platform (UWP)
- บัญชีบริการ
บัญชี Google ประเภทพิเศษที่มีไว้เพื่อแสดงถึงผู้ใช้ที่ไม่ใช่มนุษย์ ซึ่งจำเป็นต้องตรวจสอบสิทธิ์และได้รับอนุญาตให้เข้าถึงข้อมูล แอปพลิเคชันของคุณจะใช้ข้อมูลประจำตัวของบัญชีบริการเพื่อเรียกใช้ Google API ผู้ใช้จึงไม่ต้องเข้ามาเกี่ยวข้องโดยตรง ด้วยตนเอง บัญชีบริการจะไม่สามารถใช้เข้าถึงข้อมูลผู้ใช้ได้ แต่ข้อมูลที่เข้าถึงที่กำหนดเองโดยใช้ Workspace API แต่บัญชีบริการจะเข้าถึงข้อมูลผู้ใช้ได้โดยใช้การมอบสิทธิ์ทั่วทั้งโดเมน ดูรายละเอียดเพิ่มเติมได้ที่การทำความเข้าใจบัญชีบริการ
- การมอบสิทธิ์ทั่วทั้งโดเมน
ฟีเจอร์การดูแลระบบที่สามารถให้สิทธิ์แอปพลิเคชันในการเข้าถึงข้อมูลผู้ใช้ในนามของผู้ใช้ในองค์กร Google Workspace คุณสามารถใช้การมอบสิทธิ์ทั่วทั้งโดเมนเพื่อทำงานเกี่ยวกับผู้ดูแลระบบด้านข้อมูลผู้ใช้ได้ หากต้องการมอบสิทธิ์ จากหน่วยงานด้วยวิธีนี้ ผู้ดูแลระบบ Google Workspace จะใช้บัญชีบริการที่มี OAuth 2.0 เนื่องจากฟีเจอร์นี้ทำให้มีเพียงผู้ดูแลระบบขั้นสูงเท่านั้นที่เปิดใช้การมอบสิทธิ์ทั่วทั้งโดเมนได้ ดูรายละเอียดเพิ่มเติมได้ที่การมอบอำนาจทั่วโดเมนให้กับบัญชีบริการ
ขั้นตอนถัดไป
กำหนดค่าหน้าจอคำยินยอม OAuth ของแอปเพื่อให้แน่ใจว่าผู้ใช้จะเข้าใจและอนุมัติสิทธิ์ในการเข้าถึงข้อมูลของแอปได้