OIDC 지원

김민주·2024년 6월 6일
0

code= 뒷부분 인가코드
자원요청은 access token으로!

그림출처

OpenID Connect지원 - 구글
OpenID Connect미지원 - 네이버/카카오

OpenID Connect는 OAuth2.0위에 빌드된 인증 레이어.
사용자 정보를 포함하는 Id 토큰을 발급함

구글

  • scope에 openID 넣으면 스프링 시큐리티의 CommonOAuth2Provider에 들어감
  • 일반적인 OAuth2가 아닌 OIDC 방식으로 동작하기 때문에 OAuth2UserService 대신 oidcUserService 사용하는 것이 좋음.

Oauth2.0은 access_token을 통해 인가를 확인하고
OIDC는 ID_token을 통해 인증을 확인함.(access token도 함께 발급됨)

access_token의 탈취위험으로 exp타임이 생긴 것이고 refresh_token을 통해 접근하는 것이 좋은 것.

OIDC ID_token 은 JWT 토큰을 이용해 암호화가 되어있음.
1. 서버는 ID_token을 받은 후에
2. 서버측에서 ID_token을 검증 후에
3. 유저 정보를 조회후 db값과 비교해 인증함.


별개

registrationId : 로그인하는 서비스
userNameAttributeName : oauth2 로그인 시 기준이 되는 값

  • 구글은 "sub" 이나, 네이버/카카오는 미지원이라 네이버는 조회시 json 반환하므로 "response" 로..

호출 시기
authorization_uri : 애플리케이션에서 로그인 버튼 클릭 시 콜백url에서 이 경로로 리디렉션
로그인 인증 성공하면 인가 코드를 포함해서 리디렉션 url로 리디렉션

token_uri : 인가 코드 받은 후 액세스 토큰으로 교환하기 위해 사용됨

user-info-uri : 액세스 토큰 받은 후 사용자 정보 조회

profile
𝐃𝐨𝐧'𝐭 𝐛𝐞 𝐚 𝐩𝐫𝐨𝐜𝐫𝐚𝐬𝐭𝐢𝐧𝐚𝐭𝐨𝐫💫

0개의 댓글