Bỏ qua, đến nội dung

@digiforce-nc/plugin-auth-ldap

Plugin xác thực qua LDAP / Active Directory — cho phép user đăng nhập bằng tài khoản doanh nghiệp từ LDAP server (OpenLDAP, Microsoft AD, FreeIPA...). Sử dụng thư viện ldapjs để kết nối và xác thực trực tiếp.

Plugin này làm gì?

LDAPAuth kế thừa BaseAuth, thực hiện xác thực trực tiếp với LDAP server — không qua redirect hay callback như OAuth. Plugin bind vào LDAP bằng service account, tìm kiếm user theo filter, rồi bind lại bằng mật khẩu user để xác minh.

Đặc điểm chính

#Đặc điểmChi tiết
1Direct authenticationKhông redirect, không callback — xác thực trực tiếp qua LDAP bind
2Two-phase bindBind service account để search → bind user DN để verify password
3Flexible filterFilter hỗ trợ placeholder (mail=PLACEHOLDER) thay bằng account nhập vào
4Test connectionAdmin có thể test kết nối LDAP trước khi bật cho user
5Attribute mappingMap LDAP attributes (cn, mail, uid...) sang local user fields

Luồng xác thực

Cấu hình

Tham sốKiểuMô tả
urlstringURL kết nối LDAP (ví dụ: ldap://ad.company.com:389)
bindDNstringDistinguished Name của service account để search
bindPasswordstringMật khẩu service account
searchDNstringBase DN để tìm kiếm user (ví dụ: ou=users,dc=company,dc=com)
filterstringLDAP filter với placeholder account (ví dụ: (mail=PLACEHOLDER))
scopestringPhạm vi search: base, one, hoặc sub
sizeLimitnumberGiới hạn số kết quả trả về
attributeMapobjectMapping LDAP attributes → local fields (ví dụ: cn → nickname)
userBindFieldstringField dùng để liên kết LDAP user với local user
public.autoSignupbooleanTự tạo tài khoản nếu user chưa tồn tại

Ví dụ cấu hình Active Directory

json
{
  "url": "ldap://ad.company.com:389",
  "bindDN": "cn=svc-digiforce,ou=services,dc=company,dc=com",
  "bindPassword": "secret",
  "searchDN": "ou=employees,dc=company,dc=com",
  "filter": "(sAMAccountName=PLACEHOLDER)",
  "scope": "sub",
  "attributeMap": {
    "mail": "email",
    "cn": "nickname",
    "sAMAccountName": "username"
  }
}

API endpoints

EndpointQuyềnMô tả
auth:signInPublicĐăng nhập — gửi kèm header X-Authenticator: ldap-{name}
ldap:testAdminTest kết nối LDAP (bind + search thử)

Thành phần client

Thành phầnMô tả
LDAPFormForm đăng nhập LDAP (account + password) trên trang login
OptionsForm cấu hình LDAP trong Settings, có nút Test Connection

Dependencies

PackageVai trò
ldapjsThư viện LDAP client cho Node.js
@digiforce-nc/authBase auth framework (peer)
@digiforce-nc/serverServer framework (peer)
@digiforce-nc/clientClient framework (peer)

Mục lục chi tiết