본문 바로가기
Develop/etc

OAuth vs OpenID

by 연로그 2022. 8. 31.
반응형

예제로 자주 등장하는 `줍줍`은 현재 진행되고 있는 프로젝트 명으로 슬랙 메시지를 백업해주는 서비스입니다.

이 글을 읽기 전에 인증과 인가의 차이를 알고 있다면 훨씬 이해하기 편합니다.

 

  • 인증; authentication: 사용자의 신원을 확인
  • 인가; authorization: (신원이 확인된 사용자에게) 자원에 접근할 수 있는 권한 부여

 


🧾 OAuth 🧾

 

  • 인가 / authorization

  • 서버 자원 소유자가 클라이언트에게 서버 자원에 대한 액세스 토큰 제공
    ex: Slack이 줍줍에게 access token을 발급

  • 해당 액세스 토큰을 통해 리소스 서버에 액세스 가능
    ex: access token을 통해 줍줍이 Slack에게 사용자 정보 조회 요청

 

 

✅ OAuth 1.0 vs OAuth 2.0

 OAuth 2.0은 기존의 OAuth 1.0와 호환되지 않는 새로운 프로토콜이다. 기존의 OAuth 1.0은 데스크톱이나 휴대폰 애플리케이션에서 사용자가 원하는 서비스로 브라우저를 연 뒤 서비스를 인증하고, 서비스에서 애플리케이션으로 토큰을 복사하여 사용하는 방식이다. 브라우저를 왔다갔다하는 과정이 필수적이었어서 사용자 경험 측면에서 나쁘다는 비판을 받았다. OAuth 2.0이 나타나며 이러한 인증 절차가 간소화 되었으며 몇가지 용어가 변경되었다.

 

OAuth 1 / OAuth 2 동작 흐름

 

  OAuth 1.0 OAuth 2.0
암호화 과정 필요 필요X.
보안을 HTTPS에 위임
액세스 토큰 1년 이상 긴 access token (짧은 기간의) access token
+ refresh token

 

 

📑 OAuth 2.0 예제 및 적용 과정

👉 https://yeonyeon.tistory.com/254

 

[OAuth] 슬랙 로그인 구현하기

목차 1. OpenID vs OAuth vs OIDC 2. OAuth 인증 과정 3. 로그인 동의 화면 4. 로그인 API 구현하기 `줍줍` 프로젝트는 슬랙을 이용해 로그인하는 기능을 제공할 예정이다. 해당 기능을 개발하는 과정을 이야

yeonyeon.tistory.com

 

 


💳 OpenID 💳

 

  • 인증 / authentication

  • 사용자를 인증해 사용자에게 액세스 권한을 부여할 수 있게 해주는 프로토콜

  • OpenID 공급자의 로그인 자격 증명하여 다른 애플리케이션에 로그인 가능
    ex: Slack의 로그인 자격을 증명하여 줍줍에 로그인 가능

  • 제 3자가 이미 갖고있는 계정을 사용해 대신 사용자를 인증할 수 있게 함

 

❗ OpenId 1.0 vs OpenId 2.0 vs OpenID Connect

 

✨ OpenID Connect (= OIDC)

  • OAuth 2.0 상위에 구축된 인증 계층이기 때문에 OAuth 2.0과 직접적인 관련
  • JWT 활용

 

출처 : Nate Barbettini

 


❓ Access Token vs Id Token

 

 OAuth에서 발급해주는 access token과 OpenID Connect에서 발급해주는 id token은 무슨 차이일까? access token은 access token을 발급받은 뒤 해당 token을 이용해 유저 프로필 정보에 대한 접근 요청을 보내야한다. 하지만 id token은 별도로 요청을 보낼 필요 없이 해당 token을 decode하여 유저 프로필에 대한 정보를 바로 획득할 수 있다.

  access token (OAuth2) id token (OIDC)
서버의 리소스 접근 권한 O X
유저 프로필 정보 획득 X O

 


참고

반응형