OAuth란? AI 앱이 계정 권한을 위임받는 방식
TL;DR
OAuth는 사용자가 비밀번호를 직접 넘기지 않고도 앱이나 AI 도구에 제한된 접근 권한을 위임하게 해 주는 표준 권한 부여 흐름입니다. 챗GPT, 클로드, 제미나이 같은 AI 제품이 Gmail, Google Drive, Calendar, Slack, Notion 같은 외부 서비스와 연결될 때 "이 앱이 무엇을 읽거나 실행해도 되는가"를 정하는 데 자주 등장합니다. 초보자는 OAuth를 "내 계정 전체가 아니라 필요한 권한만 빌려주는 승인 절차"로 이해하면 됩니다.
핵심 3줄 요약
- 핵심 1
OAuth는 앱에 비밀번호를 맡기지 않고, 제한된 범위의 접근 권한을 위임하는 방식입니다. - 핵심 2
AI 커넥터, 플러그인, 에이전트, MCP 서버가 외부 도구와 연결될 때 OAuth와 access token, scope 같은 말이 자주 나옵니다. - 핵심 3
OAuth 로그인을 했다고 모든 데이터 접근이 안전하다는 뜻은 아니므로 권한 범위, 연결 앱, 만료, 철회 방법을 함께 확인해야 합니다.
이 글에서 다룰 내용
- OAuth의 한 문장 정의
- AI 제품과 자동화에서 중요한 이유
- 쉬운 예시로 보는 권한 위임 흐름
- API 키, 액세스 토큰, OpenID Connect, 서비스 계정과의 차이
- 실전에서 OAuth 권한을 확인하는 방법
- 초보자가 주의해야 할 점과 FAQ
- 공식 출처와 참고 자료
한 문장 정의: OAuth는 무엇인가요?
OAuth는 사용자가 한 서비스의 비밀번호를 다른 앱에 직접 알려 주지 않고, 특정 범위의 접근 권한을 토큰 형태로 위임하게 해 주는 권한 부여 프레임워크입니다.
IETF RFC 6749는 OAuth 2.0을 제3자 애플리케이션이 리소스 소유자를 대신해 HTTP 서비스에 제한된 접근을 얻도록 하는 권한 부여 프레임워크로 설명합니다. Google Identity 문서도 OAuth 2.0을 Google API 접근용 access token을 얻는 흐름으로 안내합니다. AI 도구 관점에서는 "AI 앱이 내 Google Drive 파일 일부를 읽어도 되는가", "캘린더 일정을 조회해도 되는가", "외부 도구를 호출해도 되는가"를 승인하는 절차로 자주 만납니다.
한 줄 정리: OAuth는 "내 비밀번호를 넘기는 대신, 필요한 권한만 제한적으로 빌려주는 승인 방식"입니다.
왜 AI 사용자에게 OAuth가 중요한가요?
AI 제품은 점점 혼자 답만 쓰는 도구가 아니라, 다른 앱과 연결돼 일을 처리하는 도구가 되고 있습니다. 메일을 요약하고, 캘린더 일정을 확인하고, 드라이브 파일을 읽고, 디자인 도구에 접근하고, 업무 앱의 데이터를 가져오는 흐름이 늘고 있습니다.
이때 중요한 질문은 "AI가 무엇을 할 수 있는가"입니다. AI 모델이 똑똑한지보다, 연결된 앱에서 어떤 권한을 받았는지가 더 큰 보안 문제가 될 수 있습니다.
첫째, OAuth는 연결 권한의 범위를 정합니다. 예를 들어 읽기 권한만 줄지, 쓰기 권한까지 줄지, 특정 파일만 볼지, 전체 계정 자료를 볼지 같은 차이가 생깁니다.
둘째, OAuth는 비밀번호 공유를 줄입니다. 예전 방식처럼 앱에 내 계정 비밀번호를 직접 입력해 맡기는 구조는 위험합니다. OAuth 흐름에서는 사용자가 원 서비스의 승인 화면에서 권한을 허용하고, 앱은 access token을 받아 제한된 범위로 요청합니다.
셋째, OAuth는 철회와 감사의 기준이 됩니다. 연결된 앱 목록에서 권한을 취소할 수 있고, 조직 계정에서는 관리자가 앱 승인 정책을 둘 수 있습니다.
핵심 인사이트: AI 앱 연결에서 OAuth는 편의 기능이 아니라 "AI에게 어떤 문과 서랍을 열어 줄지 정하는 권한 설계"입니다.
쉬운 예시로 OAuth 이해하기
OAuth는 호텔 객실 키와 비슷합니다.
호텔 프런트에 내 신분을 확인하면, 호텔은 내게 객실 문만 여는 카드키를 줍니다. 그 카드키로 호텔 금고, 직원 사무실, 다른 사람 방까지 열 수는 없습니다. 또 체크아웃하면 카드키는 더 이상 쓸 수 없습니다.
OAuth도 비슷합니다. 사용자가 Google 계정으로 로그인해 "이 AI 앱이 내 Drive 파일을 읽도록 허용"한다고 선택하면, 앱은 Google 비밀번호를 받는 것이 아니라 제한된 권한을 가진 토큰을 받습니다. 그 토큰은 정해진 API와 범위 안에서만 쓰여야 합니다.
예를 들어 감자나라ai님이 AI 회의 도우미를 Google Calendar와 연결한다고 해보겠습니다.
- AI 앱이 Google 계정 연결을 요청합니다.
- Google 승인 화면이 어떤 권한을 요구하는지 보여 줍니다.
- 사용자가 허용하면 앱은 access token을 받습니다.
- 앱은 그 토큰으로 허용된 범위 안에서 캘린더를 조회합니다.
- 나중에 사용자는 Google 계정의 연결 앱 설정에서 권한을 취소할 수 있습니다.
예시 정리: OAuth는 "AI 앱에 내 계정 비밀번호를 알려 주는 일"이 아니라 "정해진 권한이 붙은 임시 출입증을 발급하는 일"에 가깝습니다.
헷갈리는 용어와 차이
OAuth와 API 키는 다릅니다
API 키는 보통 앱이나 프로젝트가 API 요청을 보낼 때 쓰는 식별용 비밀 값입니다. 사용자 동의 화면을 거쳐 "이 사용자의 파일 일부를 읽어도 된다"처럼 권한을 위임받는 흐름은 아닙니다.
OAuth는 사용자의 동의와 권한 범위가 핵심입니다. 그래서 여러 사용자 계정의 파일, 메일, 캘린더, 업무 앱 데이터를 연결하는 AI 서비스에서는 API 키보다 OAuth 흐름이 더 자주 필요합니다.
OAuth와 액세스 토큰은 다릅니다
OAuth는 권한을 위임받는 전체 절차입니다. 액세스 토큰은 그 절차를 통해 발급되어 API 요청에 쓰이는 값입니다.
초보자는 OAuth를 "승인 절차", access token을 "승인 뒤 앱이 받는 임시 출입증"으로 구분하면 쉽습니다. 토큰은 만료될 수 있고, 권한 범위가 제한될 수 있으며, 로그나 URL에 노출되면 위험합니다.
OAuth와 OpenID Connect는 다릅니다
OAuth는 주로 "권한 부여"를 다룹니다. 즉 앱이 어떤 리소스에 접근해도 되는지를 정합니다. OpenID Connect는 OAuth 2.0 위에 올라간 신원 확인 계층으로, 사용자가 누구인지 로그인 정보를 확인하는 데 쓰입니다.
쉽게 말해 OAuth는 "이 앱이 내 파일을 읽어도 되는가"에 가깝고, OpenID Connect는 "이 사용자가 누구인가"에 가깝습니다. 실제 서비스에서는 둘이 함께 쓰이는 경우가 많아 로그인 버튼 하나로 보이기도 합니다.
OAuth와 서비스 계정은 다릅니다
서비스 계정은 사람이 아니라 서버, 앱, 자동화 작업이 쓰는 업무용 계정입니다. OAuth는 사용자가 특정 앱에 권한을 위임하는 흐름입니다.
개인 사용자의 Google Drive 파일을 AI 앱이 읽어야 한다면 OAuth가 자연스럽고, 서버가 매일 정해진 데이터셋을 읽어 보고서를 만들면 서비스 계정이나 관리형 ID가 더 적합할 수 있습니다.
OAuth와 SSO는 다릅니다
SSO는 Single Sign-On, 즉 한 번 로그인으로 여러 서비스에 접근하는 조직 로그인 방식입니다. OAuth나 OpenID Connect가 SSO 구성 요소로 쓰일 수는 있지만, SSO 자체가 OAuth와 같은 뜻은 아닙니다.
비교 정리: OAuth는 권한 위임 흐름, access token은 그 결과로 받은 출입증, OpenID Connect는 로그인 신원 확인, API 키는 앱 식별용 비밀 값, 서비스 계정은 자동화용 계정입니다.
AI 실전에서 OAuth는 어디에 쓰이나요?
첫째, AI 앱 커넥터에 쓰입니다. AI 도구가 Gmail, Drive, Calendar, Slack, GitHub, Notion 같은 외부 서비스를 연결할 때 사용자는 승인 화면에서 권한 범위를 확인하고 허용합니다.
둘째, 에이전트와 도구 호출에 쓰입니다. AI 에이전트가 사용자를 대신해 파일을 찾거나 일정 후보를 비교하거나 문서를 생성하려면 외부 API 접근 권한이 필요합니다. 공식 MCP Authorization 명세도 HTTP 기반 MCP에서 OAuth 기반 인증과 access token 사용을 다룹니다.
셋째, 조직용 앱 승인에 쓰입니다. 회사 계정에서는 관리자가 어떤 앱의 OAuth 접근을 허용할지 제한할 수 있습니다. 사용자는 편해서 연결했지만, 조직 정책상 민감한 범위의 권한은 막혀 있을 수 있습니다.
넷째, 권한 철회와 사고 대응에 쓰입니다. 더 이상 쓰지 않는 AI 앱, 테스트용 플러그인, 오래된 자동화가 계정에 연결돼 있으면 나중에 위험이 됩니다. 정기적으로 연결 앱 목록을 확인하고 필요 없는 권한을 취소해야 합니다.
실전 팁: AI 앱을 연결할 때는 "로그인 성공"만 보지 말고, 요청하는 권한 범위와 연결 앱 철회 위치를 같이 확인하세요.
초보자가 주의할 점
첫째, 승인 화면을 빠르게 넘기지 마세요. OAuth 화면에는 앱이 요청하는 권한 범위가 표시됩니다. "파일 보기", "파일 수정", "메일 읽기", "캘린더 관리"는 위험 수준이 다릅니다.
둘째, 읽기와 쓰기 권한을 구분하세요. AI가 자료를 참고하기만 하면 읽기 권한이면 충분할 수 있습니다. 파일 삭제, 메일 전송, 일정 생성 같은 쓰기 권한은 더 신중해야 합니다.
셋째, 토큰을 로그나 URL에 남기지 마세요. MCP Authorization 명세도 access token을 요청마다 Authorization 헤더에 포함해야 하며 URI 쿼리 문자열에 넣으면 안 된다고 안내합니다. 토큰은 비밀번호처럼 다뤄야 합니다.
넷째, 연결 앱을 주기적으로 정리하세요. 한 번 테스트한 AI 도구가 계속 계정 권한을 갖고 있을 수 있습니다. 쓰지 않는 앱은 연결을 해제하는 편이 안전합니다.
다섯째, OAuth가 모든 보안을 해결한다고 생각하지 마세요. OAuth는 비밀번호 공유를 줄이고 권한 범위를 관리하는 데 도움을 주지만, 악성 앱을 허용하거나 과도한 권한을 승인하면 여전히 위험합니다.
주의: OAuth 승인 화면에서 "허용"을 누르는 것은 단순 로그인 버튼이 아니라, 특정 앱에 내 데이터 접근 권한을 주는 보안 결정일 수 있습니다.
AI 앱 연결 전 체크리스트
- 앱 이름과 제공자가 신뢰할 만한지 확인했는가?
- 요청 권한이 작업 목적에 비해 과하지 않은가?
- 읽기 권한과 쓰기 권한을 구분했는가?
- 연결 후 권한을 어디서 철회할 수 있는지 알고 있는가?
- 조직 계정이라면 회사의 앱 승인 정책에 맞는가?
- 민감한 파일, 메일, 고객 정보가 연결 범위에 포함되지 않는가?
- 테스트가 끝난 앱을 연결 해제할 계획이 있는가?
FAQ
Q1. OAuth는 로그인인가요?
반만 맞습니다. 사용자는 로그인 화면을 볼 수 있지만, OAuth의 핵심은 "내가 누구인지"보다 "이 앱이 무엇에 접근해도 되는지"를 허용하는 권한 부여입니다. 로그인 신원 확인은 OpenID Connect가 함께 맡는 경우가 많습니다.
Q2. OAuth를 쓰면 비밀번호를 앱에 알려 주지 않아도 되나요?
네. OAuth의 큰 장점은 제3자 앱에 원 서비스 비밀번호를 직접 넘기지 않는다는 점입니다. 대신 앱은 제한된 범위의 토큰을 받아 API를 호출합니다.
Q3. AI 앱이 OAuth로 연결되면 내 모든 파일을 볼 수 있나요?
항상 그렇지는 않습니다. 앱이 요청한 scope와 사용자가 허용한 범위에 따라 달라집니다. 다만 권한 범위가 넓으면 많은 데이터에 접근할 수 있으므로 승인 화면을 반드시 확인해야 합니다.
Q4. OAuth 권한은 나중에 취소할 수 있나요?
대부분의 주요 서비스는 계정 보안 또는 연결 앱 설정에서 앱 접근 권한을 취소할 수 있습니다. 더 이상 쓰지 않는 AI 앱은 연결 해제하는 편이 좋습니다.
Q5. OAuth와 API 키 중 무엇이 더 안전한가요?
상황에 따라 다릅니다. 사용자별 권한 위임이 필요하면 OAuth가 적합한 경우가 많고, 서버 간 단순 API 호출에는 API 키나 서비스 계정이 쓰일 수 있습니다. 중요한 것은 방식 이름보다 권한 범위, 보관 방법, 만료와 철회 절차입니다.
Q6. MCP에서도 OAuth가 쓰이나요?
네. 공식 MCP Authorization 명세는 HTTP 기반 MCP에서 OAuth 기반 인증 흐름과 access token 사용을 다룹니다. AI 에이전트가 외부 도구와 안전하게 연결되려면 이런 인증·권한 설계가 중요합니다.
출처
마무리
OAuth는 AI 제품을 외부 도구와 연결할 때 꼭 알아야 할 기본 보안 용어입니다. 한 문장으로 다시 정리하면, OAuth는 사용자가 비밀번호를 직접 넘기지 않고도 앱에 제한된 접근 권한을 위임하게 해 주는 권한 부여 흐름입니다.
오늘 하나만 기억하면 충분합니다. AI 앱에서 "Google 계정으로 연결", "Drive 접근 허용", "Calendar 권한 승인" 같은 화면이 나오면 단순 로그인으로 넘기지 마세요. 그 순간 감자나라ai님은 AI에게 어떤 자료와 행동 권한을 맡길지 결정하고 있는 것입니다.
