# 8. Cơ chế xác thực & tích hợp SSO (WSO2)

### 8.1. Mục tiêu chương

<div id="bkmrk-">  
</div>Quy định cơ chế xác thực linh hoạt giữa:

- Local Login
- SSO qua WSO2 IS

Nhằm:

- Phục vụ dev/test
- Hỗ trợ định danh tập trung khi triển khai

### 8.2. Khái niệm / phạm vi áp dụng

Hai chế độ xác thực:

<div align="left" dir="ltr" id="bkmrk-ch%E1%BA%BF-%C4%91%E1%BB%99-m%C3%B4-t%E1%BA%A3-local-l"><table><tbody><tr><td>Chế độ

</td><td>Mô tả

</td></tr><tr><td>Local

</td><td>Login nội bộ

</td></tr><tr><td>WSO2

</td><td>Login qua SSO OIDC

</td></tr></tbody></table>

</div>### 8.3. Quy định chính

<div id="bkmrk--1">  
</div>#### Nguyên tắc chung

Logic xác thực nằm trong:  
  
modules/auth

common/security

- Partner không được sửa logic xác thực
- Không thêm cơ chế login khác

---

#### Cấu hình chế độ đăng nhập

auth.type = local

auth.type = wso2

---

#### Local Login

- Xác thực username/password
- Dữ liệu ở bảng user\_account
- BE sinh token

---

#### WSO2 SSO flow

1. FE redirect sang WSO2
2. User login
3. WSO2 trả access\_token

FE gọi BE với:  
  
Authorization: Bearer &lt;token&gt;

4. BE validate token

---

#### Quy tắc FE

- FE đọc authType từ backend
- local → hiển thị form login
- wso2 → auto redirect

Không được hardcode.

---

#### Quy tắc BE

- Tất cả API qua security filter
- Không bypass auth

**Không hardcode user**

### 8.4. Quy trình thêm FE mới vào SSO

<div id="bkmrk--8">  
</div>1. Partner cung cấp:
- Domain FE
- Redirect URI
- Môi trường

3. Core tạo OAuth client
4. Cấp client\_id, scope

### 8.5. Checklist tích hợp xác thực

<div id="bkmrk--9">  
</div>- Token gửi qua Authorization: Bearer
- API trả 401 nếu token sai
- Audit log ghi nhận login