보안 · 기초
인증(Authentication)과 인가(Authorization)의 차이를 설명하고, 구체적인 예시를 들어주세요.
힌트 · 인증은 '누구인지', 인가는 '무엇을 할 수 있는지' 확인하는 과정임을 구체적 예시와 함께 설명해보세요.
인증인가신원 확인접근 권한OAuth 2.0
모범답안
면접관님, 인증과 인가는 보안에서 중요한 개념인데요, 쉽게 말해 인증은 '누구인지' 확인하는 과정이고, 인가는 '무엇을 할 수 있는지' 확인하는 과정입니다.
예를 들어, 웹사이트에 로그인할 때 아이디와 비밀번호를 입력하는 것은 인증 과정입니다. 웹사이트가 제가 누구인지 확인하는 거죠. 인증이 성공하면, 웹사이트는 제가 어떤 권한을 가지고 있는지 확인합니다. 이것이 인가입니다. 예를 들어, 관리자 계정으로 로그인했다면 게시글을 삭제할 수 있는 권한이 있을 것이고, 일반 사용자 계정이라면 게시글을 읽는 권한만 있을 수 있습니다.
OAuth 2.0 같은 경우, 사용자가 특정 서비스(예: 구글)에 인증되면, 다른 서비스(예: 웹사이트)가 사용자의 구글 계정에 접근할 수 있도록 인가를 요청할 수 있습니다. 이때 사용자는 어떤 정보에 접근을 허용할지 선택할 수 있습니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 웹 보안 면접 질문
- XSS(Cross-Site Scripting) 공격이란 무엇이며, 어떻게 방어할 수 있나요?
- CSRF(Cross-Site Request Forgery) 공격이란 무엇이며, 방어 방법을 설명해주세요.
- SQL Injection 공격이란 무엇이며, 어떻게 예방할 수 있나요?
- 인증(Authentication)에서 '신원 확인'과 인가(Authorization)에서 '권한 확인'은 각각 어떤 정보를 기준으로 판단하나요? 로그인 이후 매 요청마다 이 두 가지가 어떻게 적용되는지 설명해주세요.
- 역할 기반 접근 제어(RBAC)란 무엇이며, 사용자에게 권한을 직접 부여하는 방식과 비교해 어떤 장점이 있나요?
- OAuth 2.0의 Authorization Code Grant 플로우에서 인가 코드(authorization code)와 액세스 토큰을 분리해서 두 단계로 주고받는 이유는 무엇인가요?