인증(Authentication)과 인가(Authorization)는 보안 시스템에서 중요한 두 개념으로, 둘 다 보안과 관련된 용어이지만 그 의미와 목적이 다릅니다.
둘 다 Auth~로 시작을 하다 보니 너무 헷갈리는데, 한자로 보면 좀 이해가 갑니다.
- 인증 (인정할 인 認, 증명할 증 證): 어떤 사람이나 사물이 진짜임을 인정하고 증명하는 것.
- 인가 (인정할 인 認, 허락할 가 可): 어떤 행위나 요청에 대해 인정하고 허락하는 것.
부끄럽지만 인증과 인가의 차이를 명확하게 정의할 수 없었지만, OAuth 인증 프로토콜을 공부하다가 끄적여봅니다-!
🔐인증 (Authentication)🔓
정의
인증은 사용자가 누구인지를 확인하는 과정입니다. 즉, 사용자의 신원을 확인하는 단계입니다.
목적
시스템은 사용자가 주장하는 신원이 실제로 그 사용자와 일치하는지 확인합니다.
방법
일반적으로 사용자 이름과 비밀번호, 생체 인식(지문, 얼굴 인식 등), 인증 앱 또는 토큰 등을 사용하여 신원을 확인합니다.
예시
로그인할 때 사용자가 아이디와 비밀번호를 입력하는 과정이 인증 과정입니다.
👩🏻💻인가 (Authorization)✔️
정의
인가는 인증된 사용자가 특정 리소스나 기능에 접근할 수 있는 권한을 부여받았는지를 확인하는 과정입니다.
목적
시스템은 사용자가 특정 작업을 수행할 권한이 있는지 확인합니다.
방법
권한은 일반적으로 역할 기반 접근 제어(RBAC) 또는 권한 목록(ACL)을 통해 관리됩니다.
예시
사용자가 로그인을 완료한 후, 특정 페이지나 기능(예: 관리자 대시보드)에 접근할 수 있는 권한이 있는지 확인.
OAuth를 사용하여 애플리케이션이 사용자 대신 특정 API에 접근할 수 있도록 허용.
얄코 유튜브에서는 인가를 어서와이제이션~으로 외우면 좋다고 하셨는데 진짜 잘 외워짐 👍🏻
OAuth에서의 인증과 인가
OAuth는 주로 인가를 다루는 프로토콜입니다.
OAuth를 통해 애플리케이션(클라이언트)은 아이디/비밀번호를 갖고 있는 진짜 사용자 대신
리소스 서버(Google, Facebook)의 보호된 리소스에 접근할 수 있는 권한을 얻습니다.
- 사용자 인증: 사용자는 OAuth 제공자(예: Google, Facebook)에 로그인하여 자신을 인증
- 권한 부여 (인가): 사용자는 애플리케이션이 자신의 리소스에 접근하는 것을 허용
- 액세스 토큰 발급: OAuth 제공자는 애플리케이션에 액세스 토큰을 발급. 이 토큰은 애플리케이션이 사용자 대신 보호된 리소스에 접근할 수 있는 권한을 제공함.
요약
- 인증 (Authentication): 사용자가 누구인지를 확인하는 과정
- 인가 (Authorization): 인증된 사용자가 특정 리소스나 기능에 접근할 수 있는 권한을 확인하는 과정