OIDC
OpenID Connect
spring security로 구글 OAuth 설정을 하면
기본 scope로 "openid, profile, email"
위 3가지가 설정된다.
OAuth로 다 끝난 줄 알았는데 OIDC라고 뭐가 또 나온다.
짜증나니깐 간단하게 알아보자.
우선, OAuth를 짧게 복습해보자.
OAuth, 간단하게 알아보자
OAuth, 간단하게 알아보자 Open Authorization 대형 사이트로 대신 로그인하는 것. 대부분 잘 알려진 사이트로 로그인하는 것으로 알고 있을 것이다. 사실은 외부사이트에서 제공하는 API로 사용자의 정
jujemu.tistory.com
그러니깐 OAuth는
신뢰할 수 있으며 많은 서비스를 제공하는 사이트를 통해 인증/인가를 해결한다.
위 사이트의 예로 구글, 카카오를 들 수 있다.
따라서 OAuth를 통하면
구글, 카카오 외의 사이트가 사용자에게 권한을 허락받아
구글 캘린더, 카카오 게임처럼 구글, 카카오에 접근해 필요한 정보를 얻을 수 있다.
즉, 사용자에 대한 정보 조회 권한을 "인가"받는다.
이 정도면 openID 왜 필요한지 이해할 수 있다.
OAuth로 인증과 인가를 받을 수 있지만
사실은 "인가"를 위한 시스템이다.
사용자의 정보에 해당하는 "인증"에 필요한 정보를 얻으려면
구글과 카카오에 접근해서 권한이 유효한 지 확인받고 응답을 받는 통신을 해야한다.
따라서 OAuth 토큰 획득 과정에서 openID를 같이 받으면
이 정보 안에 사용자 정보를 포함시켜 "인증"까지도 챙기는 것이다.
정리
다시 말하지만,
OAuth만으로도 사용자 정보를 얻을 수 있다. 인증과 인가 모두 가능하다.
하지만 openID를 받으면 사용자에의 인증에 별다른 통신을 필요로 하지 않는다.
추가로 oauth의 동작과정에서 openID가 언제 넘어올 지 궁금할 수 있는데,
scope에 openid가 포함되어 있는 경우,
ID 토큰을 함께 받을 수 있는 Authorization code로 응답한다.
그러면 code로 token을 받을 때, ID 토큰도 함께 받는 것이다.
위 내용은 카카오 공식 API 문서로 확인할 수 있다.
중요한 점
현재 기준
kakao, google, okta가 아닌
naver, github은 openid를 지원하지 않는다.
참고자료
https://velog.io/@jakeseo_me/Oauth-2.0과-OpenID-Connect-프로토콜-정리
Oauth 2.0과 OpenID Connect 프로토콜 정리
https://medium.com/better-programming/the-complete-guide-to-oauth-2-0-and-openid-connect-protocols-35ebc1cbc11a 이 글을 번역한 내용입니다.인증과 권한 관리를 위해 가장 널
velog.io
OpenID(OIDC) 개념과 동작원리
등장배경 이전에는 사용자 데이터를 서비스에서 직접 관리하는 경우가 대다수였다. 하지만 해킹, 피싱등으로 인한 개인정보 유출 사건이 끊임없이 발생하자, 서비스에서 직접 사용자 데이터를
hudi.blog
https://developers.kakao.com/docs/latest/ko/kakaologin/rest-api#before-you-begin
Kakao Developers
카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.
developers.kakao.com
'컴퓨터과학' 카테고리의 다른 글
[운영체제] 개요 (0) | 2023.10.25 |
---|---|
리눅스 (0) | 2023.09.17 |
OAuth 동작 원리 (0) | 2023.07.07 |
OAuth, 간단하게 알아보자 (0) | 2023.07.07 |
도커란? (0) | 2023.06.26 |