OIDC란?

오찬주·2025년 2월 16일

개발 log

목록 보기
14/23

소셜 로그인을 하는데, 이번 프로젝트에서는 OIDC 방식으로 구현을 하기로 했다.

OIDC ?

OpenID Connect를 의미한다. OAuth 2.0을 기반으로 한 인증 프로토콜로, 사용자의 신원 (identity)을 확인하는데 사용된다.

그렇다면 OAuth 2.0와 어떤 점이 다른걸까?

OAuth 2.0는 인가(authorization)를 다루고, OIDC는 인증(authentication)을 다룬다.

즉, OAuth 2.0는 "여기서 이 데이터를 사용할 수 있게 해줄까?"라면, OIDC는 "사용자가 실제로 누구이고, 어떤 정보를 가지고 있는지 알려줄게!"다.

ID Token

OIDC는 ID Token을 가진다. 사용자의 정보를 담고 있는 JWT 형식의 토큰으로, 사용자의 id, 이메일, 이름 등 프로필 정보를 포함한다.

이 ID Token으로 사용자의 신원을 확인할 수 있는 것이다.

OIDC 로그인 과정

  1. 사용자가 클라이언트에서 로그인 버튼을 클릭한다.
  2. 클라이언트가 OIDC 프로바이더에 인증을 요청한다.
  3. 사용자가 OIDC 프로바이더에 로그인 인증 후 Authorization Code를 받는다.
  4. 클라이언트가 Authorization Code를 OIDC 프로바이더에 보내고 Access Token 과 ID Token을 요청한다.
  5. OIDC 프로바이터가 Access Token과 Id Token을 반환해준다.
  6. 클라이언트가 ID Token을 해석해 사용자의 신원을 확인한 후 정상적으로 로그인 된다.

이게 기본 흐름이지만, 여러가지 방식이 있다. 우리 서비스에서는

Authorization Code Flow를 사용한다.

클라이언트가 Authorization Code를 받아서, 서버에서 AccessToken과 ID Token과 교환하는 방식이다.

이 방식은 토큰이 직접 브라우저에 노출되지 않아 보안이 강하다.

profile
프론트엔드 엔지니어를 희망합니다 :-)

0개의 댓글