728x90
인증 (Authentication)과 인가 (Authorization)란?
정보 보안 분야에서 자주 등장하는 두 가지 개념이다.
이 두 개념은 시스템 보안의 핵심을 이루며, 사용자와 시스템 간의 상호작용에서 중요한 역할을 한다.
인증 (Authentication)란 무엇인가?
인증이란 사용자가 누구인지 확인하는 과정이다.
이는 시스템이 사용자의 신원을 확인하여 시스템에 접근할 수 있는 자격이 있는지 판단한다.
- 사용자 이름과 비밀번호: 가장 일반적인 인증 방법으로, 사용자가 웹사이트에 로그인하기 위해 ID와 PW를 입력
- 생체 인식: 지문, 얼굴, 홍채 인식 등 사용자의 생체 정보를 이용한 인증
- 일회용 코드: 이메일이나 SMS로 전송된 코드, 또는 인증 애플리케이션에서 생성된 코드
인가 (Authorization)란 무엇인가?
인가는 인증된 사용자가 시스템 내에서 어떤 자원에 접근할 수 있고, 어떤 작업을 수행할 수 있는지를 결정하는 과정이다.
- 접근 제어 리스트(ACL): 특정 자원에 대한 접근 권한을 정의한 리스트
- 역할 기반 접근 제어(RBAC): 사용자의 역할에 따라 권한을 부여하는 방식
- 정책 기반 접근 제어(PBAC): 정책에 기반하여 접근 권한을 관리하는 방식
예시)
- 관리자(Admin): 모든 자원에 대한 읽기, 쓰기, 삭제 권한.
- 일반 사용자 (Regular User): 제한된 자원에 대한 읽기, 쓰기 권한.
- 게스트(Guest): 특정 자원에 대한 읽기 권한만.
인증과 인가의 차이점
- 인증: 사용자가 누구인지를 확인하는 과정. 이는 신원을 증명하는 단계로, "너는 누구냐?"라는 질문에 답한다.
- 인가: 인증된 사용자가 무엇을 할 수 있는지를 결정하는 과정. 이는 권한을 부여하는 단계로, "너는 무엇을 할 수 있느냐?"라는 질문에 답한다.
인증과 인가가 중요한 이유
- 보안 강화: 인증과 인가는 시스템 보안을 강화하는 핵심 요소이다. 올바른 인증과 인가가 없다면, 시스템은 악의적인 사용자나 무단 접근으로부터 취약해질 수 있다.
- 데이터 보호: 민감한 데이터와 자원을 보호하기 위해서는 정확한 인증과 인가가 필수적이다. 이는 데이터 유출이나 무단 접근을 방지한다.
- 사용자 경험 향상: 적절한 인증과 인가를 통해 사용자는 필요한 자원과 기능에만 접근할 수 있어, 혼란을 줄이고 효율적인 작업이 가능하다.
인증과 인가는 시스템 보안의 필수 요소로, 각각 사용자의 신원을 확인하고, 확인된 사용자가 어떤 권한을 가지고 있는지를 결정한다. 이 두 가지 과정을 통해 시스템은 보안을 유지하고, 사용자에게 안전하고 효율적인 환경을 제공한다.
728x90
'기초 지식' 카테고리의 다른 글
npm, package.json, node_modules 는 무엇일까? (0) | 2024.08.01 |
---|---|
쿼리 스트링(Query String)이란? (0) | 2024.07.31 |
HTTP 상태 코드 정리 (0) | 2024.07.31 |
HTTP란? / HTTP와 HTTPS (0) | 2024.07.31 |
Web API란? (엔드포인트, 메서드: GET, POST, PUT, DELETE, 헤더, 바디) (0) | 2024.07.31 |