Giao diện
@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ểm | Chi tiết |
|---|---|---|
| 1 | Ticket-based | CAS cấp service ticket dùng một lần, Digiforce validate server-side |
| 2 | XML validation | serviceValidate trả về XML chứa <cas:user> hoặc <sso:user> |
| 3 | Service URL | URL callback phải khớp chính xác với service đã đăng ký trên CAS |
| 4 | Single Sign-On | User đăng nhập một lần tại CAS, truy cập nhiều ứng dụng |
| 5 | Stateless tickets | Ticket 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ểu | Mô tả |
|---|---|---|
casUrl | string | Base URL của CAS server (ví dụ: https://cas.university.edu/cas) |
serviceDomain | string | Domain của Digiforce — dùng để tạo service URL callback |
autoSignup | boolean | Tự 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
| Endpoint | Quyền | Mô tả |
|---|---|---|
cas:login | Public | Redirect user đến CAS server /login |
cas:service | Public | Callback nhận ticket từ CAS, gọi serviceValidate |
Thành phần client
| Thành phần | Mô tả |
|---|---|
CASButton | Nút "Đăng nhập bằng CAS" trên trang login |
Options | Form cấu hình CAS trong Settings → Authentication |
Dependencies
| Package | Vai trò |
|---|---|
@digiforce-nc/auth | Base auth framework (peer) |
@digiforce-nc/server | Server framework (peer) |
@digiforce-nc/client | Client framework (peer) |