🔬 Nghiên cứu 🌱 Mới trồng 9 tháng 8, 2026 Trồng 9 thg 8

goauthentik/authentik

📦 goauthentik/authentik ⭐ 24k Mở trên GitHub ↗

The authentication glue you need.

Kết luận: fit · Công nghệ: sso · oauth2 · oidc · saml · reverse-proxy

authentik là một nền tảng IAM/SSO tự host tập trung vào authentication + authorization, hỗ trợ OAuth2/OIDC, SAML, proxy/reverse-proxy và có độ chín cao với ~23.8k stars. Phù hợp khi cần gom đăng nhập tập trung cho nhiều ứng dụng nội bộ, dịch vụ self-hosted hoặc môi trường Kubernetes thay vì tự xây toàn bộ lớp nhận thực.

📖 Giới thiệu chi tiết

🧩 Nó là gì?

goauthentik/authentik là một nền tảng đăng nhập tập trung tự host, giúp bạn gom việc đăng nhập của nhiều ứng dụng về một nơi duy nhất. Nói đơn giản: thay vì mỗi app tự có tài khoản riêng, authentik đứng giữa để quản lý “ai được đăng nhập vào đâu”.

🎯 Giải quyết vấn đề gì? Dành cho ai?

authentik giải quyết bài toán authenticationauthorization:

  • authentication: xác minh “bạn là ai”, ví dụ đăng nhập bằng username/password, SSO, MFA.
  • authorization: quyết định “bạn được làm gì”, ví dụ user A được vào app nội bộ, user B thì không.

Dự án này phù hợp cho:

  • Người tự host nhiều dịch vụ như dashboard, wiki, Git, media server, tool nội bộ.
  • Team muốn có SSO: đăng nhập một lần, dùng được nhiều ứng dụng.
  • Công ty muốn thay thế hoặc giảm phụ thuộc vào các dịch vụ như Okta, Auth0, Entra ID, Ping Identity.
  • Môi trường chạy bằng Docker Compose, Kubernetes, AWS hoặc DigitalOcean.
  • DevOps / platform team cần một “cổng đăng nhập” thống nhất cho hệ thống.

Ví dụ dễ hiểu: bạn có 10 ứng dụng nội bộ. Thay vì tạo user/password ở cả 10 nơi, bạn cho tất cả dùng authentik. Nhân viên chỉ cần đăng nhập qua authentik, rồi được chuyển tiếp vào đúng ứng dụng họ có quyền dùng.

⚙️ Hoạt động ra sao?

  • authentik đóng vai trò Identity Provider, thường viết tắt là IdP. Hiểu đơn giản: đây là “nơi cấp danh tính” cho user.
  • Các ứng dụng khác kết nối với authentik qua các chuẩn phổ biến như:
    • OAuth2/OIDC: thường dùng cho web app hiện đại.
    • SAML: hay gặp trong phần mềm doanh nghiệp.
    • LDAP: thường dùng với hệ thống cũ hoặc công cụ cần danh bạ user.
    • RADIUS: thường dùng cho mạng, VPN hoặc thiết bị hạ tầng.
  • Khi user mở một ứng dụng, ứng dụng có thể chuyển user sang authentik để đăng nhập.
  • authentik kiểm tra user, mật khẩu, nhóm, quyền, MFA nếu có.
  • Nếu hợp lệ, authentik gửi user quay lại ứng dụng kèm thông tin danh tính.
  • Với các ứng dụng không hỗ trợ SSO trực tiếp, authentik có thể dùng chế độ proxy/reverse-proxy để bảo vệ phía trước ứng dụng.
  • Trong Kubernetes hoặc hệ thống lớn, authentik có thể được triển khai bằng Helm Chart để dễ quản lý và mở rộng.

🆚 Khi nào nên dùng / không nên

Nên dùng authentik khi:

  • Bạn muốn tự host hệ thống đăng nhập thay vì phụ thuộc hoàn toàn vào dịch vụ bên ngoài.
  • Bạn có nhiều ứng dụng cần chung một tài khoản đăng nhập.
  • Bạn cần hỗ trợ nhiều chuẩn đăng nhập như OAuth2/OIDC, SAML, LDAP, RADIUS.
  • Bạn muốn kiểm soát dữ liệu người dùng, quyền truy cập và luồng đăng nhập.
  • Bạn đang chạy homelab, server nội bộ, startup, hoặc cụm Kubernetes.

Có thể không nên dùng authentik khi:

  • Bạn chỉ có 1 ứng dụng nhỏ và đăng nhập đơn giản là đủ.
  • Bạn không muốn vận hành thêm database, server, backup, cập nhật bảo mật.
  • Team không có người phụ trách hạ tầng hoặc bảo mật đăng nhập.
  • Bạn cần một dịch vụ quản lý hoàn toàn sẵn có, không cần tự vận hành; khi đó Okta, Auth0, Entra ID có thể tiện hơn.
  • Bạn chỉ cần thư viện login trong app, không cần một nền tảng IAM/SSO đầy đủ.

So sánh nhanh:

  • authentik: tự host, kiểm soát cao, linh hoạt, hợp với nhiều app và hạ tầng riêng.
  • Okta/Auth0/Entra ID: dịch vụ cloud, ít phải vận hành, nhưng thường tốn chi phí hơn và phụ thuộc nhà cung cấp.
  • Tự viết hệ thống login: linh hoạt nhất trên lý thuyết, nhưng dễ sai về bảo mật và mất nhiều công sức.

🚀 Bắt đầu nhanh

Cách dễ nhất để thử authentik là dùng Docker Compose. Đây là hướng phù hợp cho môi trường nhỏ, test, homelab hoặc khi bạn muốn chạy thử nhanh.

Các bước cơ bản:

  1. Chuẩn bị máy có Docker và Docker Compose.
  2. Tải file cấu hình Docker Compose chính thức của authentik.
  3. Tạo file .env chứa các biến cấu hình cần thiết.
  4. Khởi động dịch vụ.
  5. Mở giao diện web của authentik trên trình duyệt.
  6. Tạo user, application, provider rồi kết nối ứng dụng của bạn vào authentik.

Ví dụ tối thiểu để chạy thử bằng Docker Compose:

mkdir authentik
cd authentik

wget https://goauthentik.io/docker-compose.yml

echo "PG_PASS=$(openssl rand -base64 36)" >> .env
echo "AUTHENTIK_SECRET_KEY=$(openssl rand -base64 60)" >> .env
echo "AUTHENTIK_ERROR_REPORTING__ENABLED=true" >> .env

docker compose pull
docker compose up -d

Sau khi chạy xong, mở:

http://localhost:9000

Nếu chạy trên server riêng, thay localhost bằng IP hoặc domain của server.

Ví dụ luồng thiết lập tối thiểu sau khi vào giao diện:

1. Tạo user hoặc dùng user admin ban đầu.
2. Tạo Application, ví dụ: "My Internal App".
3. Tạo Provider phù hợp, thường là OAuth2/OIDC nếu app hỗ trợ đăng nhập hiện đại.
4. Gắn Provider vào Application.
5. Copy Client ID, Client Secret, Redirect URI sang cấu hình login của ứng dụng.
6. Thử đăng nhập từ ứng dụng, bạn sẽ được chuyển sang authentik.

Nếu triển khai lớn hơn, đặc biệt trên Kubernetes, nên dùng Helm Chart:

helm repo add authentik https://charts.goauthentik.io
helm repo update

helm install authentik authentik/authentik

✅ Điểm mạnh & ⚠️ Hạn chế

✅ Điểm mạnh:

  • Mã nguồn mở, có thể tự host và kiểm soát dữ liệu đăng nhập.
  • Hỗ trợ nhiều chuẩn quan trọng: OAuth2/OIDC, SAML, LDAP, RADIUS.
  • Phù hợp từ homelab nhỏ đến production cluster lớn.
  • Có thể thay thế hoặc bổ sung cho các IdP như Okta, Auth0, Entra ID, Ping Identity.
  • Hữu ích cho môi trường nhiều ứng dụng nội bộ hoặc nhiều dịch vụ self-hosted.
  • Có cách cài đặt linh hoạt: Docker Compose, Kubernetes, AWS CloudFormation, DigitalOcean Marketplace.

⚠️ Hạn chế:

  • Cần hiểu cơ bản về domain, HTTPS, reverse proxy và bảo mật đăng nhập khi đưa lên production.
  • Tự host nghĩa là bạn phải tự lo cập nhật, backup, giám sát và xử lý sự cố.
  • Với người mới, các khái niệm như OAuth2/OIDC, SAML, provider, redirect URI ban đầu có thể hơi rối.
  • Nếu chỉ có một ứng dụng nhỏ, dùng authentik có thể là hơi “nặng”.
  • Một số nhu cầu doanh nghiệp lớn có thể cần bản enterprise hoặc cấu hình nâng cao.