보안(Security)의 핵심은 접근 제어(Access Control)입니다.
보안에 대한 접근 제한의 대상은 바로 자원(Resource)입니다.
접근 제어의 수단은 인증(Authentication)과 인가(Authorization)이 있습니다.
인증(Authentication)
현실에서 인증은 그 사람이 누구인지 확인하는 과정을 의미합니다.
웹에서 이러한 인증을 구현한다면 다음과 같습니다.
1. 아이디/ 암호 기반의 인증
2. Access Token 기반의 인증(GitHub)
3. OTP, 생체 인식 기반(홍채, 지문 등)
인가(Authorization)
인가는 인증을 전제로 합니다.
접근하려는 자원에 대한 접근 권한을 확인하고 인증이 완료된 자원에게 접근을 허가합니다.