AI Agent의 OAuth Token 관리 - 2 or 3 Legged OAuth (2LO, 3LO)

2026. 6. 17. 16:37·AI Agent Security

Agent를 내 클라우드 리소스 접근을 허용하도록 OAuth token을 맡기자니 뭔가 깨름칙하다. 예전부터 어떤 프로그램에 내 OAuth Token을 embed하는 것은 아무 문제 없이 여겼지만 AI Agent는 자율성이 높아지면서 어떤 결과를 초래할지 몰라 쉽게 embedding 하기 어렵다. Token을 위임하냐 안하냐에 따라서 구조가 2LO/3LO (2,3 Legged Oauth)라 부르는데 Term에 대한 정의와 token을 어떻게 관리해야 하는지에 대한 가이드라인 동향을 알아본다.


1. leg = 참여 당사자

3LO와 2LO는 인증에 참여하는 당사자(party)의 수를 가리키는 관습적인 표현에 가깝다.

OAuth 흐름의 "leg"는 인증에 참여하는 주체(party) 하나를 의미한다. 다리 개수가 곧 참여 주체 수.

3LO에 등장하는 세 주체:

1. User       (Resource Owner) — 데이터의 실제 주인
2. Client     (Application)    — 데이터에 접근하려는 앱
3. Auth Server(+ Resource Server) — 토큰 발급 / 데이터 보관

 

2LO에서는 User가 빠지고 Client ↔ Auth Server 두 주체만 남는다. 사람이 끼어들지 않으니 동의 화면(consent screen)도 없다.

 

2. 3LO와 2LO 차이

구분 3LO (Three-Legged) 2LO (Two-Legged)
참여 주체 User + Client + Server Client + Server
누구의 권한 사용자를 대신해 접근 앱 자신의 권한으로 접근
동의 화면 있음 (브라우저 redirect) 없음
대표 Grant Authorization Code Client Credentials
사용 맥락 "내 구글 캘린더 읽게 허용" 서버↔서버 batch, 내부 API
토큰이 표현하는 것 위임된 사용자 권한 앱 고유 권한

 

핵심은 누구의 권한으로 접근하느냐다. 3LO는 사용자가 자신의 권한 일부를 앱에 위임(delegation)하는 구조고, 2LO는 앱이 처음부터 자기 권한으로 움직인다.

 

2LO 3LO 
2LO Sequence diagram

3LO Sequence diagram

 

3LO는 User가 흐름 안에 들어와 직접 "허용"을 누르고, 2LO는 Client가 자격증명만으로 토큰을 바로 받는다.

 

 

3. 왜 Agent에서는 3LO를 추천하는가

Agent(자율적으로 도구를 호출하는 LLM 시스템)가 외부 서비스에 접근할 때, 동의 화면도 없고 토큰 한 번 embed하면 끝이니까 편하지만 그럼에도 3LO를 권하는 이유는:

 

1) 권한 범위가 사용자 단위로 제한됨

3LO 토큰은 "이 사용자가 허용한 범위(scope)"만 담는다. Agent가 오작동하거나 탈취당해도 영향 범위가 해당 사용자의 위임 권한으로 묶인다. 반면 2LO 토큰은 앱 전체 권한을 들고 있어, 사고 시 폭발 반경(blast radius)이 훨씬 크다.

 

2) 감사(audit)와 추적이 명확

3LO는 "어떤 사용자를 대신해" 한 동작인지 토큰에 남는다. Agent가 무엇을, 누구 권한으로 했는지 로그에서 분리해 추적 가능. 2LO는 모든 동작이 "앱"이라는 하나의 주체로 뭉뚱그려져 누구를 위한 작업이었는지 흐려진다.

 

3) 명시적 동의(consent)가 사용자에게 통제권을 줌

3LO는 사용자가 직접 scope를 보고 허용/거부하고, 나중에 access를 취소(revoke)할 수 있다. Agent가 사용자 데이터를 다룰 때 이 통제권은 신뢰의 핵심. 2LO에는 사용자가 끼어들 지점 자체가 없다.

 

4) 최소 권한 원칙(least privilege)에 부합

Agent는 보통 특정 사용자의 특정 작업을 대행한다. 그렇다면 그 사용자의, 그 작업에 필요한 권한만 받는 게 맞다. 3LO의 위임 모델이 이 구조에 자연스럽게 들어맞는다.

 

 

AWS와 Google Cloud는 사용자별 외부 리소스에 접근하는 agentic workflow에는 3-legged OAuth를 사용하도록 안내한다.

  • AWS: https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/identity-terminology.html
  • Google Cloud: https://docs.cloud.google.com/iam/docs/auth-with-3lo

AWS는 personal access 용도에서 managed 3LO를 권장 인증 방식으로 명시하지만 2LO는 사용자 위임이 필요 없는 machine-to-machine 또는 application-level access에 적합하기 때문에 2LO 스타일 접근도 정당한 패턴으로 본다. IAM Role, 서비스 계정, machine-to-machine 인증처럼 사람이 끼어들지 않는 것이 정상인 맥락이 많기 때문.

- 서버 간 내부 API 호출
- 백그라운드 batch / cron job
- 인프라 자동화 (Agent가 사용자가 아닌 시스템 자원을 다룸)

 

즉, Agent가 특정 사용자를 대행한다면 3LO가, 시스템 자체로 동작한다면(사용자 데이터에 접근하지 않는 인프라 작업) 2LO가 맞는 선택. 둘 중 하나가 절대선이 아니라, Agent가 누구의 권한으로 움직이는가가 기준이 된다.

 

4. 정리

3LO = User + Client + Server   → 사용자 권한 위임, 동의 화면 O
2LO = Client + Server          → 앱 자신의 권한, 동의 화면 X

 

사용자 데이터를 다루는 Agent라면 권한 제한·감사·통제권 측면에서 3LO가 기본. 사람이 개입할 필요 없는 시스템 작업이라면 AWS처럼 2LO도 정당한 선택. 판단 기준은 항상 "이 토큰이 누구의 권한을 표현하는가"다. Enterprise 같은 multi-user 환경에서는 3LO, User가 나 하나거나 machine-to-machine 상황에는 2LO를 사용하는 것이 옳바른 방향이 아닐까 생각한다.

'AI Agent Security' 카테고리의 다른 글

Security Implementation in Enterprise Agent Platform  (0) 2026.06.11
Microsoft Multi-Agent Reference Architecture  (0) 2026.06.08
Agentic Network: Gateway 디자인 패턴  (0) 2026.06.07
LLM AI Agent Security toy project - #1 Indirect Prompt Injection  (2) 2026.06.04
OpenClaw의 등장과 Claw-like Agent의 보안 문제  (0) 2026.05.25
'AI Agent Security' 카테고리의 다른 글
  • Security Implementation in Enterprise Agent Platform
  • Microsoft Multi-Agent Reference Architecture
  • Agentic Network: Gateway 디자인 패턴
  • LLM AI Agent Security toy project - #1 Indirect Prompt Injection
ybjeon.today
ybjeon.today
#Security #AI #LLM #일상 #공부 #연구, 프로필: https://ybjeon.today
  • ybjeon.today
    ybjeon's today
    ybjeon.today
  • 전체
    오늘
    어제
  • 링크

    • Github
    • Homepage
  • 블로그 메뉴

    • 전체 보기
    • Security
    • LLM AI Agent
    • AI Agent Security
    • Development
    • Tech News
    • 방명록
  • 태그

    llm
    Development Lifecycle
    ToDo
    development
    NEWS
    review
    Security
    Agent
    ai
    coding
  • 인기 글

    • 분류 전체보기 (21) N
      • Dev (6) N
      • Security (2)
      • AI Agent Security (6) N
      • LLM AI Agent (6) N
      • Tech News (1)
  • 공지사항

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
ybjeon.today
AI Agent의 OAuth Token 관리 - 2 or 3 Legged OAuth (2LO, 3LO)
상단으로

티스토리툴바