ย้ายข้อมูลจาก Google Identity Toolkit ไปยัง Identity Platform ของ Google Cloud

Google Identity Toolkit เวอร์ชันใหม่ล่าสุดได้รับการเผยแพร่เป็น Identity Platform และ การตรวจสอบสิทธิ์ Firebase นับจากนี้เป็นต้นไป เราจะหยุดใช้งานฟีเจอร์ใน Identity Toolkit ใหม่ทั้งหมด การพัฒนาฟีเจอร์จะดำเนินการใน Identity Platform และ Firebase การตรวจสอบสิทธิ์ เราขอแนะนำให้นักพัฒนา Identity Toolkit เปลี่ยนไปใช้ แพลตฟอร์มเหล่านี้ทันทีที่สามารถนำไปใช้งานได้จริง

ฟีเจอร์ใหม่

Identity Platform มีการปรับปรุงฟีเจอร์ที่สำคัญมากกว่า Google Identity Toolkit:

  • คอนโซลผู้ดูแลระบบแบบใหม่

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

  • วิธีการตรวจสอบสิทธิ์แบบใหม่

    Identity Platform รองรับมาตรฐานการรวมศูนย์ขององค์กร เช่น SAML และ OIDC ช่วยให้คุณปรับขนาดแอปและบริการ SaaS ได้ Identity Platform ด้วย ให้การสนับสนุนผู้ให้บริการ เช่น GitHub, Microsoft, Yahoo และอื่นๆ คุณใช้การลงชื่อเข้าใช้แบบไม่ระบุตัวตนเพื่อสร้างรหัสผู้ใช้ที่ไม่ซ้ำได้โดยไม่ต้อง การกำหนดให้ผู้ใช้ต้องลงชื่อเข้าใช้หรือลงชื่อสมัครใช้ วิธีนี้ช่วยให้ ในการเรียก API ที่ผ่านการตรวจสอบสิทธิ์ เหมือนที่คุณดำเนินการกับผู้ใช้ทั่วไป วันและเวลา ผู้ใช้ตัดสินใจลงชื่อสมัครใช้บัญชี กิจกรรมทั้งหมดจะยังคงอยู่ รหัสผู้ใช้เดียวกัน วิธีนี้เหมาะสำหรับสถานการณ์อย่างการช็อปปิ้งฝั่งเซิร์ฟเวอร์ รถเข็นหรือแอปพลิเคชันอื่นๆ ที่คุณต้องการดึงดูดผู้ใช้ก่อนส่ง ผ่านขั้นตอนการลงชื่อสมัครใช้

  • ปรับขนาดได้อย่างมั่นใจด้วยข้อตกลงระดับการให้บริการและการสนับสนุนระบบคลาวด์

    Identity Platform สร้างขึ้นจากโครงสร้างพื้นฐานของ Google ที่เชื่อถือได้ และให้ ข้อตกลงระดับการให้บริการ และการสนับสนุนจาก Google Cloud ซึ่งหมายความว่าคุณจะปรับขนาดบริการได้ ด้วยความมั่นใจ และอาศัย Google ในการตอบสนองและความพร้อมใช้งาน และความสามารถในการปรับขนาดที่คุณต้องการ

  • สิทธิ์เข้าถึง Firebase ทั้งหมด

    Firebase เป็นแพลตฟอร์มบนอุปกรณ์เคลื่อนที่ที่ช่วยให้คุณพัฒนาคุณภาพสูงได้อย่างรวดเร็ว แอป ขยายฐานผู้ใช้ และสร้างรายได้มากขึ้น Firebase ประกอบด้วย ฟีเจอร์เสริมที่คุณสามารถนำไปปรับใช้เพื่อให้เหมาะกับความต้องการและ มีโครงสร้างพื้นฐานสำหรับ Analytics บนอุปกรณ์เคลื่อนที่ การรับส่งข้อความในระบบคลาวด์ ฐานข้อมูลแบบเรียลไทม์ พื้นที่เก็บข้อมูลไฟล์ โฮสติ้งแบบคงที่ การกำหนดค่าระยะไกล รายงานข้อขัดข้องบนอุปกรณ์เคลื่อนที่ และ การทดสอบ Android

  • UI ที่อัปเดตแล้ว

    เราได้สร้างขั้นตอน UI ขึ้นใหม่ทั้งหมดโดยอิงตาม UX ล่าสุดของ Google การวิจัย ซึ่งรวมถึงการกู้คืนรหัสผ่าน การลิงก์บัญชี ใหม่/ที่มีอยู่ ขั้นตอนการชี้แจงบัญชีที่มักใช้เวลานานในการเขียนโค้ด ของคุณ ผสานรวม Smart Lock สำหรับรหัสผ่าน บน Android ซึ่งมี Conversion จำนวนการลงชื่อเข้าใช้และการลงชื่อสมัครใช้เพิ่มขึ้นอย่างมาก สําหรับแอปที่เข้าร่วม และยังรองรับการแก้ไขธีมที่ง่ายดาย เพื่อให้ตรงกับแอปพลิเคชันของคุณ และสำหรับ ความสามารถในการปรับแต่งสูงสุด คือ Android และ iOS เป็นโอเพนซอร์ส

  • การตั้งค่าเซิร์ฟเวอร์ที่ง่ายขึ้น

    ด้วย Identity Toolkit เราพบว่านักพัฒนาซอฟต์แวร์จำนวนมากเลือกที่จะไม่ใช้ ขั้นตอนการกู้คืนรหัสผ่าน ทำให้ผู้ใช้กู้คืนไม่ได้ บัญชีของตนได้ หากลืมรหัสผ่าน Identity Platform สามารถ ส่งการยืนยันอีเมล รีเซ็ตรหัสผ่าน และข้อความรหัสผ่านที่เปลี่ยนแปลงไปยัง ผู้ใช้และข้อความสามารถปรับแต่งได้อย่างง่ายดาย สำหรับผู้ใช้ของคุณ นอกจากนี้ คุณยังไม่ต้องโฮสต์ วิดเจ็ต UI สำหรับการโฮสต์การเปลี่ยนเส้นทาง และ การเปลี่ยนรหัสผ่านให้เสร็จสมบูรณ์

  • SDK ใหม่

    ขณะนี้ API เซิร์ฟเวอร์ของ Identity Toolkit ทั้งหมดมีให้บริการแบบดั้งเดิมแล้ว ไลบรารีไคลเอ็นต์ (Android, iOS, เว็บ) นักพัฒนาแอปสามารถลงนาม ลงชื่อเข้าใช้และลงชื่อสมัครใช้ผู้ใช้ทั้งเก่าและใหม่ เข้าถึงพร็อพเพอร์ตี้ผู้ใช้ ลิงก์ อัปเดต และ ลบบัญชี รีเซ็ตรหัสผ่าน และอื่นๆ โดยไม่ต้องเชื่อมโยงกับ UI แบบคงที่ ถ้าต้องการ คุณสามารถสร้างขั้นตอนการลงชื่อเข้าใช้ทั้งหมดด้วยตนเอง และ เพิ่มเติมเกี่ยวกับ API นี้

  • การจัดการเซสชันสำหรับแอปบนอุปกรณ์เคลื่อนที่

    ด้วยเครื่องมือ Identity Toolkit ให้แอปต่างๆ สร้างสถานะเซสชันขึ้นเองตาม เหตุการณ์การตรวจสอบสิทธิ์ครั้งแรกจาก Identity Toolkit Identity Platform ใช้ บริการแบ็กเอนด์ที่ใช้โทเค็นการรีเฟรชซึ่งสร้างขึ้นจากการตรวจสอบสิทธิ์ กิจกรรม แล้วแลกเปลี่ยนเป็นโทเค็นเพื่อการเข้าถึงความยาวชั่วโมงสำหรับ Android, iOS และ JavaScript เมื่อผู้ใช้เปลี่ยนรหัสผ่าน โทเค็นการรีเฟรชจะไม่ สามารถสร้างโทเค็นเพื่อการเข้าถึงใหม่นานขึ้น ดังนั้นจึงมีการปิดใช้การเข้าถึงจนกว่า ผู้ใช้ตรวจสอบสิทธิ์ในอุปกรณ์นั้นอีกครั้ง

ความแตกต่างของฟีเจอร์

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

ความแตกต่างของฝั่งเซิร์ฟเวอร์

บริการหลักของ Identity Toolkit ที่มี REST API ที่เกี่ยวข้อง, บัญชี ตรรกะการตรวจสอบความถูกต้องและฐานข้อมูลผู้ใช้หลักได้รับการอัปเดตเพียงเล็กน้อยเท่านั้น แต่บางฟีเจอร์และลักษณะที่คุณผสานรวม Identity Platform ในบริการของคุณได้เปลี่ยนไป

  • ผู้ให้บริการข้อมูลประจำตัว

    ไม่รองรับ PayPal และ AOL ผู้ใช้ที่มี บัญชีจาก IdP เหล่านี้ยังคงสามารถลงชื่อเข้าใช้แอปพลิเคชันด้วย ขั้นตอนการกู้คืนรหัสผ่านและตั้งรหัสผ่านสำหรับบัญชี

  • ไลบรารีของเซิร์ฟเวอร์

    ปัจจุบันมี SDK ผู้ดูแลระบบ ใช้ได้กับ Java, Node.js, Python, Go และ C#

  • อีเมลการจัดการบัญชี

    ระบบอาจรีเซ็ตรหัสผ่าน การยืนยันอีเมล และข้อความเปลี่ยนอีเมล ดำเนินการโดย Firebase หรือจาก เซิร์ฟเวอร์อีเมลของตนเอง ปัจจุบันเทมเพลตอีเมลมีได้เพียง การปรับแต่งจาก UI ได้ แต่สามารถปรับแต่งเพิ่มเติมด้วย SDK ของผู้ดูแลระบบ

  • การยืนยันการเปลี่ยนอีเมล

    ใน Identity Toolkit เมื่อผู้ใช้ตัดสินใจที่จะเปลี่ยนอีเมล ส่งอีเมลไปยังที่อยู่ใหม่ที่มีลิงก์สำหรับใช้ส่งอีเมลต่อ ขั้นตอนการเปลี่ยนที่อยู่

    Firebase ยืนยันการเปลี่ยนแปลงอีเมลโดยส่งอีเมลเพิกถอนไปที่ ที่อยู่อีเมลเดิมที่มีลิงก์เพื่อเปลี่ยนกลับการเปลี่ยนแปลง

  • การเปิดตัว IDP

    Identity Toolkit สามารถเพิ่มผู้ให้บริการข้อมูลประจำตัวลงในการลงชื่อเข้าใช้ของคุณได้ ระบบทีละน้อย เพื่อให้คุณสามารถทดสอบผลกระทบกับ คำขอการสนับสนุน มีการนำฟีเจอร์นี้ออกจากการตรวจสอบสิทธิ์ Firebase

ความแตกต่างของฝั่งไคลเอ็นต์

ใน Identity Platform ระบบจะแยกฟีเจอร์ต่างๆ จาก Google Identity Toolkit ให้ ออกเป็น 2 ส่วน ได้แก่

  • SDK ของไคลเอ็นต์และเซิร์ฟเวอร์

    ใน Identity Platform มีฟังก์ชันการทำงานที่มาจาก เราได้รวม REST API ไว้ใน SDK ของไคลเอ็นต์ที่พร้อมให้บริการสำหรับ Android, iOS และ JavaScript คุณใช้ SDK เพื่อลงชื่อเข้าใช้และลงชื่อสมัครใช้สำหรับผู้ใช้ได้ ผู้ใช้ที่มีสิทธิ์เข้าถึง ข้อมูลโปรไฟล์ ลิงก์ อัปเดต และลบบัญชี และรีเซ็ตรหัสผ่าน ใช้ SDK ของไคลเอ็นต์แทนการสื่อสารกับบริการแบ็กเอนด์ผ่าน การโทร REST

  • วิดเจ็ต UI

    ขั้นตอน UI ทั้งหมดที่จัดการการลงชื่อเข้าใช้ การลงชื่อสมัครใช้ การกู้คืนรหัสผ่าน ได้สร้างการลิงก์บัญชีขึ้นมาใหม่โดยใช้ SDK ของไคลเอ็นต์แล้ว และจัดแพ็กเกจเป็น วิดเจ็ตการเข้าสู่ระบบ โดยมีให้ใช้เป็น SDK แบบโอเพนซอร์สสำหรับ iOS Android และ เว็บ และ ช่วยให้คุณสามารถปรับแต่งขั้นตอน Identity Toolkit

ความแตกต่างเพิ่มเติมมีดังนี้

  • เซสชันและการย้ายข้อมูล

    เนื่องจากเซสชันมีการจัดการแตกต่างกันใน Identity Toolkit และ Identity แพลตฟอร์ม ผู้ใช้ของคุณ เซสชันที่มีอยู่จะสิ้นสุดลงเมื่อ กำลังอัปเกรด SDK และผู้ใช้ต้องลงชื่อเข้าใช้อีกครั้ง

ก่อนเริ่มต้น

ก่อนที่จะย้ายข้อมูลจาก Identity Toolkit ไปยัง Identity Platform คุณต้อง ต้อง

  1. เปิด Cloud Console และเลือก Identity Toolkit

  2. จาก Marketplace ให้ไปที่ Identity Platform แล้วเลือก "เปิดใช้ Identity Platform"

  3. เปิดบัญชีบริการ คุณจะเห็นบัญชีบริการที่คุณ ที่กำหนดค่าไว้ก่อนหน้านี้สำหรับ Identity Toolkit

  4. ถัดจากบัญชีบริการ ให้คลิก สร้างคีย์ จากนั้น ใน กล่องโต้ตอบสร้างคีย์ส่วนตัว ตั้งค่าประเภทคีย์เป็น JSON และคลิก สร้าง ไฟล์ JSON ที่มีข้อมูลเข้าสู่ระบบของบัญชีบริการของคุณคือ ที่คุณดาวน์โหลดไว้ให้คุณแล้ว คุณจะต้องใช้คีย์นี้เพื่อเริ่มต้น SDK ในขั้นตอนถัดไป

  5. กลับไปที่ Cloud Console ในส่วนผู้ให้บริการ ภายใน "อีเมล/รหัสผ่าน" วิธีลงชื่อเข้าใช้ เปิดหน้าเทมเพลตอีเมล จากนั้นคุณจะปรับแต่งการตั้งค่า เทมเพลต

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

  6. ไม่บังคับ: หากคุณต้องการเข้าถึงบริการของ Identity Platform ในบัญชี ให้ติดตั้ง Firebase SDK

    1. คุณติดตั้ง Node.js Admin SDK ด้วย npm ได้โดยทำดังนี้

      $ npm init
      $ npm install --save firebase-admin
      
    2. ในโค้ด คุณจะเข้าถึง Firebase ได้โดยใช้สิ่งต่อไปนี้

      var admin = require('firebase-admin');
      var app = admin.initializeApp({
        credential: admin.credential.cert('path/to/serviceAccountCredentials.json')
      });
      

ถัดไป ให้ทำตามขั้นตอนการย้ายข้อมูลสำหรับแพลตฟอร์มของแอป ซึ่งได้แก่ Android, iOS, เว็บ

เซิร์ฟเวอร์และ JavaScript

การเปลี่ยนแปลงที่สำคัญ

มีความแตกต่างเพิ่มเติมอีกหลายประการในการใช้งานเว็บ Identity Platform จาก Identity Toolkit

  • การจัดการเซสชันของเว็บ

    ก่อนหน้านี้ เมื่อผู้ใช้ตรวจสอบสิทธิ์โดยใช้ วิดเจ็ต Identity Toolkit, คุกกี้ถูกตั้งค่าสำหรับผู้ใช้ที่ใช้ เปิดเครื่องเซสชัน คุกกี้นี้มีอายุการใช้งาน 2 สัปดาห์และใช้เพื่ออนุญาตให้ผู้ใช้ใช้งานได้ วิดเจ็ตการจัดการบัญชีเพื่อเปลี่ยนรหัสผ่านและอีเมล ใช้บ้าง เว็บไซต์ใช้คุกกี้นี้ในการตรวจสอบสิทธิ์คำขอหน้าเว็บอื่นๆ ทั้งหมดในเว็บไซต์ เว็บไซต์อื่นๆ ใช้คุกกี้เพื่อสร้างคุกกี้ของตนเองผ่าน ของเฟรมเวิร์ก

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

    คุณจะต้องตั้งค่าอายุการใช้งานเซสชันของคุกกี้โดยอิงตาม ด้านความปลอดภัยของแอปพลิเคชัน

  • ขั้นตอนการลงชื่อเข้าใช้เว็บ

    ก่อนหน้านี้ ระบบจะเปลี่ยนเส้นทางผู้ใช้ไปยัง accountchooser.com เมื่อลงชื่อเข้าใช้ เริ่มต้นเพื่อดูว่าผู้ใช้ต้องการใช้ตัวระบุใด Identity Platform ตอนนี้ขั้นตอนของ UI เริ่มต้นด้วยรายการวิธีการลงชื่อเข้าใช้ รวมถึงอีเมล ซึ่งจะไปที่ accountchooser.com สำหรับเว็บและใช้ hintRequest API ของคุณเปิดอยู่ Android นอกจากนี้ยังไม่ต้องใช้อีเมลใน UI ด้วย ซึ่งจะทำให้สามารถสนับสนุนผู้ใช้ที่ไม่ระบุชื่อ ผู้ใช้การตรวจสอบสิทธิ์ที่กำหนดเอง ได้ง่ายขึ้น หรือผู้ใช้จากผู้ให้บริการที่ไม่จำเป็นต้องใช้อีเมล

  • วิดเจ็ตการจัดการบัญชี

    วิดเจ็ตนี้มี UI สำหรับให้ผู้ใช้เปลี่ยนอีเมล เปลี่ยน รหัสผ่านหรือยกเลิกการลิงก์บัญชีกับผู้ให้บริการข้อมูลประจำตัว ขณะนี้เวลา อยู่ระหว่างการพัฒนา

  • ปุ่ม/วิดเจ็ตลงชื่อเข้าใช้

    ไม่มีวิดเจ็ต เช่น ปุ่มลงชื่อเข้าใช้และการ์ดผู้ใช้ให้บริการอีกต่อไป โฆษณาเหล่านี้ สามารถสร้างได้อย่างง่ายดายด้วย API การตรวจสอบสิทธิ์ของ Firebase

  • ไม่มี signOutUrl

    คุณจะต้องโทรหา firebase.auth.signOut() และจัดการการติดต่อกลับ

  • ไม่มี oobActionUrl

    Identity Platform จะจัดการกับการส่งอีเมลและได้รับการกำหนดค่าใน คอนโซล Firebase

  • การปรับแต่ง CSS

    วิดเจ็ต UI ใช้การจัดรูปแบบ Material Design Lite เพิ่มภาพเคลื่อนไหว Material Design แบบไดนามิก

ขั้นตอนที่ 1: เปลี่ยนรหัสเซิร์ฟเวอร์

  1. หากเซิร์ฟเวอร์ของคุณใช้โทเค็น Identity Toolkit (ใช้ได้เป็นเวลา 2 สัปดาห์) เพื่อ จัดการเซสชันของผู้ใช้เว็บ คุณต้องแปลงเซิร์ฟเวอร์ให้ใช้ คุกกี้เซสชัน

    1. ใช้ปลายทางสำหรับ การตรวจสอบโทเค็นรหัส และตั้งค่าคุกกี้ของเซสชันสำหรับผู้ใช้ แอปไคลเอ็นต์จะส่ง โทเค็นรหัส Firebase ไปยังปลายทางนี้
    2. หากคําขอที่เข้ามามีคุกกี้เซสชันของคุณเอง คุณจะทําสิ่งต่อไปนี้ได้ ถือว่าผู้ใช้ตรวจสอบสิทธิ์แล้ว มิฉะนั้น ให้ถือว่าคำขอเป็นแบบ ไม่มีการตรวจสอบสิทธิ์
    3. หากคุณไม่ต้องการให้ผู้ใช้ของคุณสูญเสียข้อมูลการเข้าสู่ระบบที่มีอยู่ คุณควรรอ 2 สัปดาห์สำหรับโทเค็น Identity Toolkit ทั้งหมด หมดอายุ หรือทำการตรวจสอบความถูกต้องของโทเค็นคู่สำหรับเว็บแอปพลิเคชัน ตามที่อธิบายไว้ด้านล่างในขั้นตอนที่ 3
  2. ต่อไป เนื่องจากโทเค็น ID แตกต่างจาก Identity Toolkit คุณต้องอัปเดตตรรกะการตรวจสอบโทเค็น ติดตั้ง SDK ผู้ดูแลระบบ ไปยังเซิร์ฟเวอร์ของคุณ หรือหากคุณใช้ภาษาที่ Admin SDK ไม่รองรับ ดาวน์โหลดไลบรารีการตรวจสอบโทเค็น JWT สำหรับสภาพแวดล้อมของคุณ ตรวจสอบโทเค็น

  3. เมื่อทำการอัปเดตข้างต้นเป็นครั้งแรก คุณอาจยังมีเส้นทางโค้ดที่ ใช้โทเค็น Identity Toolkit หากมีแอปพลิเคชัน iOS หรือ Android ผู้ใช้จะต้องอัปเกรดแอปเป็นเวอร์ชันใหม่ เส้นทางโค้ดใหม่จะใช้งานได้ หากไม่ต้องการบังคับให้ผู้ใช้อัปเดต คุณสามารถเพิ่มตรรกะการตรวจสอบเซิร์ฟเวอร์เพิ่มเติมที่จะตรวจสอบ และพิจารณาว่าจำเป็นต้องใช้ Firebase SDK หรือ Identity Toolkit SDK สำหรับตรวจสอบโทเค็น หากคุณมีเฉพาะเว็บ คำขอการตรวจสอบสิทธิ์ใหม่ทั้งหมดจะย้ายไปที่ Identity Platform ดังนั้น คุณจึงต้องใช้เพียงโทเค็นรหัสเท่านั้น การยืนยันแบบ 2 ขั้นตอน

ดูเอกสารอ้างอิง Web API

ขั้นตอนที่ 2: อัปเดต HTML ของคุณ

  1. เพิ่มโค้ดการเริ่มต้นลงในแอปโดยทำดังนี้

    1. เปิดโปรเจ็กต์ใน Cloud Console
    2. ในผู้ให้บริการ ให้คลิก Application Setup Details ข้อมูลโค้ดที่ เริ่มต้น Identity Platform ถูกแสดง
    3. คัดลอกและวางข้อมูลโค้ดการเริ่มต้นลงในหน้าเว็บ
  2. เพิ่ม วิดเจ็ตการตรวจสอบสิทธิ์ กับแอปของคุณดังนี้

    <script src="https://www.gstatic.com/firebasejs/ui/live/0.4/firebase-ui-auth.js"></script>
    <link type="text/css" rel="stylesheet" href="https://www.gstatic.com/firebasejs/ui/live/0.4/firebase-ui-auth.css" />
    <!-- *******************************************************************************************
       * TODO(DEVELOPER): Paste the initialization snippet from:
       * Firebase Console > Overview > Add Firebase to your web app. *
       ***************************************************************************************** -->
    <script type="text/javascript">
      // FirebaseUI config.
      var uiConfig = {
        'signInSuccessUrl': '<url-to-redirect-to-on-success>',
        'signInOptions': [
          // Leave the lines as is for the providers you want to offer your users.
          firebase.auth.GoogleAuthProvider.PROVIDER_ID,
          firebase.auth.FacebookAuthProvider.PROVIDER_ID,
          firebase.auth.TwitterAuthProvider.PROVIDER_ID,
          firebase.auth.GithubAuthProvider.PROVIDER_ID,
          firebase.auth.EmailAuthProvider.PROVIDER_ID
        ],
        // Terms of service url.
        'tosUrl': '<your-tos-url>',
      };
    
      // Initialize the FirebaseUI Widget using Firebase.
      var ui = new firebaseui.auth.AuthUI(firebase.auth());
      // The start method will wait until the DOM is loaded.
      ui.start('#firebaseui-auth-container', uiConfig);
    </script>
    
  3. นำ Identity Toolkit SDK ออกจากแอป

  4. หากคุณใช้โทเค็นรหัส Identity Toolkit ในการจัดการเซสชัน คุณจะ ต้องทำการเปลี่ยนแปลงต่อไปนี้ในฝั่งไคลเอ็นต์

    1. หลังจากลงชื่อเข้าใช้ด้วย Identity Platform สำเร็จแล้ว ให้รับโทเค็นรหัสภายใน กำลังโทรหา firebase.auth().currentUser.getToken()

    2. ส่งโทเค็นรหัสไปยังเซิร์ฟเวอร์แบ็กเอนด์ ตรวจสอบความถูกต้อง และแก้ปัญหา คุกกี้เซสชันของคุณเอง

      อย่าอาศัยคุกกี้เซสชันเพียงอย่างเดียวเมื่อทําการค้นหาที่มีความละเอียดอ่อน หรือส่งคำขอแก้ไขที่ผ่านการตรวจสอบสิทธิ์ไปยังเซิร์ฟเวอร์ของคุณแล้ว คุณ จะต้องมีการปลอมแปลงคำขอแบบข้ามเว็บไซต์ (CSRF) เพิ่มเติม

      หากเฟรมเวิร์กของคุณไม่มีการป้องกัน CSRF วิธีหนึ่งที่จะป้องกัน การโจมตีจะเป็นการรับโทเค็นรหัสสำหรับผู้ใช้ที่ลงชื่อเข้าใช้ กับ getToken() และรวมโทเค็นไว้กับคำขอแต่ละรายการ (เซสชัน จะส่งคุกกี้โดยค่าเริ่มต้น) จากนั้นคุณจะต้องตรวจสอบโทเค็นดังกล่าว โดยใช้ Admin SDK นอกเหนือจากการตรวจสอบคุกกี้ของเซสชัน ซึ่งเฟรมเวิร์กแบ็กเอนด์ของคุณได้ทำเสร็จแล้ว ซึ่งจะทำให้ ในการโจมตี CSRF ได้สำเร็จ เนื่องจากโทเค็นรหัสถูกจัดเก็บโดยใช้ พื้นที่เก็บข้อมูลเว็บ และไม่อยู่ในคุกกี้

    3. โทเค็น Identity Toolkit จะใช้ได้เป็นเวลา 2 สัปดาห์ คุณอาจต้องการ ออกโทเค็นที่ผ่านไปแล้ว 2 สัปดาห์ต่อไป หรือคุณอาจ จะยาวหรือสั้นลงขึ้นอยู่กับข้อกำหนดด้านความปลอดภัยของแอป เมื่อผู้ใช้ออกจากระบบ ให้ล้างคุกกี้เซสชัน

ขั้นตอนที่ 3: อัปเดต URL เปลี่ยนเส้นทาง IDP

  1. ใน Cloud Console ให้ทำดังนี้ เปิดผู้ให้บริการ

  2. สำหรับผู้ให้บริการการลงชื่อเข้าใช้แบบรวมศูนย์แต่ละรายที่คุณรองรับ ให้ทำดังนี้

    1. คลิกชื่อผู้ให้บริการการลงชื่อเข้าใช้
    2. คัดลอก URI การเปลี่ยนเส้นทาง OAuth
    3. อัปเดตการเปลี่ยนเส้นทาง OAuth ใน Developer Console ของผู้ให้บริการการลงชื่อเข้าใช้ URI

Android

ขั้นตอนที่ 1: เพิ่ม Identity Platform ลงในแอปด้วย Firebase

  1. เปิด Cloud Console และ เลือกโปรเจ็กต์ Identity Toolkit ของคุณ

  2. ในหน้าผู้ให้บริการ ให้คลิกรายละเอียดการตั้งค่าแอปพลิเคชัน แล้วเลือก Android จากนั้นคลิกเริ่มต้นใช้งานใน Firebase ในกล่องโต้ตอบเพิ่ม Firebase ให้ระบุชื่อแพ็กเกจของแอปและการรับรอง ลายนิ้วมือของใบรับรอง แล้วคลิกเพิ่มแอป google-services.json จากนั้นจะมีการดาวน์โหลดไฟล์การกำหนดค่ามายังคอมพิวเตอร์ของคุณ

  3. คัดลอกไฟล์การกำหนดค่าไปยังไดเรกทอรีรากโมดูลของแอป Android ช่วงเวลานี้ ประกอบด้วยข้อมูลโปรเจ็กต์และไคลเอ็นต์ OAuth ของ Google

  4. ในไฟล์ build.gradle ระดับโปรเจ็กต์ (<var>your-project</var>/build.gradle) ระบุชื่อแพ็กเกจของแอปใน ส่วน defaultConfig:

    defaultConfig {
       …..
      applicationId "com.your-app"
    }
    
  5. นอกจากนี้ ในไฟล์ build.gradle ระดับโปรเจ็กต์ ให้เพิ่มทรัพยากร Dependency ที่จะรวม ปลั๊กอิน google-services

    buildscript {
     dependencies {
       // Add this line
       classpath 'com.google.gms:google-services:3.0.0'
     }
    }
    
  6. ในไฟล์ build.gradle ระดับแอปของแอป (<var>my-project</var>/<var>app-module</var>/build.gradle) ให้เพิ่ม ต่อจากปลั๊กอิน Android Gradle เพื่อเปิดใช้ ปลั๊กอิน google-services:

    apply plugin: 'com.android.application'
    // Add this line
    apply plugin: 'com.google.gms.google-services'
    

    ปลั๊กอิน google-services ใช้ไฟล์ google-services.json ในการกำหนดค่า แอปพลิเคชันเพื่อใช้ Firebase

  7. นอกจากนี้ในไฟล์ build.gradle ระดับแอป ให้เพิ่มการตรวจสอบสิทธิ์ Firebase การพึ่งพา:

    compile 'com.google.firebase:firebase-auth:23.0.0'
    compile 'com.google.android.gms:play-services-auth:21.2.0'
    

ขั้นตอนที่ 2: นำ Identity Toolkit SDK ออก

  1. นำการกำหนดค่า Identity Toolkit ออกจาก AndroidManifest.xml ข้อมูลนี้จะรวมอยู่ในไฟล์ google-service.json และ ซึ่งโหลดโดยปลั๊กอิน google-services
  2. นำ Identity Toolkit SDK ออกจากแอป

ขั้นตอนที่ 3: เพิ่ม FirebaseUI ลงในแอป

  1. เพิ่มการตรวจสอบสิทธิ์ FirebaseUI กับแอปของคุณ

  2. ในแอปของคุณ ให้แทนที่การเรียกใช้ Identity Toolkit SDK ด้วยการเรียก Firebase UI

iOS

ขั้นตอนที่ 1: เพิ่ม Firebase ไปยังแอปของคุณ

  1. เพิ่ม SDK ของไคลเอ็นต์ลงในแอปโดยเรียกใช้คำสั่งต่อไปนี้

    $ cd your-project directory
    $ pod init
    $ pod 'Firebase'
    
  2. เปิด Cloud Console และ เลือกโปรเจ็กต์ Identity Toolkit ของคุณ

  3. ในหน้าผู้ให้บริการ ให้คลิกรายละเอียดการตั้งค่าแอปพลิเคชัน แล้วเลือก iOS แล้วคลิกเริ่มต้นใช้งานใน Firebase ในกล่องโต้ตอบเพิ่ม Firebase ระบุชื่อแพ็กเกจของแอปและลายนิ้วมือของใบรับรองการลงนาม และ คลิกเพิ่มแอป จากนั้นใช้ไฟล์การกำหนดค่า google-services.json ดาวน์โหลดลงในคอมพิวเตอร์แล้ว ในกล่องโต้ตอบเพิ่ม Firebase ให้ระบุ Bundle ID และรหัส App Store แล้วคลิกเพิ่มแอป จากนั้นระบบจะดาวน์โหลดไฟล์การกำหนดค่า GoogleService-Info.plist ลงใน คอมพิวเตอร์ หากคุณมีรหัสชุดหลายรายการในโปรเจ็กต์ รหัสชุดแต่ละรายการ ต้องเชื่อมต่อในคอนโซล Firebase เพื่อให้มี GoogleService-Info.plist ไฟล์

  4. คัดลอกไฟล์การกำหนดค่าไปยังรูทของโปรเจ็กต์ Xcode แล้วเพิ่มลงใน เป้าหมายทั้งหมด

ขั้นตอนที่ 2: นำ Identity Toolkit SDK ออก

  1. นำ GoogleIdentityToolkit ออกจาก Podfile ของแอป
  2. เรียกใช้คำสั่ง pod install

ขั้นตอนที่ 3: เพิ่ม FirebaseUI ลงในแอป

  1. เพิ่มการตรวจสอบสิทธิ์ FirebaseUI กับแอปของคุณ

  2. ในแอปของคุณ ให้แทนที่การเรียกใช้ Identity Toolkit SDK ด้วยการเรียก Firebase UI