โลโก้ Keycloak
อันดับ 39 ใน Top 100 Identity และ SSOApache License 2.0 (โอเพนซอร์ส)

Keycloak คืออะไร และวิธีติดตั้งระบบ SSO บน Cloud Server

Keycloak คือระบบยืนยันตัวตนกลางที่ทำให้พนักงานใช้บัญชีเดียวเข้าได้ทุกระบบภายใน พร้อมบังคับการยืนยันตัวตนสองชั้นได้จากที่เดียว เป็นมาตรฐานโอเพนซอร์สที่องค์กรทั่วโลกใช้

หมวดหมู่
Identity และ SSO
ติดตั้งบนเซิร์ฟเวอร์เองได้
ได้
สเปกเริ่มต้นที่แนะนำ
2 vCPU · RAM 4 GB
ไลเซนส์
Apache License 2.0 (โอเพนซอร์ส)
เว็บทางการ
เปิดเว็บไซต์
สร้าง Cloud Server เดี๋ยวนี้
  • ISO/IEC 27001
  • ISO 22301
  • ISO 20000-1
  • CSA-STAR

Data Center ในไทย มาตรฐาน TIA-942 Tier 3+ ข้อมูลอยู่ในประเทศไทย

Keycloak คืออะไร

เมื่อองค์กรมีระบบภายในหลายสิบตัว การให้พนักงานจำรหัสผ่านแยกทุกระบบเป็นทั้งภาระและช่องโหว่ Keycloak แก้ปัญหานี้ด้วยการเป็นจุดยืนยันตัวตนกลาง ระบบอื่นเพียงส่งผู้ใช้มาที่นี่แล้วรับผลกลับไป

Keycloak รองรับมาตรฐานที่ระบบสมัยใหม่ใช้กันทั้ง OpenID Connect และ SAML จึงต่อได้กับซอฟต์แวร์สำเร็จรูปจำนวนมากและกับแอปที่ทีมพัฒนาเอง

ประโยชน์ที่เห็นผลทันทีคือการบังคับ MFA ทั้งองค์กรจากจุดเดียว และการปิดสิทธิ์พนักงานที่ลาออกได้ในคลิกเดียวโดยไม่ต้องไล่ปิดทุกระบบ ซึ่งเป็นความเสี่ยงที่หลายองค์กรมองข้าม

แผนผังการวางระบบ Keycloak บน Cloud Server หนึ่งเครื่องที่ Data Center ในประเทศไทย ผู้ใช้เข้าถึงผ่านไฟร์วอลล์ที่เปิดเฉพาะพอร์ต 443, 8080, 5432 ตัว Keycloak และข้อมูลอยู่บนเครื่องเดียวกัน เริ่มต้นที่ 2 vCPU แรม 4 GB และมีสำเนาสำรองเขียนออกไปเก็บอีกไซต์หนึ่ง
Keycloak ทำงานบน Cloud Server เครื่องเดียวได้ครบ เปิดเฉพาะพอร์ตที่จำเป็น ข้อมูลและสำเนาสำรองอยู่ใน Data Center ในประเทศไทย

ความสามารถเด่นของ Keycloak

Single Sign-On

เข้าสู่ระบบครั้งเดียวแล้วใช้ได้ทุกระบบที่ต่อไว้

รองรับมาตรฐานหลัก

OpenID Connect, OAuth 2.0 และ SAML 2.0 จึงต่อกับซอฟต์แวร์ได้กว้าง

บังคับ MFA ได้ทั้งองค์กร

ตั้งนโยบายการยืนยันตัวตนสองชั้นจากจุดเดียวโดยไม่ต้องแก้ทุกระบบ

เชื่อมกับ LDAP และ Active Directory

ใช้บัญชีเดิมขององค์กรได้ทันทีโดยไม่ต้องย้ายผู้ใช้

จัดการหลายกลุ่มผู้ใช้

แยก Realm สำหรับพนักงาน คู่ค้า และลูกค้า โดยมีนโยบายต่างกันได้

ปรับหน้าเข้าสู่ระบบได้

ใส่ตราสินค้าและข้อความขององค์กรบนหน้าล็อกอินกลาง

ใช้ Keycloak ทำอะไรได้บ้าง

  • องค์กรที่มีระบบภายในหลายตัวและต้องการบัญชีเดียวใช้ได้ทุกระบบ
  • หน่วยงานที่ต้องบังคับ MFA ตามข้อกำหนดด้านความปลอดภัย
  • ธุรกิจที่ต้องเปิดระบบให้คู่ค้าเข้าใช้โดยแยกนโยบายจากพนักงาน
  • ทีมพัฒนาที่ไม่อยากเขียนระบบล็อกอินใหม่ในทุกโครงการ

สเปก Cloud Server ที่แนะนำ

แผนภาพเทียบสเปก Cloud Server สำหรับ Keycloak 3 ระดับ เริ่มจาก 2 vCPU แรม 4 GB ดิสก์ NVMe 40 GB ไปจนถึง 8 vCPU ขึ้นไป แรม 16 GB ขึ้นไป ดิสก์ NVMe 160 GB ขึ้นไป โดยเทียบขนาดแยกตามแต่ละคอลัมน์
เริ่มจากระดับที่ตรงกับการใช้งานตอนนี้ แล้วเพิ่ม CPU และ RAM ทีหลังได้บนเครื่องเดิม
ระดับการใช้งานvCPURAMDisk
เริ่มต้นผู้ใช้ไม่เกิน 500 คน ระบบที่ต่อไม่มาก2 vCPU4 GBNVMe 40 GB
แนะนำผู้ใช้หลักพันและหลายระบบที่ต่อเข้ามา4 vCPU8 GBNVMe 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. 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. 2

    สั่งรัน

    docker compose up -d
  3. 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. 4

    สร้าง Realm และ Client

    สร้าง Realm สำหรับพนักงาน แล้วเพิ่ม Client หนึ่งรายการต่อหนึ่งระบบที่จะต่อเข้ามา พร้อมระบุที่อยู่ปลายทางที่อนุญาตให้เปลี่ยนเส้นทางกลับ

  5. 5

    เชื่อมกับ LDAP หรือ Active Directory

    ถ้าองค์กรมีไดเรกทอรีผู้ใช้อยู่แล้ว ให้ตั้ง User Federation เพื่อดึงบัญชีเดิมมาใช้ ไม่ต้องสร้างผู้ใช้ใหม่ทั้งหมด

  6. 6

    บังคับการยืนยันตัวตนสองชั้น

    ตั้งนโยบายให้ผู้ใช้ลงทะเบียนแอป Authenticator ในการเข้าสู่ระบบครั้งถัดไป เริ่มจากกลุ่มผู้ดูแลระบบก่อนแล้วขยายทั้งองค์กร

ระบบนี้กลายเป็นจุดสำคัญที่สุดของโครงสร้างพื้นฐานทันทีที่ทุกระบบต่อเข้ามา ควรวางแผนสำรองข้อมูล การเฝ้าระวัง และการรันหลายโหนดตั้งแต่ต้น

พอร์ตที่ต้องเปิดบน Firewall

พอร์ตโปรโตคอลใช้ทำอะไร
443TCPHTTPS ผ่าน Reverse Proxy (จำเป็น)
8080TCPพอร์ตภายในของ Keycloak
5432TCPPostgreSQL (เปิดเฉพาะภายใน)

สิ่งที่ควรทำต่อหลังติดตั้งเสร็จ

  • บังคับ 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 ให้ฟรี บน Cloud Server ในไทย

แจ้งความต้องการสั้น ๆ ทีมวิศวกรจะช่วยประเมินสเปก ติดตั้ง และตั้งค่าความปลอดภัยให้พร้อมใช้งาน ปรึกษาฟรี ไม่มีข้อผูกมัด