인증(Authentication) vs 인가(Authorization)
보통 '권한'이라고 불리는 것 중에는 인증(Authentication), 인가(Authorization) 두 가지 단어가 존재합니다. 언뜻 보면 서로 비슷한 개념 같기도 해서 차이점이 모호해 보이기도 합니다.
그러나, 인증과 인가는 완전히 다른 개념입니다. 결론을 먼저 말하면 인증은 장치 혹은 사용자를 식별하는 행위이고 인가는 장치 및 사용자의 접근 권한을 허용/거부하는 행위입니다.
인증(Authentication)
포털 사이트를 보면 어떠한 작업을 하고자 할 때 '로그인이 필요합니다' 문구와 함께 로그인 인증이 요구된다면 이는 인증(Authentication)이 필요한 상황입니다. 서버 입장에서는 현재 요청자가 회원인지 알 수 없습니다.
인가(Authorization)
결국 요청자는 회원가입 및 로그인을 하고 원하는 작업을 하려고 했으나 '권한이 없어 이용할 수 없습니다.'라는 문구가 뜹니다. 이는 인가(Authorization) 즉 접근 권한이 없기 때문에 발생되는 상황입니다.
인증(로그인이 되어있는 상태)이 되었어도 인가(로그인은 되어 있지만 권한은 없는 상태)가 없기 때문에 접근할 수 없는 원리입니다. 서버 입장에서 요청자가 로그인을 했기 때문에 누구인지 특정을 하고 있으나, 권한이 없어 해당 요청을 차단한 것입니다.
이를 바탕으로 인증과 인가의 차이를 설명하면 다음과 같습니다.
인증 -> 인가 : 가능
인가 -> 인증 : 불가능
인증 후 인가는 이어질 수 있지만 인가 다음에 인증은 이어질 수 없습니다.
인증 (Authentication) | 인가 (Authorization) | |
기능 | 자격 증명 확인 | 권한 허가/거부 |
진행 방식 | 비밀번호, 생체인식, 일회용 핀 또는 앱 | 보안 권한 설정에 따라 상이 |
사용자가 볼 수 있는가? | 예 | 아니오 |
사용자가 직접 변경할 수 있는가? | 부분적으로 가능 | 불가능 |
데이터 전송 | ID 토큰 사용 | 액세스 토큰 사용 |
인증과 인가 (권한 부여) 비교 – 특징 및 차이점 | Okta Identity Korea
인증과 인가는 IAM 환경에서 명확히 구분되는 보안 프로세스로, 인증 (Authentication) 단계에서는 사용자의 신원을 확인하며, 인가 (Authorization) 단계에서는 신원이 확인된 사용자에게 리소스에 액세
www.okta.com