본문 바로가기

학습/CS

인증과 인가, 어떻게 다를까?

인증(Authentication)이란?

인증이란, 권한이 필요한 작업을 할 때, 본인이 맞는지를 확인하는 절차이다. 사용자의 신원을 검증한다고 생각하면 이해가 쉬울 것이다. 

인증을 증명 방식에 따라 세 가지로 나눌 수 있다.

1. 지식 기반 인증 방법

사용자가 알고 있는 정보를 기반으로 하는 인증 방법이다. 이는 사용자가 특정 정보를 알고 있는지 확인한다.

  • 패스워드 (Password): 가장 일반적인 형태의 지식 기반 인증. 사용자가 특정 비밀번호를 입력하여 자신을 인증한다. 
  • PIN (Personal Identification Number): 짧은 숫자 코드를 통한 인증 방법.
  • 보안 질문 (Security Questions): 사용자가 사전에 설정한 질문에 대한 답변을 입력.

 

2. 소유 기반 인증 방법

사용자가 소유하고 있는 물건을 기반으로 하는 인증 방법이다. 사용자가 특정 물건을 가지고 있음을 확인한다.

  • OTP (One-Time Password): 일회용 비밀번호로, 주로 모바일 앱이나 하드웨어 토큰을 통해 생성
  • 인증서 (Digital Certificate): 전자 서명과 같은 디지털 인증서로 사용자를 인증
  • 보안 카드 (Security Card): 은행에서 제공하는 보안 카드나 토큰을 통해 인증
  • 스마트카드 (Smart Card): 내부에 칩이 내장된 카드로, 카드 리더기에 삽입하여 인증

 

3. 특징 기반 인증 방법

사용자의 신체적 또는 행동적 특징을 기반으로 하는 인증 방법입니다. 사용자의 고유한 생물학적 또는 행동적 특성을 이용하여 인증합니다.

  • 지문 (Fingerprint): 사용자의 지문을 인식하여 인증
  • 홍채 (Iris): 사용자의 홍채 패턴을 인식하여 인증
  • 음성 (Voice): 사용자의 목소리 패턴을 인식하여 인증
  • 얼굴 인식 (Facial Recognition): 사용자의 얼굴 특징을 인식하여 인증합니다.
  • 필기체 서명 (Handwritten Signature): 사용자의 필기체 서명을 인식하여 인증합니다.

인가(Authorization)이란?

인가란, 사용자에게 특정 리소스나 기능에 액세스 할 수 있는 권한을 부여하는 것이다. "얘한테 맞는 권한이 부여되었는가?"라고 생각하면 쉬울 것이다. 

인증은 사용자를 확인하는 절차, 인가는 사용자에게 권한을 부여하는 절차라고 생각하면 된다. 

인증은 사용자가 볼 수 있으며, 변경도 가능한 경우가 많지만
인가는 사용자가 직접적으로 확인할 수 없으며, 직접적인 인가 권한 변경 또한 불가하다. 

출처: https://www.okta.com/kr/identity-101/authentication-vs-authorization/


그렇다면 구글 아이디를 이용해서 다른 웹사이트에 접속을 할 때, 이 상황은 인증일까 인가일까?

이 상황을 이해하려면, Open Authorization(OAuth)에 대하여 아는 것이 좋다. 

개방형 표준 권한 부여 프로토콜, OAuth는 사용자의 로그인 자격 증명이나 패스워드 등 정보를 노출하지 않고, 다른 웹사이트 상의 자신들의 정보에 대해 접근 가능하도록 하는 개방형 프로토콜이다. 

다시 돌아가서, 구글 아이디를 이용해서 다른 웹사이트에 접속하는 상황은 인증과 인가의 개념 두 가지가 모두 포함된다. 

1. 구글 아이디를 이용한 인증

다른 웹사이트에 구글 아이디로 로그인할 때, 웹사이트는 구글의 OAuth2.0 프로토콜을 사용하여 사용자의 신원을 확인한다. 

 

  • 사용자가 웹사이트에서 "구글 아이디로 로그인" 버튼을 클릭한다.
  • 사용자는 구글 로그인 페이지로 리다이렉션(redirection)되어 구글 계정 자격 증명을 입력한다.
  • 구글은 사용자의 신원을 확인하고, 사용자에게 로그인이 성공했음을 알린다.
  • 구글은 웹사이트에 사용자가 성공적으로 인증되었음을 알려주는 액세스 토큰을 반환한다.
*Redirection: 웹 브라우저가 하나의 URL에서 다른 URL로 자동으로 이동하도록 하는 프로세스

 

2. 구글 아이디를 이용한 인가

구글 아이디로 로그인하는 과정에서, 웹사이트는 종종 사용자의 정보(이메일 주소, 이름, 프로필 사진 등)에 접근할 권한을 요청한다.

  • 사용자가 구글 로그인 페이지에서 인증을 완료한 후, 구글은 사용자가 해당 웹사이트가 요청한 정보에 접근할 수 있도록 허용할지 여부를 묻는다.
  • 사용자가 동의하면, 구글은 웹사이트에 필요한 정보에 접근할 수 있는 권한을 부여한다.
  • 웹사이트는 이 권한을 사용하여 사용자의 정보를 가져오고, 사용자를 식별하고 맞춤형 서비스를 제공할 수 있다.

따라서 로그인하는 것 자체는 OAuth를 통한 인증 절차라고 볼 수 있고, 구글 아이디를 사용하여 정보에 접근하는 것은 인가에 가깝다. 

'학습 > CS' 카테고리의 다른 글

About OAuth  (2) 2025.07.14
빅데이터(Big Data)에 대해서  (1) 2024.07.20