nestjs 를 배우며 로그인, 인증 파트를 공부하다가 한 번 정리하고 싶어서 알아봤다.
인증은 사용자 등의 신원을 확인하는 과정으로 사용자가 자신의 이메일이나 비밀번호 등의 신원정보 증명함으로써 이루어진다.
시스템은 올바른 사용자인지 신원인증을 통해 확인하여 부정 액세스를 방지하고, 사용자는 자신의 계정에 대한 안전한 액세스를 보장받음.
아이디/비밀번호 로그인, 바이오메트릭 데이터(지문, 홍채 등), 보안 토큰, 인증서 등을 이용해 인증한다.
인가는 인증된 사용자가 특정 리소스 또는 서비스 등에 접근할 권한이 있는지 확인하는 프로세스로 사용자에 대한 허가를 부여하고 관리한다.
인가는 사용자에게 특정 작업을 수행할 수 있는 권한을 부여함으로써 중요한 데이터와 시스템의 보안을 유지하며, 민감한 정보에 대한 바르지 않은 접근을 방지함.
역할 기반 접근 제어, ACL(Access Control List), 권한 부여 토큰(jwt토큰 등) 등을 사용하여 특정 사용자가 특정 리소스에 대한 권한을 가지도록 해줌
정리하자면
인증은 로그인 등 사용자를 확인하는 과정이고 인가는 로그인 등을 한 사용자가 특정 요청(조회, 작성 등)을 할 권한을 부여받는 과정이다.