Bỏ qua, đến nội dung

@digiforce-nc/plugin-auth-cas

Plugin xác thực qua CAS (Central Authentication Service) — giao thức SSO phổ biến trong môi trường giáo dục và doanh nghiệp. Hỗ trợ CAS 2.0 protocol với service ticket validation qua XML.

Plugin này làm gì?

CASAuth kế thừa BaseAuth, triển khai CAS 2.0 client. Luồng xác thực dựa trên service ticket: user được redirect đến CAS server để đăng nhập, CAS trả về ticket qua URL, Digiforce gọi serviceValidate endpoint để xác minh ticket và lấy thông tin user từ XML response.

Đặc điểm CAS protocol

#Đặc điểmChi tiết
1Ticket-basedCAS cấp service ticket dùng một lần, Digiforce validate server-side
2XML validationserviceValidate trả về XML chứa <cas:user> hoặc <sso:user>
3Service URLURL callback phải khớp chính xác với service đã đăng ký trên CAS
4Single Sign-OnUser đăng nhập một lần tại CAS, truy cập nhiều ứng dụng
5Stateless ticketsTicket chỉ hợp lệ một lần, không lưu state phía client

Luồng xác thực

Ví dụ CAS XML Response

xml
<cas:serviceResponse xmlns:cas="http://www.yale.edu/tp/cas">
  <cas:authenticationSuccess>
    <cas:user>john.doe</cas:user>
    <cas:attributes>
      <cas:email>john@example.com</cas:email>
      <cas:displayName>John Doe</cas:displayName>
    </cas:attributes>
  </cas:authenticationSuccess>
</cas:serviceResponse>

Cấu hình

Tham sốKiểuMô tả
casUrlstringBase URL của CAS server (ví dụ: https://cas.university.edu/cas)
serviceDomainstringDomain của Digiforce — dùng để tạo service URL callback
autoSignupbooleanTự tạo tài khoản nếu user chưa tồn tại

Service URL được xây dựng tự động:

{serviceDomain}{API_BASE_PATH}cas:service?authenticator={name}&__appName={app}&redirect={url}

Ví dụ: https://app.example.com/api/cas:service?authenticator=cas-main&__appName=main&redirect=/admin

API endpoints

EndpointQuyềnMô tả
cas:loginPublicRedirect user đến CAS server /login
cas:servicePublicCallback nhận ticket từ CAS, gọi serviceValidate

Thành phần client

Thành phầnMô tả
CASButtonNút "Đăng nhập bằng CAS" trên trang login
OptionsForm cấu hình CAS trong Settings → Authentication

Dependencies

PackageVai trò
@digiforce-nc/authBase auth framework (peer)
@digiforce-nc/serverServer framework (peer)
@digiforce-nc/clientClient framework (peer)

Mục lục chi tiết