Authentication (การยืนยันตัวตน) - "คุณคือใคร?"
กระบวนการตรวจสอบว่าผู้ใช้/ระบบ/บริการ เป็นคนที่อ้างว่าตนเป็นจริง
- Something you know: Password, PIN, Passphrase
- Something you have: Token, Smart Card, Phone (OTP, Push), FIDO2 Key (YubiKey)
- Something you are: Biometric (Fingerprint, Face, Iris, Voice)
- Somewhere you are: Location (GPS, IP Geofencing)
- Something you do: Behavioral (Keystroke, Mouse, Gait)
Authentication Methods
- Single Factor (SFA): Password Only (Weak)
- Two Factor (2FA): Password + OTP/Approval
- Multi-Factor (MFA): 2+ Factors จาก Category ต่างกัน
- Certificate-based: Client Certificates (mTLS)
- Kerberos: Ticket-based (Windows AD)
- SAML/OIDC: Federation, SSO (Enterprise, Cloud)
Authorization (การอนุมัติสิทธิ์) - "คุณได้ทำอะไร?"
กระบวนการตัดสินใจว่าผู้ใช้ที่ Authenticated แล้ว มีสิทธิ์เข้าถึง Resource/Action ไหนบ้าง
Authorization Models
- RBAC (Role-Based Access Control): Permission -> Role -> User (ง่าย, Scalable)
- ABAC (Attribute-Based): Policy based on Attributes (User, Resource, Environment, Action) - ยืดหยุ่นกว่า
- PBAC (Policy-Based): Centralized Policy Engine (OPA, Cedar)
- ACL (Access Control List): Per-resource Permissions (Simple, ไม่ Scale)
- DAC/MAC: Discretionary/Mandatory (Military/High Security)
ความสัมพันธ์: AuthN -> AuthZ
- User ให้ Credentials (AuthN)
- System Verify -> สร้าง Security Context/Token (JWT, Kerberos Ticket, Session)
- User Request Resource + Token
- System Check Policy (AuthZ) -> Allow/Deny
Web Application Context
- Authentication: Login Form, SSO, Social Login, Passkeys/WebAuthn
- Authorization: Route Guards, API Scopes, Feature Flags, Resource Ownership Checks
Zero Trust: Never Trust, Always Verify
AuthN + AuthZ ต้องเกิดขึ้น ทุก Request ไม่ใช่แค่ Login ครั้งแรก ใช้ Continuous Verification, Micro-segmentation, Least Privilege