[High] 웹&앱 기반 Google, Kakao, Apple OIDC 기반 소셜 로그인 문서화 #7
euncheol-kim
started this conversation in
Technical Docs to be Applied
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
목차
OIDC
[STEP 1] 개념
[STEP 2] unRetired의 OIDC 사용
🚩OIDC
STEP 1. 개념
[용어정의]
STEP 1-1. OIDC는 인증의 표준을 제공하기 위해 등장하였습니다.
OAuth는 Client가 Resource Owner의 데이터를 인가받는 것을 목적으로 했고 인증수단의 목적은 두지 않았습니다. OIDC가 등장하기 전, 서버에서 자체적인 토큰 관리 시스템을 구축하여 사용자 인증의 수단으로 사용했습니다.
OIDC는 기존의 OAuth 2.0에 인증 기능을 추가한 프로토콜입니다.
OAuth 2.0의 인증의 한계를 극복하기 위해 OIDC 인증 기능 프로토콜이 등장했습니다. 이로써 표준화 된 인증방식을 제공할 수 있게 됐습니다. 인증 정보의 경우 ID Token을 통해 인증 정보를 제공합니다.
STEP 1-2. ID Token
ID Token은 OIDC에서 사용자의 인증(Authentication) 정보를 포함하는 토큰입니다.
ID Token은 JWT 형식을 따릅니다. JWT는 서명을 포함하고 있으며, 이 서명을 통해 토큰이 변조되지 않음을 검증할 수 있습니다. 구체적인 ID Token 발급 절차는 아래와 같습니다.
ID Token 발급 절차
STEP 2. unRetired의 OIDC 사용
unRetired에서는 Google, Kakao, Apple의 OIDC 기반 소셜 로그인을 제공합니다.
위의 POST 요청은 웹/앱의 로그인에서 모두 사용하게 되며, 사용자가 서버로 요청하는 데이터 형식은 JSON이며 Request Body는 위와 같습니다.
STEP 2-1. 앱(IOS, Android), 웹 공통
STEP 2-1-1. Google, Kakao, Apple의 OIDC 기반 소셜 로그인 흐름
STEP 2-2. 웹
STEP 2-2-1 Kakao
[1] id_token의 검증
토큰 안에는 aud 값이 존재합니다. 이 값이 javascript-key와 일치해야합니다. 만약, aud 값이 일치하지 않으면 인증이 실패합니다. (이 부분은 정확한 정보의 확인이 필요)
STEP 2-3. 앱
STEP 2-3-1 Kakao
[1] id_token의 검증 (IOS, Android 모두 해당)
토큰 안에는 aud 값이 존재합니다. 이 값이 native-key와 일치해야합니다. 만약, aud 값이 일치하지 않으면 인증이 실패합니다. (이 부분은 정확한 정보의 확인이 필요)
Beta Was this translation helpful? Give feedback.
All reactions