Auth (Authentication & Authorization)
인증(Authentication)과 인가(Authorization)
kellis
2020. 8. 19. 15:58
대부분의 웹 애플리케이션은 클라이언트의 접근을 통제하기 위해 Authentication(인증)/Authorization(인가) 기능을 구현하고 있습니다. 일반적으로 인증과 인가를 합쳐 Auth라고 구현한다고 말합니다.
인증이란?
클라이언트가 자신이 주장하는 사용자와 같은 사용자인지를 확인하는 과정.
일반적으로 아래와 같은 방법을 통해 인증 기능을 구현합니다.
- 로그인 폼
- HTTP 인증
- HTTP 다이제스트 액세스 인증
- X.509 인증서
- 기타 커스텀 인증 방법
인가란?
권한 부여를 의미하며, 클라이언트가 하고자 하는 작업이 해당 클라이언트에게 허가된 작업인지를 확인하는 절차. 즉, 해당 리소스에 접근할 수 있는 권한이 있는지 확인하는 절차.
일반적으로 아래와 같은 방법을 통해 인가 기능을 구현합니다.
- URL에 대한 접근 제어
- 객체와 메서드 보안
- RBAC(Role Based Access Control)
- ACL(Access Control Lists)
OAuth2라거나 JWT 등도 Auth를 구현하기 위한 방법 중 하나입니다.