ตั้งค่า OpenID Connect ให้เว็บไซต์ Drupal ล็อกอินด้วยบัญชี Google

ขั้นตอนการตั้งค่า OpenID Connect ให้เว็บไซต์ Drupal ล็อกอินด้วยบัญชี Google

1. สร้างโปรเจคใน Google Cloud เพื่อขอ Client ID และ Client Secret

ก่อนเริ่มตั้งค่าในเว็บไซต์ Drupal ต้องเปิดโปรเจคใหม่ใน Google Cloud

จากนั้นเลือกใช้ Google People API หัวข้อ APIs & Services > Credentials > + Create Credentials > OAuth Client ID

เลือกประเภท (Application type) Web application แล้ว ตั้งชื่อ (Name)

ในส่วนของ Authorized JavaScript origins ให้ใส่ URL ของเว็บไซต์ Drupal ที่ต้องการให้ล็อกอินด้วย Google Account เช่น https://your-web-site

และในส่วน Authorized redirect URIs ให้ใส่ URL ที่ได้จากการตั้งค่า OpenID Connect ในเว็บไซต์ Drupal โดยทั่วไปจะอยู่ในรูปแบบ https://your-web-site/openid-connect/google (ตรวจสอบอีกครั้งในข้อ 2)

กดปุ่ม Create เพื่อบันทึกข้อมูล

จากนั้นก็จะได้ Client ID และ Client Secret ที่จะต้องนำไปกรอกในเว็บไซต์ Drupal

2. ติดตั้งโมดูล OpenID Connect และ เปิดใช้งาน

https://www.drupal.org/project/openid_connect

ติดตั้งโมดูล OpenID Connect ด้วยคำสั่ง composer

composer require drupal/openid_connect

จากนั้นเปิดเว็บไซต์ ไปที่หน้าจัดการ Extend (Modules) เพื่อเปิดใช้งานโมดูล OpenID Connect

ไปที่หน้าตั้งค่า Configuration > Web services > OpenID Connect

หัวข้อ Provider เลือก Google

จากนั้นกรอกข้อมูล Client ID และ Client Secret ที่ได้จาก Google Cloud

ในจุดนี้ ระบบจะบอกว่า Redirect URL คืออะไร https://your-web-site/openid-connect/google (นำไปกรอกในข้อ 1)

บันทึกการตั้งค่า

3. ตรวจสอบสภาพแวดล้อมก่อนเริ่มใช้งาน

3.1 OpenID Connect

ระหว่างขั้นตอนการตั้งค่า OpenID Connect เพื่อให้รองรับการล็อกอินจาก Google

หัวข้อ OpenID buttons display in user login form ให้เลือกเป็น Replace ไปเลย เพื่อบังคับไม่ให้แสดงแบบฟอร์มการล็อกอินของระบบ

และในหัวข้อ User claims mapping ให้คงไว้ตามที่โมดูลเตรียมไว้ให้ คือเลือกเฉพาะ Timezone = Zoneinfo ส่วนหัวข้ออื่นๆ ไม่ต้องเชื่อมต่อ (-No mapping-) ไว้อย่างนั้น

3.2 Account settings

ในส่วนนี้ Configuration > People > Account settings กำหนดว่าใครสามารถลงทะเบียนเข้าใช้งานได้บ้าง

ให้เลือกเป็น Administrators only (เฉพาะ Admin ที่สร้าง User) เป็นการปิดซ่อนแบบฟอร์ม การลงทะเบียนสมัครสมาชิกของระบบ Drupal

ซึ่งตรงนี้ หากล็อกอินด้วยบัญชี Google ระบบจะสร้าง User ใหม่ ให้อัตโนมัติ

3.3 สิทธิ์การใช้งานต่างๆ

เมื่อสมาชิก ล็อกอินด้วยบัญชี Google เข้ามาในระบบเว็บไซต์ Drupal แล้ว จะได้รับ บทบาท (Role) เป็น authenticated user ทันที

ทั้งนี้ หากต้องการจำกัดสิทธิการใช้งาน ก็ต้องเข้าไปตรวจสอบและกำหนด สิทธิ์ (Permissions) ก่อนเริ่มใช้งาน

3.4 อนุญาตให้ User สามารถเปลี่ยน Username ได้เอง

ค่าเริ่มต้นของการล็อกอินด้วยบัญชี Google ชื่อ Username ของ User จะเป็น Username เดียวกับที่ลงทะเบียนไว้ที่บัญชี Google

หากต้องการอนุญาตให้ User สามารถเปลี่ยน Username ได้เอง ต้องอนุญาตให้ Change own username ได้ด้วย

อย่างไรก็ตาม การล็อกอินด้วยบัญชี Google จะเปลี่ยนแปลงได้เฉพาะชื่อ Username เท่านั้น ไม่อนุญาตให้แก้ไขอีเมลที่ผูกไว้กับบัญชีที่ล็อกอินเข้าระบบ Drupal

4. ข้อควรระวัง ข้อสังเกต

ในการเชื่อมต่อ OpenID Connect กับบัญชี Google เว็บไซต์ Drupal จำเป็นต้องติดตั้ง SSL/TLS ให้ถูกต้อง (ถ้าใช้ Cloudflare เป็น Proxy จะต้องกำหนดค่า SSL/TLS ให้เป็น Full (Strict))

 

comments

การส่งความคิดเห็น ถือว่าคุณยอมรับ ข้อกำหนดการใช้งาน และ นโยบายความเป็นส่วนตัว ของเรา