blevels

Home / AI / AI 용어사전 / 인증 vs 인가 — AI 서비스 보안이 두 단계로 나뉘는 이유

TERM

인증 vs 인가 — AI 서비스 보안이 두 단계로 나뉘는 이유

게시일 2026-04-30수정일 2026-04-30
공식 링크
On this page

로그인에 성공했는데 "권한이 없습니다" 오류가 뜬 경험이 있다면, 그 순간이 바로 인증과 인가가 다른 두 개의 문이라는 사실을 체감한 것이다. 첫 번째 문은 통과했지만 두 번째 문은 열리지 않았다.

정의

  • 인증(Authentication, AuthN): "당신이 누구인지" 확인하는 과정. 아이디·비밀번호, OTP, 생체 인식, OAuth 토큰 등을 통해 신원을 검증한다.
  • 인가(Authorization, AuthZ): "당신이 무엇을 할 수 있는지" 결정하는 과정. 인증된 사용자가 특정 자원이나 기능에 접근할 권한이 있는지 검사한다.

두 개념은 항상 이 순서로 동작한다. 인증 → 인가. 인가를 수행하려면 먼저 인증이 완료되어야 한다. 반대 순서는 존재하지 않는다.

두 개념의 동작 원리

인증: 신원 확인

사용자가 이메일과 비밀번호를 입력하면 서버는 저장된 해시값과 대조한다. 일치하면 세션(session)이나 jwt 토큰을 발급한다. 이후 요청마다 이 토큰이 "나는 인증된 사용자다"라는 증명으로 사용된다.

현대 AI 서비스의 인증 흐름 예시:

사용자 → Google 로그인 (OAuth 2.0 인증)
  → Google이 Authorization Code 발급
  → 서버가 Code를 Access Token으로 교환
  → Access Token을 JWT로 변환하여 클라이언트에 전달
  → 이후 요청마다 Authorization: Bearer <token> 헤더 포함

인가: 권한 확인

인증된 사용자라도 모든 자원에 접근할 수 없다. 인가는 역할(Role) 또는 정책(Policy) 기반으로 접근 허용 여부를 결정한다.

| 역할 | 허용 작업 | |---|---| | 일반 사용자 | 자신의 데이터 읽기·수정 | | 편집자 | 타인 게시글 수정 | | 관리자 | 사용자 계정 삭제, 설정 변경 | | API 클라이언트 | 지정된 엔드포인트만 호출 |

RBAC(Role-Based Access Control)은 역할에 권한을 부여하는 가장 보편적인 인가 모델이다. ABAC(Attribute-Based Access Control)은 사용자 속성·자원 속성·환경 조건을 복합적으로 평가한다. AI 서비스의 멀티테넌시 환경(한 서비스에 여러 조직이 공존)에서는 ABAC가 더 세밀한 제어를 제공한다.

AD

AI 서비스에서 두 개념이 중요한 이유

AI 서비스는 고가의 GPU 연산, 민감한 훈련 데이터, 조직 경계를 넘는 API 접근이 결합된 환경이다. 인증과 인가가 잘못 구현되면 심각한 결과를 낳는다.

인증 취약점 사례: 토큰 만료 처리가 없는 경우, 탈취된 JWT로 무제한 API 호출이 가능하다. Claude·GPT 같은 유료 API에서는 요금 폭탄으로 이어진다.

인가 취약점 사례: IDOR(Insecure Direct Object Reference) — URL의 userId=123userId=124로 바꿔 타인의 데이터에 접근하는 공격. 인증은 통과했지만 인가 검사가 없는 경우 발생한다.

# 잘못된 인가 — 인증만 확인, 자원 소유자 검증 없음
@app.route('/api/documents/<doc_id>')
@login_required
def get_document(doc_id):
    return db.query(f"SELECT * FROM docs WHERE id={doc_id}")

# 올바른 인가 — 소유자 검증 포함
@app.route('/api/documents/<doc_id>')
@login_required
def get_document(doc_id):
    doc = db.query(f"SELECT * FROM docs WHERE id={doc_id} AND owner_id={current_user.id}")
    if not doc:
        abort(403)  # Forbidden
    return doc

관련 용어

  • oauth — 제3자 인증을 위임하는 인증 프로토콜 (Google 로그인, GitHub 로그인 등)
  • jwt — 인증 상태를 담는 JSON 기반 토큰 형식
  • session — 서버 측 인증 상태 관리 방식
  • https — 인증·인가 데이터를 암호화하여 전송하는 보안 프로토콜
  • api — 인가 정책이 적용되는 외부 서비스 인터페이스
AD