반응형
웹 서비스 개발에서 인증(Authentication) 과 권한 위임(Authorization) 은 핵심 요소다.
이때 자주 등장하는 기술이 바로 OpenID와 OAuth다. 이름은 비슷하지만, 목적과 쓰임은 확연히 다르다.
🔐 OpenID: 사용자의 신원을 인증한다
- 정의: 사용자가 누구인지 확인하는 프로토콜
- 사례: 구글·네이버·카카오 계정으로 다른 서비스에 로그인
동작 흐름
- 사용자가 "구글 계정으로 로그인"을 선택한다.
- OpenID 제공자가 로그인 과정을 처리한다.
- 웹사이트는 인증 결과를 받아 사용자의 신원을 확인한다.

👉 핵심: OpenID는 인증(Authentication)에 집중한다.
OAuth: 자원 접근 권한을 위임한다
- 정의: 사용자가 직접 비밀번호를 제공하지 않고도 제3자 앱이 일정 범위 내에서 자원에 접근하도록 허용하는 프로토콜
- 사례: 어떤 앱이 내 구글 캘린더나 드라이브 파일에 접근하도록 승인
- 동작 흐름:
- 제3자 앱이 사용자에게 권한을 요청한다.
- 사용자가 권한을 승인한다.
- OAuth 서버가 Access Token 발급한다.
- 앱은 토큰을 사용해 자원 서버에 접근한다.

👉 핵심: OAuth는 권한 위임(Authorization)에 초점을 둔다.
OpenID vs OAuth: 한눈에 비교
| 구분 | OpenID | OAuth |
|---|---|---|
| 목적 | 인증(Authentication) | 권한 위임(Authorization) |
| 질문 | "누구인가?" | "이 앱이 접근해도 되나?" |
| 토큰 | 없음 | Access Token 사용 |
| 대표 사례 | 구글/네이버 로그인 | 구글 API, 트위터 API 사용 |
OpenID Connect (OIDC): 둘 다 하고 싶을 때
현대 서비스 대부분은 OpenID + OAuth를 합친 OpenID Connect (OIDC)를 사용한다.
- 로그인(인증) + API 접근 권한(권한 위임)
- 구글/카카오/네이버 로그인은 사실상 전부 OIDC 기반
마무리
- OpenID: 사용자의 신원을 인증하는 기술
- OAuth: 자원 접근 권한을 위임하는 기술
- OIDC: 인증과 권한 위임을 통합한 현대적 표준
반응형
'Develope > 기타' 카테고리의 다른 글
| i18n 다국어를 적용하며 VSCode i18n-ally로 관리 쉽게 하기 (1) | 2025.08.11 |
|---|---|
| peerDependencies와 peerDependenciesMeta 가이드 (0) | 2025.02.24 |
| TypeScript 브랜딩(Branding) 개념과 활용법 (0) | 2025.02.11 |
| Chrome 브라우저 언어 설정 변경 및 navigator.language (0) | 2025.01.06 |
| 더 나은 코드 품질을 위한 SOLID 원칙 (0) | 2024.08.30 |