OAuth
OAuth(오어스)는 내 비밀번호를 알려 주지 않고, 다른 앱이 내 계정의 일부 기능만 쓰도록 허락해 주는 표준 방식이에요. '구글로 로그인'·'카카오로 시작하기' 버튼 뒤에서 돌아가요.
목차 보기
OAuth(오어스, Open Authorization)는 내 비밀번호를 알려 주지 않고, 다른 앱이 내 계정의 일부 기능만 쓰도록 허락해 주는 표준 방식이에요. 호텔 발렛 주차 키와 비슷해요. 차 키 전부(비밀번호)를 주는 대신, 운전만 되고 트렁크는 안 열리는 키(권한이 정해진 토큰)를 건네요.
한눈에 보기
- "구글로 로그인"·"카카오로 시작하기" 버튼을 누르면 뒤에서 OAuth 가 돌아가요. 앱은 내 구글 비밀번호를 끝까지 몰라요.
- 앱은 비밀번호를 받지 않아요. 정해진 범위(이메일 보기 등)만 쓸 수 있는 토큰을 받아요. 언제든 취소할 수 있어요.
- 지금 쓰는 판은 2012년 표준이 된 OAuth 2.0 이에요. 로그인 확인까지 얹은 확장을 OpenID Connect 라고 해요.
누가 등장해요?
| 역할 | 발렛 비유 | 실제 예 |
|---|---|---|
| 사용자(자원 주인) | 차 주인 | 나 |
| 클라이언트(앱) | 발렛 기사 | 구글 로그인을 붙인 쇼핑몰 |
| 인가 서버 | 호텔 프런트(키 발급) | accounts.google.com |
| 자원 서버 | 주차장 | 구글의 내 프로필 정보 |
OAuth 는 어떻게 흘러가요?
가장 많이 쓰는 "인가 코드" 방식은 이렇게 움직여요.
- 쇼핑몰에서 "구글로 로그인"을 눌러요. 쇼핑몰은 나를 구글 로그인 화면으로 보내요.
- 나는 구글 화면에서 로그인하고, "이메일·프로필을 이 앱에 보여 줄까요?" 동의 화면에서 허용을 눌러요.
- 구글은 미리 등록된 쇼핑몰 주소(리다이렉트 URI)로 일회용 인가 코드를 돌려보내요.
- 쇼핑몰 서버는 이 코드를 구글에 내고 액세스 토큰으로 바꿔요. 이 교환은 서버끼리 해서 브라우저에 드러나지 않아요.
- 쇼핑몰은 토큰으로 내 이메일·이름을 받아 회원으로 만들고, 자기 세션을 열어 로그인을 끝내요.
실제 구글은 어떤 주소를 쓰는지 열어 봤어요
OAuth·OpenID 제공자는 "우리 주소는 이거예요"를 정해진 위치에 공개해요. 2026년 10월 29일 구글 것을 받아 봤어요.
$ curl -s https://accounts.google.com/.well-known/openid-configuration
{
"issuer": "https://accounts.google.com",
"authorization_endpoint": "https://accounts.google.com/o/oauth2/v2/auth",
"token_endpoint": "https://oauth2.googleapis.com/token",
"userinfo_endpoint": "https://openidconnect.googleapis.com/v1/userinfo",
"scopes_supported": ["openid", "email", "profile"],
"grant_types_supported": ["authorization_code", "refresh_token",
"urn:ietf:params:oauth:grant-type:device_code", "urn:ietf:params:oauth:grant-type:jwt-bearer"]
}
(필요한 항목만 골랐어요)
| 항목 | 흐름의 어느 단계 |
|---|---|
| authorization_endpoint | ② 사용자가 로그인·동의하는 화면 주소 |
| token_endpoint | ④ 인가 코드를 토큰으로 바꾸는 주소 |
| userinfo_endpoint | ⑤ 토큰으로 이메일·이름을 받는 주소 |
| scopes_supported | 달라고 할 수 있는 정보 범위(openid·email·profile) |
| grant_types_supported | 쓸 수 있는 흐름 종류. device_code 는 키보드 없는 기기용이에요 |
OAuth 와 OpenID Connect, 로그인과 권한은 뭐가 달라요?
OAuth 는 원래 "무엇을 해도 되는지(권한, 인가)"를 정하는 규칙이에요. "이 사람이 누구인지(로그인, 인증)"를 확인하는 부분은 그 위에 얹은 OpenID Connect(OIDC)가 맡아요. 위 구글 설정의 scopes 에 openid 가 있는 이유예요. 소셜 로그인은 보통 둘을 같이 써요.
동의 화면에서 꼭 볼 것
- 주소창을 봐요. 진짜 구글·카카오 주소인지 확인하세요. 비슷한 가짜 화면에 비밀번호를 넣으면 OAuth 도 소용없어요.
- 요청하는 권한을 봐요. 로그인만 하는 앱이 "메일 읽기·보내기", "드라이브 전체"를 달라고 하면 멈추세요.
- 나중에 정리해요. 구글 계정 설정의 "연결된 앱"에서 안 쓰는 앱의 권한을 지울 수 있어요.
내 앱에 붙이려면
| 순서 | 할 일 |
|---|---|
| 1 | 제공자(구글·카카오·네이버) 개발자 콘솔에 앱을 등록하고 클라이언트 ID·비밀값을 받아요 |
| 2 | 로그인 뒤 돌아올 주소(리다이렉트 URI)를 정확히 등록해요. 한 글자만 달라도 거절돼요 |
| 3 | 필요한 범위(scope)만 요청해요. 처음엔 openid·email·profile 이면 충분해요 |
| 4 | PKCE 와 state 값을 써서 코드 가로채기·위조 요청을 막아요 |
| 5 | 클라이언트 비밀값은 서버에만 두고, 브라우저·앱 코드·깃 저장소에 넣지 않아요 |
자주 하는 오해
- 소셜 로그인하면 앱이 내 비밀번호를 안다. 몰라요. 비밀번호는 구글 화면에만 넣어요.
- 토큰은 한 번 주면 영원하다. 액세스 토큰은 보통 짧게 살아요. 오래 쓰려면 리프레시 토큰으로 새로 받고, 사용자가 언제든 취소할 수 있어요.
- OAuth 는 로그인 기능이다. OAuth 는 권한을 넘기는 규칙이에요. 로그인은 OpenID Connect 가 더해져야 정확해요.
퓨쳐인프라에서는
Claude Code 같은 AI 도구를 퓨쳐인프라에 연결할 때도 같은 생각을 따라요. AI 가 연결을 요청하면 사람이 브라우저에서 퓨쳐인프라에 직접 로그인하고, 화면의 코드가 맞는지 확인한 뒤 허용을 눌러요. 10분 안에 허용해야 하고, 그러면 AI 도구는 비밀번호를 모른 채 그 조직용 열쇠만 받아요. 키보드 없는 기기에서 쓰는 OAuth 기기 인증 흐름과 같은 모양이에요.
로그인 기능이 있는 앱을 만들었다면 앱 호스팅에 올리면 HTTPS 주소가 붙어서 리다이렉트 URI 로 바로 쓸 수 있어요. 자세한 연결 방법은 MCP 연동 문서에 있어요.
자주 묻는 질문
OAuth 는 어떻게 읽어요?
보통 '오어스' 또는 '오오스'라고 읽어요. Open Authorization 의 줄임말이에요.
OAuth 1.0 과 2.0 은 뭐가 달라요?
2.0 은 2012년에 나온 새 판이에요. 웹·모바일·기기용 흐름을 나눠 쓰기 쉽게 만들었고, 지금은 대부분 2.0 을 써요.
액세스 토큰이 새면 어떻게 돼요?
토큰에 허락된 범위 안에서 남이 내 정보를 쓸 수 있어요. 제공자의 '연결된 앱'에서 바로 권한을 끊으세요.
소셜 로그인은 안전한가요?
비밀번호를 여러 사이트에 뿌리지 않아도 돼서 안전해지는 면이 커요. 다만 구글·카카오 계정 자체에 2단계 인증을 켜 두는 게 중요해요.
관련 용어
2단계 인증 · 세션 · 해시 · MCP · MCP 연동
이 글의 숫자 출처
- 구글 설정 accounts.google.com/.well-known/openid-configuration 을 curl 로 받음(2026-10-29 22:54 KST)
- 표준 RFC 6749 OAuth 2.0 · RFC 8628 기기 인증 흐름 · OpenID Connect Core 1.0
- 퓨쳐인프라 AI 연결 절차 futureinfra.ai/llms.txt (2026-10-29 확인)
- 글쓴이는 서순명(솔리드그루 이사)이에요. 솔리드그루는 국내 IDC 에서 클라우드 서버·앱 호스팅·AI API 서비스 퓨쳐인프라를 운영해요. 2026-10-29에 썼어요.
- 운영사는 솔리드그루예요. 사업자등록번호 875-44-00335 · 서울특별시 구로구 디지털로29길 38, 7층 707호 · 전화 02-6933-6229 · support@futureinfra.ai · 고객센터 · 이용약관
- 한계도 있어요. 구글 설정 문서는 2026-10-29 에 받은 값이에요. 제공자마다 주소·지원 항목이 다르니 쓰기 전에 해당 개발자 문서를 확인하세요.
- 이해관계를 밝혀 둬요. 퓨쳐인프라 AI 연결 방식을 예로 들었어요(자사 서비스).
연관 서비스
많이 본 글
-
블로그
도메인 구매 사이트 추천 2026 — 가비아·후이즈 등 15곳 갱신·이전비 비교
같은 .co.kr 도 등록업체 15곳의 3년 값이 3.8만~8.6만 원이에요(11월 3일 KRNIC 표). 갱신가·이전비·해외 업체 조건, 11월 인상 뒤 가비아 실제 화면, 구매처 확인과 기관이전까지 정리했어요. -
블로그
무료 도메인 사이트 추천 2026 — 내도메인.한국·DuckDNS 발급 방법
내도메인.한국·DuckDNS 처럼 계속 무료인 주소 10곳을 11월 3일 서울에서 다시 재고(6곳 6ms 안), 발급 순서·구글·네이버 무료 주소·'첫해 무료'의 2년째 값까지 정리했어요. -
블로그
클로드 MCP·Gemini MCP 연동 방법 2026, MCP 서버 9곳
클로드 MCP(데스크톱·Claude Code)와 Gemini MCP 연동(Gemini CLI·안티그래비티·Gemini 앱·API) 등 9곳의 MCP 서버 연결법을 공식 문서로 정리했어요. 원격 57ms 실측과 오류 해결까지. -
블로그
Gemini 3.9 Flash 나왔나요? 지금 최신은 3.8 Flash — 3.7과 직접 잰 속도·비용
2026년 9월 22일 기준 Gemini 3.9 Flash는 미출시입니다. 최신 3.8 Flash의 사양·가격(2027년 2배 인상)과, 3.7 Flash와 같은 과제로 직접 잰 속도·비용·JSON 형식 준수 차이를 정리했습니다. -
블로그
서버비 한 달 얼마? 방문자 10만 명도 월 3만 2천 원(2026 계산)
월 방문자 1천·1만 명은 1만 4천 원, 10만 명은 3만 2천 원이에요. 요금제별 트래픽 기본 제공량까지 넣어 다시 계산하고 AWS·카페24·가비아·네이버클라우드 값과 숨은 비용을 비교했어요(2026-10-26 확인).
댓글
로그인하면 댓글을 남길 수 있습니다.