시스템 지식/보안

[OpenID Connect] OAuth로는 부족했던 인증을 해결하다.

Dachaes 2025. 4. 13. 02:20

OpenID Connect (OIDC) 

OAuth는 인가(Authorization)를 위한 프로토콜이지, 사용자의 신원 확인(로그인) 기능은 없었습니다. 그 공백을 채우기 위해 등장한 것이 바로 OpenID Connect (OIDC)입니다.
이 글에서는 OIDC가 어떤 배경에서 나왔고, OAuth와 어떤 관계인지, 실제로 어떤 정보를 제공하는지 정리합니다.

 


1.  OpenID Connect란?

OpenID Connect (OIDC)는 OAuth 2.0 위에 구축된 인증(Authentication) 프로토콜입니다.

  • OIDC는 사용자의 신원을 확인하고, 그 정보를 표준화된 방식으로 전달해주는 역할을 합니다.
  • OAuth는 접근 권한을 다루는 반면, OIDC는 누가 로그인했는지를 알려줍니다.

 


2.  OIDC가 OAuth에 더한 것

항목 OAuth 2.0 OpenID Connect
목적 권한 부여 (인가) 인증 (로그인)
토큰 Access Token Access Token + ID Token
사용자 정보 X ID Token + UserInfo
로그인 기능 ❌ 없음 ✅ 있음
  • OIDC가 추가한 핵심 요소는 ID Token입니다.

ID Token이란?

사용자 정보가 들어 있는 JWT(JSON Web Token) 입니다.

예를 들어, 다음과 같은 정보를 포함할 수 있어요.

{
  "iss": "https://accounts.google.com",
  "sub": "1122334455",
  "name": "홍길동",
  "email": "gildong@example.com",
  "picture": "https://photo.com/avatar.jpg",
  "iat": 1712900000,
  "exp": 1712903600
}
  • sub : 사용자 고유 ID
  • iss : 발급자(Provider)
  • iat, exp : 발급 시간, 만료 시간

 


3.  OIDC 흐름 요약

sequenceDiagram
  participant User
  participant Client(App)
  participant AuthServer(OIDC Provider)

  User->>Client: 로그인 시도
  Client->>AuthServer: 인증 요청
  AuthServer->>User: 로그인 화면
  User->>AuthServer: 계정 정보 입력
  AuthServer->>Client: Access Token + ID Token 반환
  Client->>Client: ID Token으로 사용자 인증

 

 


4.  왜 OAuth만으로는 부족했을까?

  • OAuth는 "이 앱이 이 데이터에 접근해도 될까?"만 다룹니다.
  • 하지만 "이 사용자가 누구인지", "로그인했는지"는 알려주지 않죠.
  • 그래서 등장한 것이 OIDC!
  • OAuth의 인가 메커니즘은 유지하면서, 거기에 로그인 기능까지 붙여준 것입니다.

 


 

5.  대표적인 OIDC Provider들

  • Google
  • Microsoft (Azure AD)
  • Apple ID
  • Auth0
  • Okta

 


6.  마무리

  • OAuth 2.0 : 권한 위임 (인가)
  • OIDC : 신원 확인 (인증)

OIDC는 OAuth를 확장해서 로그인까지 가능하게 만든 표준 인증 프로토콜입니다. 따라서, 우리가 흔히 말하는 “구글로 로그인하기”, “깃허브로 로그인하기” 실제로는 OAuth + OIDC 조합인 경우가 많습니다.

함께 보면 좋은 자료

블로그 글 :

 

[OAuth] 로그인 없이 로그인하기

OAuth (Open Authorization) 현대 웹서비스에서 흔히 볼 수 있는 Google로 로그인, Kakao로 시작하기 같은 기능은 어떻게 작동할까요? 바로 이럴 때 사용하는 기술이 OAuth(Open Authorization)입니다. 이 글에서는

dachaes-devlogs.tistory.com

 

[OAuth] 로그인 기술이 아니다? OAuth와 인증의 관계 정리

OAuth (Open Authorization) “구글 로그인은 OAuth 기술로 구현되니까, OAuth는 로그인 인증 프로토콜이다?” 많은 개발자들이 이렇게 오해합니다.하지만 진실은 조금 다릅니다. OAuth는 로그인(Authenticatio

dachaes-devlogs.tistory.com