사용자 식별키(getAnonymousKey) 서버 검증 관련 질문

이 글의 성격은 무엇인가요?

질문 / 문제 해결

내용을 설명해주세요

  1. 검증 API와 mTLS 인증서
    사용자 식별키 발급 문서의 검증 API(POST /api-partner/v1/apps-in-toss/users/anon-key/verify)를 콘솔에서 발급받은 mTLS 인증서로 바로 호출할 수 있나요?

API 사용하기 문서의 “반드시 mTLS 인증서를 통한 통신이 필요한 기능” 목록(토스 로그인 / 토스페이 / 인앱결제 / 스마트발송 / 프로모션)에는 식별키 검증이 포함되어 있지 않아서, 별도 신청이나 권한(스코프) 설정이 추가로 필요한지 확인 부탁드립니다.

  1. 샌드박스 테스트
    샌드박스 환경에서는 getAnonymousKey가 mock 데이터를 반환한다고 문서에 되어 있습니다. 이 mock hash로 anon-key/verify 검증 API를 호출하면 정상 통과하나요?

통과하지 않는다면, 서버 검증까지 포함한 전체 흐름의 개발/QA는 실기기(QR 코드 진입) 외에 다른 방법이 있나요?

  1. hash의 안정성 범위
    같은 사용자가 토스 앱을 재설치하거나 기기를 변경해도 동일한 hash가 유지되나요?

토스 회원을 탈퇴했다가 재가입한 경우에는 hash가 어떻게 되나요? (동일 유지 / 신규 발급)

  1. hash 유출 시 사칭 가능성
    검증 API는 "이 hash가 토스가 발급한 유효한 값인가"만 확인하고, "이 요청을 보낸 클라이언트가 그 hash의 정당한 소유자인가"는 별도로 검증하지 않는 것으로 이해했습니다.

즉 hash가 제3자에게 유출되면 그 사람이 해당 사용자로 로그인(신원 도용)할 수 있는 구조가 맞나요? 서버 측에서 소유권까지 추가로 검증할 수 있는 방법이 있다면 안내 부탁드립니다.

  1. 탈퇴 통지 수단
    토스 로그인에는 “연결 끊기 콜백”(UNLINK / WITHDRAWAL_TERMS / WITHDRAWAL_TOSS)이 있는데, 사용자 식별키에는 이에 대응하는 통지 수단이 보이지 않습니다.

사용자가 토스 회원을 탈퇴했을 때 파트너 쪽에서 이를 알 수 있는 방법이 있나요? 없다면, 파트너가 보관 중인 해당 사용자의 데이터(프로필, 게시물 등)는 어떻게 처리하는 것이 권장되나요?

  1. hash 형식
    저장 스키마와 인덱스 설계를 위해 hash 값의 형식(문자셋)과 최대 길이를 알려주시면 감사하겠습니다.

안녕하세요 :slight_smile:

  1. 검증 API
    네. 콘솔에서 발급받은 mTLS 인증서를 사용하여 anon-key/verify API를 호출하실 수 있습니다.
    해당 API는 mTLS 기반의 서버 간(Server-to-Server) 통신을 통해 호출되므로, 별도의 추가 스코프 설정 없이 mTLS 인증서가 유효하다면 호출이 가능합니다.

  2. 샌드박스 환경 테스트
    샌드박스 환경에서 반환되는 getAnonymousKey의 mock hash는 검증 API(anon-key/verify)를 호출이 불가능합니다. 검증 API는 실제 토스 서버에서 생성된 유효한 해시값인지 확인하는 절차이므로, 서버 검증 로직을 포함한 전체 흐름을 테스트하기 위해서는 실기기(QR 코드 진입) 환경이 필요합니다.

  3. Hash의 안정성 및 보안
    토스앱을 재설치하거나 기기를 변경해도 동일한 hash가 유지됩니다. 토스를 완전히 탈퇴했다 재가입하는 경우 새로운 회원으로 간주되어 hash가 새로 발급됩니다.

  4. hash 유출 사칭
    검증 API는 해당 hash가 토스에서 발급한 유효한 값인지를 확인하는 데 목적이 있습니다. 해시 유출 시의 위험을 방지하기 위해, 파트너사 서버에서는 해당 hash를 발급받은 클라이언트와 통신하는 과정에서 자체적인 세션 관리나 보안 로직을 병행하여 설계하시는 것을 권장해요. 현재 SDK 차원에서 hash의 소유권을 별도로 검증하는 추가 API는 제공되지 않고 있습니다.

  5. 탈퇴 통지
    현재 사용자 식별키 체계에서는 토스 로그인과 같은 별도의 '연결 끊기 콜백’을 지원되고 있지 않아, 필요하실 경우 토스 로그인 이용을 부탁드립니다 :man_bowing:

  6. Hash 형식
    넉넉하게 64자로 설계해주시면 될 것 같습니다.

감사합니다.