Access Token Service (AIS VO)
เอกสารนี้ระบุตรรกะของโปรแกรมและรายละเอียดส่วนต่อประสาน (Interface) ของ API สำหรับการขอรับ Access Token (Authentication) เพื่อใช้ในการเรียกใช้งาน API อื่นๆ ภายในระบบ AIS Virtual Organization (VO)
1. ภาพรวมโครงการ (Project Overview)
- ชื่อระบบ: Virtual Organization (VO) on Azure Cloud
- โมดูล: Authentication Service
- วัตถุประสงค์: เพื่อตรวจสอบสิทธิ์การเข้าใช้งานระบบ (Application ID, Login Name, Password) และสร้าง Bearer Token (JWT) สำหรับใช้ในการยืนยันตัวตนในทุกๆ Request ของ API ปลายทาง
2. รายละเอียด API Interface
- ชื่อ API:
getAccessToken - Endpoint URL:
https://sit-virtualorg-api.cdc.ais.th/api/authService/getAccessToken - HTTP Method:
POST - Request Headers:
Content-Type: application/json
3. โครงสร้างข้อมูล (Data Structure)
3.1 พารามิเตอร์ขาเข้า (Request Body - JSON)
| พารามิเตอร์ | ประเภท | จำเป็น | รายละเอียด |
|---|---|---|---|
application_id | String | ใช่ | รหัสระบบที่ต้องการเข้าใช้งาน (เช่น ACIM, CCSM, MO, MyCorporate, FBB) |
login_name | String | ใช่ | ชื่อผู้ใช้งานสำหรับ API (API Login Name) |
password | String | ใช่ | รหัสผ่านสำหรับ API (API Password) |
3.2 ตัวอย่างการตอบกลับเมื่อสำเร็จ (Success Response - JSON)
json
{
"status": true,
"code": "100",
"message": "success",
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}4. รายการระบบที่รองรับ (Supported Applications)
| Application ID | Login Name | Description |
|---|---|---|
My Channel | MC | สำหรับระบบ My Channel |
CCSM | CCSM | สำหรับระบบ Customer Care Service Management |
FBB | FBBWEB | สำหรับระบบ FBB Web Register |
FBB | FBBSD | สำหรับระบบ FBB Sales Digitize |
MyOffice | MO | สำหรับระบบ My Office |
MyCorporate | MYCORP | สำหรับระบบ My Corporate |
ACIM | ACIM | สำหรับระบบ ACIM (Query/Authorize) |
5. สถานการณ์การทดสอบ (Test Scenarios)
5.1 สถานการณ์ขาบวก (Positive Scenarios)
- SN-001 ถึง SN-008: ทดสอบการ Login ผ่าน Channel ต่างๆ (Default, CCSM, My Channel, FBB, MO, MyCorp, ACIM) ด้วยข้อมูลที่ถูกต้อง
- SN-009: เรียกใช้งาน API ปลายทาง (เช่น
updateUserAuthorize) ด้วย Token ที่ถูกต้อง
5.2 สถานการณ์ขาลบและการตรวจสอบความปลอดภัย (Negative & Security Scenarios)
- SN-010: ใช้ Token ข้ามระบบ (เช่น ใช้ Token ของระบบอื่นเรียก API ของ ACIM)
- SN-011 ถึง SN-015: ทดสอบ JSON Syntax และ Format ผิดพลาด (Syntax Error, ใช้
=แทน:, ใช้ Single Quote, ไม่มี Quote ที่ Field Name, Body ว่าง) - SN-016 ถึง SN-017: ข้อมูล Login ไม่ถูกต้อง (Wrong login_name, Wrong password)
- SN-018 ถึง SN-020: ขาดพารามิเตอร์ที่จำเป็น (Missing application_id, login_name, password)
- SN-021 ถึง SN-026: พารามิเตอร์เป็นค่าว่าง ("") หรือค่า Null
- SN-030: ส่งข้อมูลผิดประเภท (เช่น Password เป็น Number)
- SN-031: ส่งข้อมูลแบบ Array แทน Object
- SN-033: ส่งพารามิเตอร์เกินที่กำหนด
5.3 สถานการณ์ทางเทคนิค (Technical Scenarios)
- SN-034 ถึง SN-038: URL ผิดพลาด (Wrong path, Case mismatch, Non-existing API, Unsupported version)
- SN-039 ถึง SN-040: ใช้ HTTP Method ไม่ถูกต้อง (GET/PUT แทน POST)
- SN-041: จำลองสถานการณ์ Internal Server Error (500)
- SN-045: ตรวจสอบเวลาหมดอายุของ Token (Token Expiry)
- SN-047: ทดสอบการใช้ Token ที่หมดอายุแล้ว
- SN-048: ทดสอบการใช้ Token ที่ไม่ถูกต้องหรือมีการแก้ไข (Tampered Token)
- SN-051: ตรวจสอบการจัดการ Token ระหว่างระบบที่แตกต่างกัน
6. ข้อกำหนดเพิ่มเติม (Additional Requirements)
- Token Expiry: โดยปกติจะมีอายุการใช้งาน 12 ชั่วโมง (อ้างอิงจาก SN-045)
- Authentication Method: ใช้มาตรฐาน Bearer Token ใน Request Header ของ API อื่นๆ (
Authorization: Bearer <token>)