안녕하세요.
이 문의는 특정 앱에서 발생한 오류가 아니라 공개 OIDC 계약에 대한 일반 확인 요청입니다. 공개 게시물에는 앱 ID와 실제 서비스 URL을 포함하지 않았습니다.
카카오 로그인 OIDC를 기존 패스키 계정의 보조 로그인 수단으로 도입하기 전에 최소정보 사용과 운영 계약을 확인하고자 합니다. 소셜 계정만으로 신규 계정을 만들거나 이메일로 계정을 병합하지 않고, 사용자가 최근 패스키 인증 후 명시적으로 연결한 경우에만 로그인 수단으로 사용할 예정입니다.
공식 문서에서 다음 내용을 확인했습니다.
- OpenID Connect를 활성화하면 access token과 ID token이 함께 발급됨
- ID token의
sub는 해당 사용자의 회원번호 iss,aud,exp,nonce, JWKSkid와 RS256 서명을 검증- nickname, profile image, email은 동의항목과 사용자 동의가 필요한 선택 claim
- JWKS는 일정 기간 cache하고 지나치게 빈번한 요청을 피하도록 권고
- REST API key의 client secret 기능이 활성화된 경우 token 발급 요청에 client secret을 포함
예정한 개인정보 최소화 방식은 다음과 같습니다.
- authorization code flow, PKCE S256, one-time
state,nonce사용 scope=openid만 요청하고 이메일·닉네임·프로필 사진 동의항목은 신청하지 않음- 검증된 raw
sub는 서버에서 즉시 HMAC digest로 변환하고 원문을 저장하지 않음 - access token, refresh token, ID token, authorization code를 영구 저장하지 않음
- User Information API를 호출하지 않음
- token 요청 결과가 불명확한 timeout에는 authorization code를 자동 재사용하지 않음
아래 항목을 확인 부탁드립니다.
- OIDC가 활성화된 REST API 앱에서 authorization code 요청에
scope=openid만 사용해 ID token을 발급받는 방식이 공식 지원됩니까? - 별도 개인정보 동의항목을 설정하지 않아도 ID token에 식별용
sub가 필수로 포함됩니까? - 이메일·닉네임·프로필 사진 동의항목을 신청하지 않은 경우 해당 선택 claim이 ID token에 포함되지 않는다고 이해해도 됩니까?
sub는 같은 앱에서 카카오계정의 수명 동안 장기 식별자로 사용할 수 있습니까? 앱 소유자·사업자·REST API key 변경 또는 앱 이전 시sub가 변경될 수 있습니까?- JWKS cache 권장 기간 또는 HTTP cache header 계약이 있습니까? 검증 중 알 수 없는
kid를 받은 경우 JWKS를 한 번 새로 조회한 뒤 실패 처리하는 방식이 권장됩니까? - token 요청이 timeout으로 끝나 결과를 알 수 없는 경우 같은 authorization code로 자동 재시도하지 않고 사용자에게 로그인을 다시 시작하도록 하는 방식이 권장됩니까?
- client secret 회전 시 old/new secret을 동시에 유효하게 유지하는 기간이나 공식 무중단 회전 절차가 있습니까?
- 검증된 raw
sub대신 HMAC digest만 저장하고 token·authorization code는 callback 처리 후 폐기하는 방식이 카카오 로그인 ID token 검증·회원 식별 계약과 충돌하지 않습니까?
가능하면 적용되는 공식 개발문서·운영정책 URL도 함께 안내 부탁드립니다.
감사합니다.