본문 바로가기

IT공부

OAuth2 와 OIDC

반응형

OAuth2란?

OAuth2는 리소스 소유자가 제3자 애플리케이션에게 자신을 대신하여 리소스에 접근할 수 있는 권한을 부여하는 프로토콜. 이는 주로 권한 부여에 중점을 두고 있으며, 인증(Authentication)보다는 권한 부여(Authorization)에 더 관련이 깊다.

주요 구성 요소:

  • 리소스 소유자(Resource Owner): 리소스에 접근할 수 있는 사용자.
  • 클라이언트(Client): 리소스 소유자를 대신하여 리소스에 접근하려는 애플리케이션.
  • 권한 부여 서버(Authorization Server): 권한 부여 요청을 처리하고, 액세스 토큰을 발급하는 서버.
  • 리소스 서버(Resource Server): 보호된 리소스를 호스팅하는 서버.

OIDC란?

OIDC(OpenID Connect)는 OAuth2를 기반으로 한 인증(Authentication) 프로토콜로, 사용자의 신원을 인증하는 데 초점을 맞추고 있다. OIDC는 OAuth2의 권한 부여 기능을 확장하여 사용자 인증 및 세션 관리 기능을 제공한다.

주요 구성 요소:

  • 사용자(User): 인증을 받는 주체.
  • 클라이언트(Client): 인증 요청을 보내는 애플리케이션.
  • 권한 부여 서버(Authorization Server): 인증 요청을 처리하고, ID 토큰을 발급하는 서버.
  • ID 토큰(ID Token): 사용자의 신원 정보를 포함한 JWT(JSON Web Token).

주요 차이점

특성 OAuth2 OIDC
목적 권한 부여(Authorization) 인증(Authentication) 및 권한 부여(Authorization)
토큰 액세스 토큰(Access Token) 액세스 토큰(Access Token) 및 ID 토큰(ID Token)
사용자 정보 사용자 정보가 포함되지 않음 ID 토큰에 사용자 정보 포함
플로우 권한 코드, 암시적, 클라이언트 자격 증명 등 권한 코드, 암시적, 하이브리드 플로우
사용 사례 리소스 접근 권한 부여 사용자 인증 및 세션 관리

OAuth는 인증에 성공한 유저에게 리소스에 대한 접근 권한인 access token 만을 제공한다. 그러나 OIDC 인증을 통해 발급된 ID Token 에는 유저의 프로필, 이메일 등 민감하지 않은 정보들이 포함될 수 있다.

OIDC 인증의 경우 그렇기 때문에 access token 을 가지고 리소스 서버에 또 요청을 하지 않아도 되기 때문에 요청 수를 절반 이하로 줄일 수 있다.

OIDC 에 대해서 잘 설명된 글이 있어 첨부

https://nordicapis.com/what-is-openid-connect/

반응형

'IT공부' 카테고리의 다른 글

Singletone pattern  (0) 2022.06.26
DAO vs. Repository  (0) 2022.05.29
Optimistic Locking vs. Pessimistic Locking  (0) 2022.03.30
Git Rebase 이해하기  (0) 2022.03.26
JWT 인증과 세션인증  (0) 2021.09.12