คู่มือนี้จะให้คุณเลือกระหว่างการใช้ไลบรารีบริการ Google Identity สำหรับการให้สิทธิ์ผู้ใช้ หรือจะใช้ไลบรารี JavaScript ของคุณเอง ซึ่งจะช่วยให้คุณตัดสินใจได้ว่าขั้นตอนการให้สิทธิ์ OAuth 2.0 ใดเหมาะกับเว็บแอปพลิเคชันของคุณมากที่สุด
ก่อนอ่านคู่มือนี้ เราถือว่าคุณคุ้นเคยกับคำศัพท์และแนวคิดที่อธิบายไว้ในคู่มือภาพรวมและวิธีการให้สิทธิ์ผู้ใช้
ไลบรารี GIS จะทำงานในเบราว์เซอร์ที่รองรับเหล่านี้ในอุปกรณ์ของผู้ใช้ ไม่ได้มีไว้ใช้กับเฟรมเวิร์ก JavaScript ฝั่งเซิร์ฟเวอร์ เช่น Node.js แต่ให้ใช้ไลบรารีไคลเอ็นต์ Node.js ของ Google แทน
คู่มือนี้ครอบคลุมเฉพาะหัวข้อการให้สิทธิ์และการแชร์ข้อมูลเท่านั้น แต่จะไม่ตรวจสอบการตรวจสอบสิทธิ์ผู้ใช้ โปรดดูการลงชื่อเข้าใช้ด้วย Google และคู่มือการย้ายข้อมูลจาก Google Sign-In สำหรับการลงชื่อสมัครใช้และลงชื่อเข้าใช้แทน
ตัดสินใจว่าไลบรารี GIS เหมาะกับคุณหรือไม่
คุณต้องเลือกว่าจะใช้ไลบรารีของ Google หรือสร้างเองรายการที่เหมาะกับความต้องการของคุณที่สุด ภาพรวมของฟีเจอร์และฟังก์ชันการทำงาน
- ไลบรารี JavaScript สำหรับบริการข้อมูลประจำตัวของ Google จะใช้ข้อมูลต่อไปนี้
- ขั้นตอนการให้ความยินยอมตามป๊อปอัปเพื่อลดการเปลี่ยนเส้นทางให้เหลือน้อยที่สุด ซึ่งจะทำให้ผู้ใช้อยู่ในเว็บไซต์ของคุณตลอดกระบวนการให้สิทธิ์
- ฟีเจอร์ด้านความปลอดภัย เช่น Cross-site Request Forgery (CRSF)
- วิธีการของตัวช่วยในการขอขอบเขตแต่ละรายการและยืนยันความยินยอมของผู้ใช้
- ลิงก์การจัดการข้อผิดพลาดที่เอื้อต่อมนุษย์และเอกสารประกอบเพื่อให้วิศวกรนำไปใช้งานระหว่างการพัฒนาและสำหรับผู้เข้าชมเว็บไซต์ของคุณในภายหลัง
- เมื่อติดตั้งใช้งานโดยไม่มีไลบรารีของ Identity Services คุณมีหน้าที่รับผิดชอบต่อสิ่งต่อไปนี้
- การจัดการคำขอและการตอบกลับด้วยปลายทาง OAuth 2.0 ของ Google รวมถึงการเปลี่ยนเส้นทาง
- การเพิ่มประสิทธิภาพประสบการณ์ของผู้ใช้
- การใช้ฟีเจอร์ด้านความปลอดภัยเพื่อตรวจสอบคำขอ การตอบสนอง และการป้องกัน CSRF
- วิธีการยืนยันผู้ใช้ให้คำยินยอมสำหรับขอบเขตใดๆ ที่ขอ
- การจัดการรหัสข้อผิดพลาด OAuth 2.0 สร้างข้อความที่มนุษย์อ่านได้ และลิงก์ไปยังความช่วยเหลือของผู้ใช้
กล่าวโดยสรุปคือ Google มีไลบรารี GIS เพื่อช่วยให้คุณใช้งานไคลเอ็นต์ OAuth 2.0 ได้อย่างรวดเร็วและปลอดภัย รวมถึงเพิ่มประสิทธิภาพประสบการณ์การให้สิทธิ์ของผู้ใช้
การเลือกขั้นตอนการให้สิทธิ์
คุณจะต้องเลือกขั้นตอนการให้สิทธิ์ OAuth 2.0 อย่างใดอย่างหนึ่งจาก 2 ขั้นตอน ได้แก่ รหัสโดยนัยหรือรหัสการให้สิทธิ์ ไม่ว่าคุณจะตัดสินใจใช้ไลบรารี JavaScript ของ Google Identity Services หรือสร้างไลบรารีของคุณเอง
ทั้ง 2 ขั้นตอนจะทำให้เกิดโทเค็นเพื่อการเข้าถึงซึ่งใช้เพื่อเรียกใช้ Google APIs ได้
ความแตกต่างหลักระหว่าง 2 ขั้นตอนมีดังนี้
- จำนวนการดำเนินการของผู้ใช้
- ว่าแอปของคุณจะเรียก Google API โดยที่ไม่มีผู้ใช้หรือไม่
- หากจำเป็นต้องใช้แพลตฟอร์มแบ็กเอนด์เพื่อโฮสต์ปลายทางและจัดเก็บโทเค็นการรีเฟรชต่อผู้ใช้สำหรับบัญชีผู้ใช้แต่ละบัญชี และ
- ความปลอดภัยของผู้ใช้ในระดับที่สูงขึ้นหรือต่ำลง
เมื่อเปรียบเทียบขั้นตอนและประเมินข้อกำหนดด้านความปลอดภัย ปัจจัยหนึ่งที่ต้องพิจารณาคือระดับความปลอดภัยของผู้ใช้จะแตกต่างกันไปตามขอบเขตที่คุณเลือก เช่น การดูคำเชิญในปฏิทินเป็นแบบอ่านอย่างเดียวอาจถือว่ามีความเสี่ยงน้อยกว่าการใช้ขอบเขตการอ่าน/เขียนเพื่อแก้ไขไฟล์ในไดรฟ์
การเปรียบเทียบขั้นตอน OAuth 2.0
ขั้นตอนการดำเนินการโดยนัย | ขั้นตอนการใช้รหัสการให้สิทธิ์ | |
ต้องได้รับการยินยอมจากผู้ใช้ | สำหรับคำขอโทเค็นทุกรายการ รวมถึงการแทนที่โทเค็นที่หมดอายุ | เฉพาะสำหรับคำขอโทเค็นครั้งแรก |
ผู้ใช้ต้องอยู่ | มี | ไม่ได้ รองรับการใช้งานแบบออฟไลน์ |
ความปลอดภัยของผู้ใช้ | น้อยที่สุด | ผลิตภัณฑ์ส่วนใหญ่มีการตรวจสอบสิทธิ์ไคลเอ็นต์และหลีกเลี่ยงความเสี่ยงในการจัดการโทเค็นในเบราว์เซอร์ |
ออกโทเค็นเพื่อการเข้าถึงแล้ว | มี | มี |
ออกโทเค็นการรีเฟรช | ไม่ได้ | มี |
ต้องใช้เบราว์เซอร์ที่รองรับ | มี | มี |
โทเค็นเพื่อการเข้าถึงที่ใช้ในการเรียกใช้ Google API | จากเว็บแอปที่ทำงานในเบราว์เซอร์ของผู้ใช้เท่านั้น | จากเซิร์ฟเวอร์ที่ทำงานบนแพลตฟอร์มแบ็กเอนด์หรือจากเว็บแอปที่ทำงานในเบราว์เซอร์ของผู้ใช้ |
ต้องใช้แพลตฟอร์มแบ็กเอนด์ | ไม่ได้ | ใช่ สำหรับการโฮสต์และพื้นที่เก็บข้อมูลปลายทาง |
ต้องใช้พื้นที่เก็บข้อมูลที่ปลอดภัย | ไม่ได้ | ใช่ สำหรับที่เก็บข้อมูลโทเค็นการรีเฟรช |
ต้องโฮสต์ปลายทางของรหัสการให้สิทธิ์ | ไม่ได้ | ใช่ เพื่อรับรหัสการให้สิทธิ์จาก Google |
ลักษณะการหมดอายุของโทเค็นสำหรับการเข้าถึง | ต้องใช้ท่าทางสัมผัสของผู้ใช้ เช่น การกดปุ่มหรือคลิกลิงก์ เพื่อขอและรับโทเค็นเพื่อการเข้าถึงใหม่ที่ถูกต้อง | หลังจากผู้ใช้ส่งคำขอครั้งแรก แพลตฟอร์มจะแลกเปลี่ยนโทเค็นการรีเฟรชที่เก็บไว้เพื่อรับโทเค็นเพื่อการเข้าถึงใหม่ที่ถูกต้องซึ่งจำเป็นต่อการเรียก Google API |