authn과 authz는 무엇일까?

공유하기

authn과 authz는 단어는 익숙하지 않을 수도 있지만, 아마 백엔드 개발자라면 기존에 알고 있는 개념일 가능성이 있다.

authn, 인증

AUTHeNtication, 즉 인증은 사용자 혹은 장치에서 자신을 증명하는 것을 말한다. 흔히 사용되는 이메일과 비밀번호를 사용한 로그인이나, 지문인식 등 자신을 증명하는 방법은 여러가지가 있다.

authz, 권한 부여

AUTHoriZation, 즉 권한 부여는 자신을 증명한 사용자 중에서 특정 리소스에 접근할 권한이 있는지 확인하는 것을 말한다.

관계자 외 출입금지 구역에는 일반인은 들어갈 수 없지만, 관리자나 경비원이라면 들어갈 수 있을 것이다. 이처럼 특정한 사용자만 접근할 수 있도록 하는 것을 허가, 권한 부여 등으로 부른다.

권한 부여의 종류

아래에서 제시한 방법 말고도 다양한 방법이 있으며, 용도와 상황에 맞게 잘 사용해야 한다. 이제 디스코드에서 사용되는 역할과 @everyone으로 예시를 들어보자.

  • RBAC (Role Based Access Control): "VIP" 역할을 가진 사용자들에게만 특정 채널이 보이게 한다. 이렇게 역할로 권한을 제어하는 것을 RBAC라고 한다.
  • ABAC (Attribute Based Access Control): 사용자의 이메일 인증이 완료되지 않은 경우 채팅을 쓰지 못하게 한다. 이러한 예시처럼 사용자의 속성을 기반으로 권한을 제어하는 것을 ABAC라고 한다.
  • Rule-based Access Control: @everyone을 대상으로 메시지 기록을 볼 수 있도록 한다. 이처럼 역할이나 속성과 상관없이 모든 사용자에게 적용되는 규칙을 Rule-based Access Control이라고 한다.
ⓒ 2024. enbraining All rights reserved.