ขั้นตอนการตั้งค่า 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))

- Log in to post comments
comments
เปิดพื้นที่พูดคุยกันครับ
poakpong Mon, 2025-11-03 - 20:20
เปิดพื้นที่พูดคุยกันครับ