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

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

Authelia คือด่านยืนยันตัวตนน้ำหนักเบาที่วางไว้หน้า Reverse Proxy เพื่อบังคับให้ทุกคนต้องล็อกอินและยืนยันตัวตนสองชั้นก่อนเข้าถึงระบบภายใน แม้ระบบนั้นจะไม่มีระบบล็อกอินของตัวเอง

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

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

Authelia คืออะไร

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

การทำงานอาศัยความสามารถ Forward Authentication ของ Reverse Proxy คือ Proxy จะถาม Authelia ก่อนทุกคำขอว่าผู้ใช้นี้ผ่านการยืนยันแล้วหรือยัง ถ้ายังจะเปลี่ยนเส้นทางไปหน้าล็อกอินกลาง

Authelia ตั้งใจให้เบาและเรียบง่าย จึงไม่มีความสามารถระดับ Identity Provider เต็มรูปแบบเท่า Keycloak หรือ Authentik แต่ตอบโจทย์ตรงมากสำหรับการปิดหน้าเว็บภายในไม่ให้คนนอกเข้าถึง

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

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

บังคับยืนยันตัวตนหน้าเว็บใดก็ได้

ใช้ได้แม้กับระบบที่ไม่มีระบบล็อกอินของตัวเอง

MFA หลายรูปแบบ

ทั้งรหัสจากแอป Authenticator และคีย์ความปลอดภัย

ตั้งกฎการเข้าถึงตามเส้นทาง

กำหนดได้ว่าเส้นทางใดต้องยืนยันสองชั้น เส้นทางใดล็อกอินก็พอ

เบามาก

รันบนเครื่องสเปกต่ำสุดได้และใช้หน่วยความจำน้อย

ต่อกับ LDAP ได้

ใช้บัญชีเดิมขององค์กรหรือเก็บผู้ใช้ในไฟล์สำหรับทีมเล็ก

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

  • ปิดหน้าแดชบอร์ดของเครื่องมือภายในไม่ให้คนภายนอกเข้าถึง
  • เพิ่ม MFA ให้หน้าเว็บที่ไม่มีระบบยืนยันตัวตนสองชั้น
  • ทีมเล็กที่ต้องการล็อกอินกลางแบบเรียบง่ายโดยไม่ตั้ง Identity Provider เต็มรูปแบบ
  • ป้องกันหน้าเว็บของระบบทดสอบที่เปิดสู่อินเทอร์เน็ตชั่วคราว

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

แผนภาพเทียบสเปก Cloud Server สำหรับ Authelia 3 ระดับ เริ่มจาก 1 vCPU แรม 1 GB ดิสก์ NVMe 20 GB ไปจนถึง 2 vCPU แรม 4 GB ดิสก์ NVMe 60 GB โดยเทียบขนาดแยกตามแต่ละคอลัมน์
เริ่มจากระดับที่ตรงกับการใช้งานตอนนี้ แล้วเพิ่ม CPU และ RAM ทีหลังได้บนเครื่องเดิม
ระดับการใช้งานvCPURAMDisk
เริ่มต้นทีมเล็กและระบบภายในไม่กี่ตัว1 vCPU1 GBNVMe 20 GB
แนะนำองค์กรขนาดกลางที่มีหลายระบบหลัง Proxy เดียว2 vCPU2 GBNVMe 40 GB
ใช้งานหนักผู้ใช้จำนวนมากและมีการตรวจสิทธิ์ถี่2 vCPU4 GBNVMe 60 GB

ดูราคาตามสเปกได้ที่ ราคา Cloud Compute หรือให้ทีมงานช่วยประเมินสเปกจากปริมาณผู้ใช้จริงของคุณ

วิธีติดตั้ง Authelia บน Cloud Server ของ THAI DATA CLOUD

ขั้นตอนด้านล่างใช้กับ Cloud Server ที่เพิ่งสร้างใหม่จากหน้าจัดการของ THAI DATA CLOUD ได้ทันที ถ้าไม่สะดวกทำเอง ทีมวิศวกรของเราติดตั้งและตั้งค่าให้ฟรีสำหรับลูกค้า Cloud Server

สิ่งที่ต้องเตรียม

  • Reverse Proxy ที่รองรับ Forward Authentication เช่น Nginx, Traefik หรือ Caddy
  • Cloud Server ที่ติดตั้ง Docker แล้ว
  • โดเมนย่อยสำหรับหน้าล็อกอินและใบรับรอง SSL
  • ที่เก็บผู้ใช้ ทั้งไฟล์รายชื่อหรือ LDAP ขององค์กร

ทดสอบบน Ubuntu Server 24.04 LTS ที่ติดตั้ง Docker แล้ว

  1. 1

    สร้างไฟล์ compose.yml

    services:
      authelia:
        image: authelia/authelia:latest
        restart: always
        volumes:
          - ./config:/config
        ports: ["127.0.0.1:9091:9091"]
  2. 2

    สร้างไฟล์ตั้งค่าหลัก

    กำหนดโดเมนของหน้าล็อกอิน ที่เก็บผู้ใช้ และกฎการเข้าถึงของแต่ละโดเมนย่อย

    default_redirection_url: https://auth.example.com
    
    authentication_backend:
      file:
        path: /config/users.yml
    
    access_control:
      default_policy: deny
      rules:
        - domain: grafana.example.com
          policy: two_factor
        - domain: wiki.example.com
          policy: one_factor
    
    session:
      domain: example.com
    
    storage:
      local:
        path: /config/db.sqlite3
  3. 3

    สร้างรายชื่อผู้ใช้

    สร้างไฟล์ users.yml โดยเก็บรหัสผ่านเป็นค่าที่ผ่านการแฮชแล้ว ใช้คำสั่งของ Authelia สร้างค่าแฮช

    docker run --rm authelia/authelia:latest authelia crypto hash generate argon2 --password 'YourPassword'
  4. 4

    สั่งรัน

    docker compose up -d
  5. 5

    ตั้ง Nginx ให้ถาม Authelia ก่อนทุกคำขอ

    เพิ่มบล็อกตรวจสิทธิ์ในเว็บที่ต้องการป้องกัน ถ้าผู้ใช้ยังไม่ได้ยืนยันตัวตนจะถูกส่งไปหน้าล็อกอินกลาง

    location /authelia {
      internal;
      proxy_pass http://127.0.0.1:9091/api/verify;
      proxy_set_header X-Original-URL $scheme://$http_host$request_uri;
    }
    
    location / {
      auth_request /authelia;
      error_page 401 = @redirect_to_login;
      proxy_pass http://127.0.0.1:3000;
    }
  6. 6

    ลงทะเบียน MFA

    ให้ผู้ใช้เข้าหน้าล็อกอินครั้งแรกเพื่อลงทะเบียนแอป Authenticator จากนั้นเส้นทางที่ตั้งเป็นสองชั้นจะบังคับใช้ทันที

ต้องตั้งโดเมนของ Session ให้เป็นโดเมนหลักที่ครอบทุกโดเมนย่อยที่ป้องกันไว้ มิฉะนั้นผู้ใช้จะต้องล็อกอินซ้ำทุกครั้งที่สลับระบบ

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

พอร์ตโปรโตคอลใช้ทำอะไร
443TCPHTTPS ของหน้าล็อกอินและระบบที่ป้องกันไว้
9091TCPพอร์ตภายในของ Authelia

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

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

ทำไมควรรัน Authelia บน Cloud Server ของ THAI DATA CLOUD

Data Center ในประเทศไทย มาตรฐาน ISO/IEC 27001 และ ISO 22301 พร้อมทีมวิศวกรคนไทยดูแลตลอด 24 ชั่วโมง

ใช้ปิดหน้าเว็บจัดการของเครื่องมือต่าง ๆ บน Cloud Server ไม่ให้เปิดสู่อินเทอร์เน็ตแบบไร้การป้องกัน

รันบนเครื่องสเปกต่ำสุดได้ จึงเพิ่มความปลอดภัยให้ระบบภายในด้วยต้นทุนแทบไม่เพิ่ม

ใช้คู่กับ VPN Gateway เพื่อทำการป้องกันสองชั้นสำหรับระบบที่อ่อนไหวที่สุด

คำถามที่พบบ่อยเกี่ยวกับ Authelia

Authelia ต่างจาก Keycloak อย่างไร

Authelia เป็นด่านยืนยันตัวตนหน้า Proxy ที่เบาและตั้งค่าเร็ว เหมาะกับการปิดหน้าเว็บภายใน ส่วน Keycloak เป็น Identity Provider เต็มรูปแบบที่ให้แอปต่าง ๆ ใช้เป็นระบบล็อกอินกลางผ่านมาตรฐาน OIDC หรือ SAML ซึ่งครอบคลุมกว่าแต่ซับซ้อนกว่า

ใช้กับ Traefik หรือ Caddy ได้ไหม

ได้ ทั้งสองรองรับการถามสิทธิ์ไปยังบริการภายนอกเช่นเดียวกับ Nginx เพียงตั้งค่า Middleware ให้ชี้มาที่ Authelia ตามเอกสารของแต่ละตัว

เก็บผู้ใช้ในไฟล์ปลอดภัยไหม

ปลอดภัยพอสำหรับทีมเล็กถ้ารหัสผ่านถูกแฮชและไฟล์จำกัดสิทธิ์ แต่เมื่อผู้ใช้เพิ่มขึ้นควรต่อกับ LDAP หรือ Active Directory เพื่อให้จัดการบัญชีจากที่เดียวและถอนสิทธิ์ได้ทันทีเมื่อพนักงานลาออก

ให้เราติดตั้ง Authelia ให้ฟรี บน Cloud Server ในไทย

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