Keycloak คืออะไร และวิธีติดตั้งระบบ SSO บน Cloud Server
Keycloak คือระบบยืนยันตัวตนกลางที่ทำให้พนักงานใช้บัญชีเดียวเข้าได้ทุกระบบภายใน พร้อมบังคับการยืนยันตัวตนสองชั้นได้จากที่เดียว เป็นมาตรฐานโอเพนซอร์สที่องค์กรทั่วโลกใช้
- หมวดหมู่
- Identity และ SSO
- ติดตั้งบนเซิร์ฟเวอร์เองได้
- ได้
- สเปกเริ่มต้นที่แนะนำ
- 2 vCPU · RAM 4 GB
- ไลเซนส์
- Apache License 2.0 (โอเพนซอร์ส)
- เว็บทางการ
- เปิดเว็บไซต์
- ISO/IEC 27001
- ISO 22301
- ISO 20000-1
- CSA-STAR
Data Center ในไทย มาตรฐาน TIA-942 Tier 3+ ข้อมูลอยู่ในประเทศไทย
Keycloak คืออะไร
เมื่อองค์กรมีระบบภายในหลายสิบตัว การให้พนักงานจำรหัสผ่านแยกทุกระบบเป็นทั้งภาระและช่องโหว่ Keycloak แก้ปัญหานี้ด้วยการเป็นจุดยืนยันตัวตนกลาง ระบบอื่นเพียงส่งผู้ใช้มาที่นี่แล้วรับผลกลับไป
Keycloak รองรับมาตรฐานที่ระบบสมัยใหม่ใช้กันทั้ง OpenID Connect และ SAML จึงต่อได้กับซอฟต์แวร์สำเร็จรูปจำนวนมากและกับแอปที่ทีมพัฒนาเอง
ประโยชน์ที่เห็นผลทันทีคือการบังคับ MFA ทั้งองค์กรจากจุดเดียว และการปิดสิทธิ์พนักงานที่ลาออกได้ในคลิกเดียวโดยไม่ต้องไล่ปิดทุกระบบ ซึ่งเป็นความเสี่ยงที่หลายองค์กรมองข้าม
ความสามารถเด่นของ Keycloak
Single Sign-On
เข้าสู่ระบบครั้งเดียวแล้วใช้ได้ทุกระบบที่ต่อไว้
รองรับมาตรฐานหลัก
OpenID Connect, OAuth 2.0 และ SAML 2.0 จึงต่อกับซอฟต์แวร์ได้กว้าง
บังคับ MFA ได้ทั้งองค์กร
ตั้งนโยบายการยืนยันตัวตนสองชั้นจากจุดเดียวโดยไม่ต้องแก้ทุกระบบ
เชื่อมกับ LDAP และ Active Directory
ใช้บัญชีเดิมขององค์กรได้ทันทีโดยไม่ต้องย้ายผู้ใช้
จัดการหลายกลุ่มผู้ใช้
แยก Realm สำหรับพนักงาน คู่ค้า และลูกค้า โดยมีนโยบายต่างกันได้
ปรับหน้าเข้าสู่ระบบได้
ใส่ตราสินค้าและข้อความขององค์กรบนหน้าล็อกอินกลาง
ใช้ Keycloak ทำอะไรได้บ้าง
- องค์กรที่มีระบบภายในหลายตัวและต้องการบัญชีเดียวใช้ได้ทุกระบบ
- หน่วยงานที่ต้องบังคับ MFA ตามข้อกำหนดด้านความปลอดภัย
- ธุรกิจที่ต้องเปิดระบบให้คู่ค้าเข้าใช้โดยแยกนโยบายจากพนักงาน
- ทีมพัฒนาที่ไม่อยากเขียนระบบล็อกอินใหม่ในทุกโครงการ
สเปก Cloud Server ที่แนะนำ
| ระดับการใช้งาน | vCPU | RAM | Disk |
|---|---|---|---|
| เริ่มต้นผู้ใช้ไม่เกิน 500 คน ระบบที่ต่อไม่มาก | 2 vCPU | 4 GB | NVMe 40 GB |
| แนะนำผู้ใช้หลักพันและหลายระบบที่ต่อเข้ามา | 4 vCPU | 8 GB | NVMe 80 GB |
| องค์กรใหญ่ควรรันสองโหนดขึ้นไปเพราะถ้าระบบนี้ล่มจะเข้าทุกระบบไม่ได้ | 8 vCPU ขึ้นไป | 16 GB ขึ้นไป | NVMe 160 GB ขึ้นไป |
ดูราคาตามสเปกได้ที่ ราคา Cloud Compute หรือให้ทีมงานช่วยประเมินสเปกจากปริมาณผู้ใช้จริงของคุณ
วิธีติดตั้ง Keycloak บน Cloud Server ของ THAI DATA CLOUD
ขั้นตอนด้านล่างใช้กับ Cloud Server ที่เพิ่งสร้างใหม่จากหน้าจัดการของ THAI DATA CLOUD ได้ทันที ถ้าไม่สะดวกทำเอง ทีมวิศวกรของเราติดตั้งและตั้งค่าให้ฟรีสำหรับลูกค้า Cloud Server
สิ่งที่ต้องเตรียม
- Cloud Server ที่ติดตั้ง Docker แล้ว หรือ Java Runtime สำหรับการติดตั้งตรง
- PostgreSQL สำหรับเก็บข้อมูลผู้ใช้และการตั้งค่า
- โดเมนและใบรับรอง SSL เพราะระบบยืนยันตัวตนต้องทำงานบน HTTPS
- แผนสำรองข้อมูลและแผนรองรับกรณีระบบนี้ล่ม
ทดสอบบน Ubuntu Server 24.04 LTS ที่ติดตั้ง Docker แล้ว
- 1
สร้างไฟล์ compose.yml
ใช้ PostgreSQL เก็บข้อมูล ไม่ใช้ฐานข้อมูลในตัวสำหรับงานจริง เพราะย้ายและสำรองยาก
services: db: image: postgres:16 restart: always environment: POSTGRES_DB: keycloak POSTGRES_USER: keycloak POSTGRES_PASSWORD: ChangeThisStrongPassword volumes: [dbdata:/var/lib/postgresql/data] keycloak: image: quay.io/keycloak/keycloak:latest restart: always depends_on: [db] command: start --optimized environment: KC_DB: postgres KC_DB_URL: jdbc:postgresql://db:5432/keycloak KC_DB_USERNAME: keycloak KC_DB_PASSWORD: ChangeThisStrongPassword KC_HOSTNAME: sso.example.com KC_PROXY_HEADERS: xforwarded KC_HTTP_ENABLED: "true" KEYCLOAK_ADMIN: admin KEYCLOAK_ADMIN_PASSWORD: ChangeThisAdminPassword ports: ["127.0.0.1:8080:8080"] volumes: dbdata: - 2
สั่งรัน
docker compose up -d - 3
วาง Reverse Proxy พร้อม HTTPS
ต้องส่งต่อ Header ที่บอกว่าคำขอมาผ่าน HTTPS ให้ถูกต้อง มิฉะนั้นการเปลี่ยนเส้นทางของ Keycloak จะผิด
server { listen 443 ssl; server_name sso.example.com; location / { proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } - 4
สร้าง Realm และ Client
สร้าง Realm สำหรับพนักงาน แล้วเพิ่ม Client หนึ่งรายการต่อหนึ่งระบบที่จะต่อเข้ามา พร้อมระบุที่อยู่ปลายทางที่อนุญาตให้เปลี่ยนเส้นทางกลับ
- 5
เชื่อมกับ LDAP หรือ Active Directory
ถ้าองค์กรมีไดเรกทอรีผู้ใช้อยู่แล้ว ให้ตั้ง User Federation เพื่อดึงบัญชีเดิมมาใช้ ไม่ต้องสร้างผู้ใช้ใหม่ทั้งหมด
- 6
บังคับการยืนยันตัวตนสองชั้น
ตั้งนโยบายให้ผู้ใช้ลงทะเบียนแอป Authenticator ในการเข้าสู่ระบบครั้งถัดไป เริ่มจากกลุ่มผู้ดูแลระบบก่อนแล้วขยายทั้งองค์กร
ระบบนี้กลายเป็นจุดสำคัญที่สุดของโครงสร้างพื้นฐานทันทีที่ทุกระบบต่อเข้ามา ควรวางแผนสำรองข้อมูล การเฝ้าระวัง และการรันหลายโหนดตั้งแต่ต้น
พอร์ตที่ต้องเปิดบน Firewall
| พอร์ต | โปรโตคอล | ใช้ทำอะไร |
|---|---|---|
| 443 | TCP | HTTPS ผ่าน Reverse Proxy (จำเป็น) |
| 8080 | TCP | พอร์ตภายในของ Keycloak |
| 5432 | TCP | PostgreSQL (เปิดเฉพาะภายใน) |
สิ่งที่ควรทำต่อหลังติดตั้งเสร็จ
- บังคับ HTTPS ทั้งระบบและตรวจว่าส่ง Header ของ Proxy ถูกต้อง
- เปลี่ยนรหัสผ่านผู้ดูแลเริ่มต้นและจำกัดไอพีที่เข้าถึงหน้าจัดการ
- บังคับ MFA สำหรับผู้ดูแลระบบทุกบัญชีเป็นอย่างน้อย
- ระบุที่อยู่ปลายทางที่อนุญาตให้เปลี่ยนเส้นทางกลับอย่างเจาะจง ไม่ใช้เครื่องหมายแทนทั้งหมด
- สำรองฐานข้อมูลและตั้งการเฝ้าระวัง เพราะถ้าระบบนี้ล่มจะเข้าทุกระบบไม่ได้
- ตั้งนโยบายอายุ Session และการเพิกถอนสิทธิ์เมื่อพนักงานลาออก
ทำไมควรรัน Keycloak บน Cloud Server ของ THAI DATA CLOUD
Data Center ในประเทศไทย มาตรฐาน ISO/IEC 27001 และ ISO 22301 พร้อมทีมวิศวกรคนไทยดูแลตลอด 24 ชั่วโมง
ข้อมูลบัญชีผู้ใช้ขององค์กรอยู่ใน Data Center ในไทย ไม่ต้องฝากไว้กับบริการ Identity ต่างประเทศ
ต่อกับระบบภายในที่รันบน Cloud Server เครื่องอื่นในวง Private Network ได้โดยไม่ต้องเปิดออกอินเทอร์เน็ต
รันสองโหนดใน Data Center คนละแห่งได้เมื่อองค์กรต้องการความพร้อมใช้งานสูง
ทีมวิศวกรของ THAI DATA CLOUD ช่วยออกแบบสถาปัตยกรรมและการสำรองข้อมูลของระบบนี้ให้ได้
คำถามที่พบบ่อยเกี่ยวกับ Keycloak
Keycloak ต่างจากบริการ Identity บนคลาวด์อย่างไร
บริการบนคลาวด์เริ่มใช้ง่ายและไม่ต้องดูแลเซิร์ฟเวอร์ แต่คิดค่าบริการรายผู้ใช้และข้อมูลบัญชีอยู่กับผู้ให้บริการ ส่วน Keycloak ไม่มีค่าไลเซนส์และข้อมูลอยู่ในองค์กร แลกกับการที่ต้องดูแลความพร้อมใช้งานเอง
ถ้า Keycloak ล่มจะเกิดอะไรขึ้น
ผู้ใช้จะเข้าสู่ระบบใหม่ไม่ได้ทุกระบบที่ต่อไว้ ส่วนคนที่ล็อกอินอยู่แล้วมักใช้งานต่อได้จนกว่า Session จะหมดอายุ ดังนั้นควรรันหลายโหนด ตั้งการเฝ้าระวัง และมีแผนกู้คืนที่ทดสอบแล้ว
ใช้กับแอปที่พัฒนาเองได้ไหม
ได้ และเป็นการใช้งานหลัก แอปเพียงต่อผ่าน OpenID Connect ซึ่งมีไลบรารีรองรับในทุกภาษาหลัก ทำให้ไม่ต้องเขียนระบบล็อกอินและจัดการรหัสผ่านเองในทุกโครงการ
ทางเลือกอื่นที่คล้ายกับ Keycloak
แอปอื่นในหมวด Identity และ SSO
บริการของ THAI DATA CLOUD ที่เกี่ยวข้อง
ให้เราติดตั้ง Keycloak ให้ฟรี บน Cloud Server ในไทย
แจ้งความต้องการสั้น ๆ ทีมวิศวกรจะช่วยประเมินสเปก ติดตั้ง และตั้งค่าความปลอดภัยให้พร้อมใช้งาน ปรึกษาฟรี ไม่มีข้อผูกมัด