ขอบคุณบทความต้นฉบับ How to Set Up Drupal Authentication Using OAuth2 and OpenID Connect ที่เผยแพร่เมื่อปี 2021
ตั้งค่า OAuth2 Server และ OpenID Connect เพื่อใช้ล็อกอินข้ามเว็บ
สำหรับบทความนี้ จะสร้างเว็บไซต์ Drupal 10 ขึ้นมา 2 เว็บ เพื่อเป็น OAuth2 Server และเป็น OpenID Connect ให้เชื่อมกัน
ในการสร้าง Drupal 10 แบบเร็วๆ ใช้คำสั่ง composer
composer create-project drupal/recommended-project:10.4.2 drupal
cd drupal && php -d memory_limit=256M web/core/scripts/drupal quick-start standardเมื่อได้เว็บไซต์ Drupal 10 ทั้ง 2 เว็บ เรียบร้อยแล้ว ก็มาเริ่มตั้งค่าต่างๆ ดังนี้
เว็บหลัก (Server)
ให้ติดตั้งโมดูล OAuth2 Server ด้วยคำสั่ง composer
composer require drupal/oauth2_serverและเปิดใช้โมดูลด้วยคำสั่ง drush
drush en oauth2_server -yไปที่ตั้งค่า OAuth2 servers หน้าเพจ /admin/structure/oauth2-servers

คลิก + Add Server

กำหนดชื่อ Server name และเลือก Use OpenID Connect

พักเว็บหลัก ไว้ตรงนี้ก่อน
เว็บลูกข่าย (Client)
ให้ติดตั้งโมดูล OpenID Connect ด้วยคำสั่ง composer
composer require drupal/openid_connectและเปิดใช้โมดูลด้วยคำสั่ง drush
drush en openid_connect -yไปที่ตั้งค่า OpenID Connect หน้าเพจ /admin/config/services/openid-connect

ในการล็อกอินข้ามเว็บไซต์ ให้เลือกเป็น Generic

เมื่อเลือก Generic จะมีแบบฟอร์มให้กำหนดข้อมูลของเว็บลูกข่าย (Client)
- Client ID
- Client secret (เหมือนเป็นรหัสผ่านสำหรับการเชื่อมต่อ)
- Authorization endpoint แก้ไข URL เว็บหลัก (Server) ให้ถูกต้อง
- Token endpoint
- Userinfo endpoint

และด้านล่าง กำหนดให้ปุ่มล็อกอิน แทนฟอร์มการล็อกอินของเว็บ

หากต้องการบังคับให้มีการใช้งาน OAuth2 ล็อกอินเท่านั้น ให้ปิดการลงทะเบียนของเว็บลูกค่าย (Client) ไว้เลย โดยเข้าไปที่ Configuration > People > Account settings กำหนดให้เฉพาะ Admin เท่านั้นที่สามารถสร้างบัญชีใหม่

หน้าตาเพจล็อกอินก็จะประมาณนี้

จบการตั้งค่า ในเว็บลูกข่าย (Client)
กลับมาที่เว็บหลัก (Server) อีกครั้ง
ให้แก้ไขเพิ่มรายละเอียดของ OAuth2 Server ที่กำหนดเอาไว้

เลือกหัวข้อ Clients และเพิ่ม + Add client

ให้ใส่รายละเอียดจากที่กรอกไว้ในเว็บลูกข่าย (Client)
- Label
- Client ID (ที่กำหนดไว้แล้ว)
- Client secret (ที่กำหนดไว้แล้ว)
- Redirect URIs ที่ได้จากเว็บลูกข่าย (Client)

และก่อนจบการตั้งค่า ให้ไปกำหนดสิทธิ People > Permissions
ให้ anonymous user และ authenticated user สามารถเข้าถึงสิทธิ Use OAuth2 Server for authorization

- Log in to post comments