S9 — ระบบเว็บพอร์ทัลกลาง (Web Portal)¶
RLPD Integrated Web Portal¶
ตารางสรุปข้อมูลเบื้องต้น¶
| หัวข้อ | รายละเอียด |
|---|---|
| อ้างอิง TOR | ข้อ 7.19 |
| หน่วยงานรับผิดชอบ | ศูนย์เทคโนโลยีสารสนเทศ (ศท.) |
| ลักษณะการพัฒนา | ระบบปรับปรุงและเพิ่มประสิทธิภาพ (Improvement & Maintenance) |
| สถานะโครงการ | :large_blue_circle: ต่อเนื่องจาก Phase 1 — Phase 1 พัฒนาระบบเว็บพอร์ทัลขึ้นใหม่ (TOR Phase 1 ข้อ ๑), Phase 2 ปรับปรุงเพิ่มเติมและเชื่อมต่อกับระบบใหม่ทั้ง 9 ระบบ |
| ระดับความซับซ้อน | ระดับเริ่มต้น (🟢 Quick Win / Foundational) |
| บทบาทหลัก | จุดเข้าใช้งานกลาง (Single Entry Point) สำหรับทุกระบบงานของกรมฯ |
| การเชื่อมโยงระบบ | ฝังการทำงาน S1 (Embedded) และนำทางไปยัง S2–S8 (Navigation) |
| สถานะการดำเนินงาน | ระบบใช้งานจริง (Production) และอยู่ระหว่างวางแผนปรับปรุง |
สถานะปัจจุบัน (Current State)¶
ระบบ Web Portal ได้รับการพัฒนาขึ้นในระยะที่ 1 (Phase 1) เพื่อเป็นศูนย์กลางการเข้าถึงบริการดิจิทัลของกรมคุ้มครองสิทธิและเสรีภาพ โดยทำหน้าที่เป็นระบบพิสูจน์ตัวตนกลาง (Single Sign-On: SSO) ผ่าน Keycloak และรองรับการแสดงผลแบบ Responsive ที่ปรับตามขนาดหน้าจออุปกรณ์ต่างๆ
ข้อมูลเชิงเทคนิคจากระยะที่ 1:
- Frontend: React.js, Tailwind CSS, Ant Design (AntD)
- Backend: Node.js, TypeScript, Express.js
- SSO Infrastructure: Keycloak (sso.rlpd.go.th) รองรับมาตรฐาน OIDC/OAuth2
- การจัดเก็บไฟล์: MinIO (S3-compatible)
- ความปลอดภัย: รองรับมาตรฐาน WCAG 2.1 Level AA
ขอบเขตความต้องการตาม TOR¶
ตามรายละเอียดในข้อกำหนด TOR ข้อ 7.19 การปรับปรุงระบบเว็บพอร์ทัลต้องครอบคลุมดังนี้:
1. การพิสูจน์และยืนยันตัวตน (Authentication & Authorization)¶
- การเชื่อมต่อ ThaiD / Digital ID: บูรณาการการเข้าสู่ระบบผ่านแอปพลิเคชัน ThaiD ของกรมการปกครอง
- ระบบ SSO ขั้นสูง: รองรับการทำ Single Sign-On ไปยังระบบใหม่ทั้ง 9 ระบบใน Phase 2
- สิทธิ์การใช้งานตามบทบาท (RBAC): กำหนดสิทธิ์การมองเห็นเมนูและฟังก์ชันตามประเภทผู้ใช้งาน (Role-Based Access Control)
2. มาตรฐานความปลอดภัย (Security Standards)¶
- การเข้ารหัสข้อมูล: ใช้งาน SSL Certificate (HTTPS) สำหรับทุกการรับส่งข้อมูล
- นโยบายรหัสผ่าน: บังคับเปลี่ยนรหัสผ่านทุก 60 วัน และมีการล็อกบัญชีหากใส่รหัสผิดเกินจำนวนที่กำหนด
- การจัดการบัญชี: ล็อกบัญชีที่ไม่มีการเคลื่อนไหวเกิน 45 วันโดยอัตโนมัติ
- ระบบป้องกันการโจมตี: เพิ่มกลไกป้องกัน Brute Force Attack
3. การรวมระบบ (Integration)¶
- การฝังระบบ S1: ระบบให้คำปรึกษาทางกฎหมาย (S1) จะถูกฝังเป็นโมดูลภายในพอร์ทัลโดยตรง
- จุดนำทางกลาง: เป็น Dashboard หลักในการเข้าถึงระบบ S2–S8 โดยไม่ต้อง Login ซ้ำ
ขั้นตอนการทำงาน (Workflow)¶
กระบวนการเข้าใช้งานระบบผ่านพอร์ทัลกลาง:
graph TD
A[ผู้ใช้งานเข้าสู่หน้า Portal] --> B{เลือกวิธี Login}
B -->|ประชาชน| C[ThaiD / Digital ID]
B -->|เจ้าหน้าที่| D[Username/Password + AD/LDAP]
C --> E[Keycloak ตรวจสอบสิทธิ์]
D --> E
E --> F[สร้าง Session / JWT Token]
F --> G[เข้าสู่หน้า Dashboard หลัก]
G --> H[เลือกใช้งานระบบ S1-S8 ตามสิทธิ์ที่มี]
รายละเอียดทางเทคนิค (Technical Details)¶
| ประเภท | รายละเอียด | หมายเหตุ |
|---|---|---|
| SSO Server | sso.rlpd.go.th (Keycloak) | ใช้ Realm: rlpd |
| Application Layer | Docker Container on Linux (10.136.27.124) | แยกส่วน Frontend และ Backend |
| Identity Provider | ThaiD, AD (Active Directory) | รองรับการเชื่อมต่อแบบ Hybrid |
| Data Storage | MinIO Object Storage | สำหรับจัดเก็บเอกสารแนบจากทุกระบบ |
ประเด็นที่ต้องการคำชี้แจง (Open Issues)¶
[ประเด็นเปิด] รายละเอียด ThaiD API Specification และช่องทางการเชื่อมต่อ (Endpoints) ที่เป็นปัจจุบันคืออะไร?
[ประเด็นเปิด] นโยบายการจัดการเซสชัน (Session Timeout) ของแต่ละระบบงานมีความแตกต่างกันหรือไม่? (เช่น ระบบการเงิน S5 อาจต้องการ Timeout ที่เร็วกว่าระบบอื่น)
[ประเด็นเปิด] ผังโครงสร้างบทบาทผู้ใช้งาน (User Role Matrix) สำหรับระบบใหม่ทั้ง 9 ระบบมีการจัดทำไว้แล้วหรือไม่?
[ประเด็นเปิด] การล็อกบัญชีที่ไม่มีการเคลื่อนไหว 45 วัน จะใช้เกณฑ์จากการ Login ครั้งสุดท้าย หรือกิจกรรมสุดท้ายในระบบ?
[ประเด็นเปิด] ระบบพอร์ทัลต้องรองรับการแสดงผลหลายภาษา (Multi-language) หรือไม่?
หมายเหตุทางเทคนิค (Technical Notes)¶
แนวทางการปรับปรุงความปลอดภัยในระยะที่ 2¶
- การบูรณาการ ThaiD:
- ศึกษามาตรฐาน OIDC ของ ThaiD และออกแบบ Flow การแลกเปลี่ยน Token
-
พัฒนาระบบรองรับ (Fallback Mechanism) ในกรณีที่บริการภายนอกขัดข้อง
-
การจัดการรหัสผ่านและเซสชัน:
- ใช้การแฮชรหัสผ่านด้วยอัลกอริทึมที่ทันสมัย (เช่น bcrypt หรือ Argon2)
- เพิ่มระบบแจ้งเตือนทางอีเมลเมื่อรหัสผ่านใกล้หมดอายุ (ก่อนครบ 60 วัน)
-
พัฒนาระบบปลดล็อกบัญชีอัตโนมัติผ่านการยืนยันตัวตนทางอีเมล
-
สถาปัตยกรรมระบบ (Architecture):
- Centralized Auth: พอร์ทัลทำหน้าที่เป็นผู้ส่งผ่าน Token (Token Exchange) ให้กับระบบลูก
- Performance: หน้าพอร์ทัลต้องโหลดได้รวดเร็ว เนื่องจากเป็นหน้าแรกที่ทุกคนต้องผ่าน (ควรมีการทำ Static Assets Caching)
- High Availability: เนื่องจากพอร์ทัลเป็นจุดเข้าใช้งานเพียงจุดเดียว (Single Point of Access) การออกแบบระบบควรคำนึงถึงความพร้อมใช้งานสูง (HA)
แผนภาพการเชื่อมต่อ ThaiD SSO¶
text
ผู้ใช้งาน -> หน้า Portal -> บริการพิสูจน์ตัวตน ThaiD (QR Scan) ->
พอร์ทัลรับ Token ยืนยัน -> สร้าง Session ใน Keycloak ->
ผู้ใช้งานเข้าถึงระบบ S1-S8 ได้โดยไม่ต้อง Login ซ้ำ