OpenID Connect ID Token

안녕하세요 토이 프로젝트를 만들다가 의문점이 생겨 질문드립니다.

OpenID Connect를 설정해서 ID Token을 받았는데 사용자 인증 토큰이기 때문에 이걸 이용하여 로그인 관리를 편하게 한다는 것 까지 이해했습니다.

질문은 총 2가지이며

  1. BE는 springboot로 작업중인데 id_token을 hashmap으로 저장해서 return해서 FE에 보내는 식으로 했는데 괜찮을까요? 예전에 jwt를 security써서 만들었을땐 authentication class를 이용했는데 hashMap으로 해도 문제가 없는지 궁금합니다.

  2. id_token을 가지고 FE에서 BE로 들어올 때 이 토큰의 유효성 검사를 실시해야하는데 "kakao developers REST API OIDC: ID 토큰 정보 보기"를 보면

주의: API 용도
ID 토큰 정보 보기 API는 디버깅(Debugging) 용도로 제공되며, 실제 서비스의 ID 토큰 유효성 검증 용도로 사용할 수 없습니다. 용도에 맞지 않는 요청은 차단될 수 있습니다.

이런 경고문 때문에 유효성 검사를 사용할 수 없다는데 그럼 어떤식으로 사용하면 되는지 궁금합니다ㅠㅠ

안녕하세요.

1. 서비스측에 알맞은 방식으로 선택 구현하시면 됩니다.
그런데 id_token을 FE에 return 하려는 이유가 어떻게 될까요?
해당 값이 필요하시다면 보통 서비스측 인가 쿠키에 같이 포함할것 같습니다.

2. 유효성 검사는 서비스측의 BE에서 직접 구현하셔야 합니다.
아래 샘플을 참고 부탁드립니다.

카카오 로그인 OIDC(OpenID Connect) JWT 서명검증 (JAVA)

FE와 BE 사이에 session or jwt 처럼 토큰을 넘겨주면서 인증 관리를 하려고 했습니다.

id_token이 jwt형식이고 인증 토큰이기 때문에 id_token을 FE와 BE 서로 주고받으면서 api 호출을 하려고 했는데 혹시 잘못된 접근일까요??

아닙니다.

제가 그러한 용도로 사용하지 않으시는줄 잘못 이해하였습니다.
사용하시는데 문제 없으실것 같습니다.

아하 그럼 id_token 자체를 다른서비스에서 흔히 이용하는 session or jwt처럼 api 호출용도로 사용해도 괜찮다라는 말씀이군요!

정말 감사합니다.

사용하셔도 괜찮습니다.


개인적으로 궁금한데요 서비스측 인증처리를 카카오의 id_token만으로 하시려고 하시나요?
카카오 로그인만 제공되는 서비스인가요?

네 카카오로그인만 제공되는 서비스입니다. 그래서 최대한 카카오 로그인에서 제공하는 기능을 이용하려다가 OpenID Connect의 id_token을 발견하여 사용해보려고 합니다.

spring security로 jwt를 새로 만들어하는 방법도 있겠지만 id_token을 발급 받았으니 이를 최대한 이용해보고 싶어 문의드린 것 입니다. 관심 감사합니다!