페이지 이동경로
  • 문서>
  • 카카오 로그인>
  • 웹훅

카카오 로그인

웹훅

이 문서는 카카오 로그인 웹훅 기능을 안내합니다.

웹훅(Webhook)은 카카오 로그인 사용자의 계정 상태에 변경 사항이 생겼을 때, 카카오디벨로퍼스에 설정된 웹훅 URL로 HTTP 요청을 보내 서비스에게 공유하는 기능입니다.

웹훅 시스템은 OpenID 재단에서 개발 및 제공하는 Shared Signals and Events Framework(SSF) 규격을 바탕으로 설계됐으며, 일부 이벤트는 카카오에서 직접 정의하여 제공합니다.

시작하기 전에

이용 정책에서 웹훅 사용 시 주의 사항을 확인해야 합니다.

연결 끊기 웹훅

기본 정보
메서드 URL 필수 응답 규격 인증 방식
GET/POST [내 애플리케이션] > [카카오 로그인] > [연결 끊기]에 등록한 웹훅 URL HTTP 상태 코드 200 OK (3초 내) 서비스 앱 어드민 키
권한 사전 설정 카카오 로그인 동의항목
- 카카오 로그인 활성화
연결 끊기 설정
- -

연결 끊기 웹훅은 사용자가 서비스 외부에서 앱과 연결을 끊은 경우, 카카오가 해당 사실을 서비스로 전달하는 기능입니다. 웹훅을 수신한 서비스는 내부 정책에 따라 사용자 정보를 처리한 뒤, HTTP 상태 코드 200 OK로 3초 내에 응답해야 합니다.

서비스 외부에서 연결 끊기를 요청한 사용자에게는 더 이상 해당 서비스를 사용할 수 없다는 문구가 표시됩니다. 연결 끊기 웹훅은 사용자에 대한 연결 끊기 처리를 완료한 후 발송합니다.

웹훅은 헤더에 서비스 앱 어드민 키를, 본문에 앱 ID(app_id), 회원번호(user_id), 연결 끊기 요청 경로(referrer_type)를 각각 포함합니다.

사전 설정

연결 끊기 웹훅은 웹훅 URL과 메서드를 지정해야 사용할 수 있으며, 리다이렉트는 지원하지 않습니다. 설정 방법은 연결 끊기를 참고합니다.

연결 끊기 웹훅 발송 조건

아래 상황이 발생한 경우 연결 끊기 웹훅을 발송합니다. 서비스가 연결 끊기 API를 호출해 앱과 사용자의 연결을 끊은 경우에는 연결 끊기 웹훅을 발송하지 않습니다.

웹훅 수신 시 조치 방법

서비스는 웹훅 수신 시 필요한 작업 수행 후 정해진 규격으로 응답해야 합니다. 아래 과정을 참고합니다.

  1. 수신한 웹훅의 유효성을 포함된 서비스 앱 어드민 키와 app_id로 검증합니다.
  2. 수신한 웹훅이 유효한 경우, user_id에 해당하는 사용자 정보를 개인정보 처리방침과 서비스 정책에 따라 탈퇴 처리, 삭제 또는 기타 방법으로 데이터베이스(DB)에 반영합니다.
  3. 웹훅 수신 시점으로부터 3초 내에 HTTP 상태 코드 200 OK로 응답합니다.
    • HTTP 상태 코드로 응답 성공 여부를 판단하므로 본문(Body)은 필요하지 않습니다.
    • 사용자 정보 처리에 실패했거나, 사용자를 찾을 수 없는 경우에도 HTTP 상태 코드 200 OK로 응답해야 합니다. 이후 서비스 내부에서 필요한 작업을 수행합니다.
연결 끊기 웹훅 테스트

연결 끊기 웹훅을 받으려면 사용자가 연결을 끊는 상황을 만들어야 합니다. 카카오계정 페이지 또는 카카오톡의 [더보기] > [설정] > [카카오계정] 메뉴에서 연결 끊기 기능을 제공합니다. 이 기능을 사용해 서비스 서버가 연결 끊기 웹훅을 정상적으로 처리하는지 확인할 수 있습니다.

요청

헤더
이름 설명 필수
Authorization Authorization: KakaoAK ${SERVICE_APP_ADMIN_KEY}
인증 방식, 서비스 앱 어드민 키로 인증 요청
O
본문
이름 타입 설명 필수
app_id String 사용자가 연결 끊기를 요청한 서비스 앱 ID O
user_id String 연결 끊기를 요청한 사용자의 회원번호 O
referrer_type String 연결 끊기 요청 경로
ACCOUNT_DELETE: 카카오계정 탈퇴
FORCED_ACCOUNT_DELETE: 장기 휴면 또는 고객센터에서 카카오계정 강제 탈퇴
UNLINK_FROM_ADMIN: 카카오 관리자로 인한 탈퇴 처리
UNLINK_FROM_APPS: 카카오계정 페이지에서 서비스 연결 끊기
INCOMPLETE_SIGN_UP: 가입 미완료 사용자 연결 끊기 처리(공지사항 참고)
O
group_user_token String 연결끊기를 요청한 사용자의 그룹 사용자 토큰, 연결끊기가 발생한 앱이 그룹앱인 경우에만 제공 X

응답

  • HTTP 상태 코드 200 OK (3초 내)

예제

요청: GET 메서드
curl -v -G GET "${UNLINK_CALLBACK_URL}?app_id=${APP_ID}&user_id=${USER_ID}&referrer_type=UNLINK_FROM_APPS" \
    -H "Authorization: KakaoAK ${SERVICE_APP_ADMIN_KEY}"
요청: POST 메서드
curl -v -X POST "${UNLINK_CALLBACK_URL}" \
    -H "Authorization: KakaoAK ${SERVICE_APP_ADMIN_KEY}" \
    --data-urlencode "app_id=${APP_ID}" \
    --data-urlencode "user_id=${USER_ID}" \
    --data-urlencode "referrer_type=UNLINK_FROM_APPS"
응답
HTTP/1.1 200 OK

계정 상태 변경 웹훅

기본 정보
메서드 URL 필수 응답 규격 인증 방식
POST [내 애플리케이션] > [카카오 로그인] > [계정 상태 변경 웹훅]에 등록한 웹훅 URL SET 검증 결과별 규격으로 3초 내에 응답
- 성공 시: HTTP 상태 코드 202 Accepted
- 실패 시: HTTP 상태 코드 400 Bad Request와 지정 헤더 및 본문(참고)
-
권한 사전 설정 카카오 로그인 동의항목
- 카카오 로그인 활성화
계정 상태 변경 웹훅
필요 CAEP, RISC 사용 시 필수:
카카오계정 상태 변경 내역

계정 상태 변경 웹훅은 사용자의 계정 상태에 변경 사항이 생겼을 때, 변경 이벤트 정보를 서비스의 웹훅 URL에 HTTP POST 요청으로 전달합니다. 계정 상태 변경 웹훅에 대한 소개는 활용하기를 참고합니다.

주의

사용자의 계정 상태가 변경되어 웹훅 요청을 받은 서비스에서는 반드시 성공 또는 실패로 응답해야 합니다. 웹훅 요청이 지속적으로 실패하거나 무응답인 경우, 앱의 계정 상태 변경 웹훅 상태가 비활성화되고 변경 이벤트 전달이 중단됩니다. 이 경우, 서비스에서 변경 이벤트 수신 처리에 이상이 없는지 확인 후 다시 계정 상태 변경 웹훅 설정해야 합니다.

사용 방법

  1. 지원하는 이벤트 타입을 참고해 제공받을 정보를 검토합니다. 일부 카테고리의 이벤트는 동의항목 설정이 필요합니다.
  2. 웹훅 URL과 이벤트 타입을 설정합니다. (참고: 설정하기)
  3. SET 검증하기를 참고해 웹훅 URL로 전달받은 SET을 검증하고 처리하는 기능을 구현합니다.
  4. 이벤트 타입별 표에서 안내하는 권장 조치 사항 열을 참고하여 필요한 조치 사항을 구현합니다.
  5. 계정 상태 변경 웹훅 시스템 규격을 확인하려면 메타데이터를 조회합니다. (선택)
  6. 웹훅이 어떻게 전송되는지 테스트해보려면 테스트하기를 참고합니다. (선택)
동의항목 설정

CAEP, RISC 카테고리의 변경 이벤트는 민감 정보를 포함합니다. 따라서 [카카오계정 상태 변경 내역] 동의항목 설정 및 사용자 동의가 필요합니다.

필요 시 아래 절차를 수행합니다.

  1. 데브톡으로 [카카오계정 상태 변경 내역] 동의항목의 설정 권한 요청
  2. 권한 부여 후, [내 애플리케이션] > [카카오 로그인] > [동의항목]에서 [카카오계정 상태 변경 내역]을 [선택 동의] 동의 단계로 설정 (참고: 설정하기)
사용자가 동의한 경우만 제공

[카카오계정 상태 변경 내역]은 [필수 동의]는 설정할 수 없어 사용자가 동의하지 않을 수 있습니다. 사용자가 [카카오계정 상태 변경 내역]에 동의하지 않은 경우, CAEP, RISC 카테고리 이벤트 정보는 제공하지 않습니다.

지원하는 이벤트 타입

지원하는 카테고리별 이벤트는 아래와 같습니다. 카테고리 이름 선택 시 해당 카테고리 하위에 속한 이벤트를 자세히 확인할 수 있습니다.

카테고리 설명 사용 사례
OAUTH OAuth 2.0 프로토콜과 관련된 계정 상태 변경 이벤트 타입, 주로 액세스 토큰의 발급, 취소, 클라이언트 상태 변경 등을 포함
OpenID 재단의 OAUTH 규격 사용
카카오 로그인 사용자의 앱 연결 및 해제, 동의항목 동의 및 철회 시 알림
RISC 사용자 카카오계정의 이상징후 보안 이벤트 포함
OpenID 재단의 RISC(Risk Incident Sharing and Coordination) 규격 사용

중요: 동의항목 설정 필요
사용자 계정의 비정상적인 활동이나 계정 탈취 시도 시 알림
CAEP 사용자 카카오계정에 발급된 자격증명(Token) 및 액세스 권한과 관련된 보안 이벤트
OpenID 재단의 CAEP(Continuous Access Evaluation Protocol) 규격 사용

중요: 동의항목 설정 필요
인증 보안 수준이나 비밀번호 변경 시 알림
KAKAO 사용자 카카오계정의 상태 정보 변경 시 발생하는 이벤트
카카오에서 정의하여 제공하는 규격
이메일, 생일 등과 같은 프로필 정보 변경 시 또는 OpenID에서 제공하지 않는 카카오 자체 제공 이벤트 발생 시 알림
OAUTH

OAuth 카테고리는 OAuth 2.0 프로토콜과 관련한 계정 상태 변경 이벤트 타입을 포함합니다.

이벤트 타입 발생 시점 권장 조치 사항
Tokens Revoked
https://schemas.openid.net/secevent/oauth/event-type/tokens-revoked
카카오 로그인으로 발급한 사용자의 모든 토큰 만료 필수: 현재 열려 있는 서비스 세션을 종료하여 사용자 계정 보호
User Linked
https://schemas.openid.net/secevent/oauth/event-type/user-linked
사용자가 앱과 연결 [로그인 시 앱 자동 연결]을 [사용안함]으로 설정한 앱인 경우, 회원 가입 완료 처리 외 서비스에서 필요한 조치 수행
User Unlinked
https://schemas.openid.net/secevent/oauth/event-type/user-unlinked
사용자가 앱과 연결 해제 사용자 회원 정보의 카카오 로그인 연동을 해제하거나, 카카오 로그인으로만 이용 가능한 경우에는 회원 탈퇴 처리
(참고: 연결 끊기 웹훅)
User Scope Consent
https://schemas.openid.net/secevent/oauth/event-type/user-scope-consent
사용자가 동의항목에 동의 -
User Scope Withdraw
https://schemas.openid.net/secevent/oauth/event-type/user-scope-withdraw
사용자가 동의항목 동의 철회 -
RISC

RISC 카테고리는 사용자 계정의 비정상적인 활동을 알리는 보안 이벤트를 포함합니다. 동의항목 설정 및 사용자 동의가 필요합니다.

이벤트 타입 발생 시점 권장 조치 사항
Account Credential Change Required
https://schemas.openid.net/secevent/risc/event-type/account-credential-change-required
계정 비밀번호 변경 서비스에서 의심스러운 활동이 있는지 확인하여 필요한 후속 조치 결정
Account Disabled
https://schemas.openid.net/secevent/risc/event-type/account-disabled

아래 프로퍼티 포함
reason: 계정 비활성화 원인
계정 비활성화:
카카오계정 보호 조치, 잠금 처리, 이용 제재 시
필수: 계정이 비활성화된 이유가 hijacking 인 경우 현재 열려있는 세션을 종료하여 사용자 계정 보호
계정이 비활성화된 이유가 bulk-account인 경우 서비스에서 사용자의 활동을 분석하고 필요한 후속 조치 결정
Account Enabled
https://schemas.openid.net/secevent/risc/event-type/account-enabled
계정 활성화:
카카오계정 휴면 또는 도용 상태에서 복구될 때 발생
사용자의 카카오 로그인 및 카카오계정 이메일 주소로 계정 복구 기능을 다시 활성화
Account Purged
https://schemas.openid.net/secevent/risc/event-type/account-purged
계정 탈퇴 사용자 계정 삭제 또는 다른 로그인 방법 제공
Credential Compromise
https://schemas.openid.net/secevent/risc/event-type/credential-compromise
계정 자격증명 손상:
카카오계정 자격증명이 탈취 의심되는 경우(예: 계정 탈취가 의심되는 새로운 환경에서 로그인 성공)
서비스에서 의심스러운 활동이 있는지 확인하여 필요한 후속 조치 결정
Identifier Changed
https://schemas.openid.net/secevent/risc/event-type/identifier-changed
계정 식별자 변경:
사용자의 이메일 또는 전화번호가 변경된 경우
기존 사용자의 전화번호 또는 이메일을 파기하고, 변경된 전화번호나 이메일로 업데이트
Identifier Recycled
https://schemas.openid.net/secevent/risc/event-type/identifier-recycled
기존 계정 식별자 사용 불가:
카카오계정의 이메일 또는 전화번호가 다른 사용자에게 사용돼 이메일 인증 만료(Expired), 유예(Suspended) 상태가 된 경우
사용자 계정의 이메일 및 전화번호를 더 이상 사용하지 않도록 처리하고, 서비스에서 직접 새로운 이메일 및 전화번호 수집
Sessions Revoked
https://schemas.openid.net/secevent/risc/event-type/sessions-revoked
계정의 모든 세션 만료:
비밀번호 변경 후 기존 기기 로그아웃 처리 시
필수: 현재 열려 있는 세션을 종료하여 사용자 계정 보호
CAEP

CAEP 카테고리는 사용자 계정의 자격 증명과 관련한 보안 이벤트를 포함합니다. 동의항목 설정 및 사용자 동의가 필요합니다.

이벤트 타입 발생 시점 권장 조치 사항
Assurance Level Change
https://schemas.openid.net/secevent/caep/event-type/assurance-level-change
인증 보안 수준 변경:
2차 인증 설정 등 보안 수준 변경 시 발생
현재 사용자가 서비스 이용에 필요한 인증 보안 수준을 충족하는지 확인 후, 필요에 따라 재인증 등 조치를 거쳐 서비스 제공
Credential Change
https://schemas.openid.net/secevent/caep/event-type/credential-change
계정 비밀번호 변경:
비밀번호 재설정 또는 카카오 인증서 재발급 시 발생
-
KAKAO

KAKAO 카테고리는 카카오가 정의하여 제공하는 이벤트 타입을 포함합니다.

이벤트 타입 발생 시점 권장 조치 사항
User Profile Changed
https://schemas.kakao.com/platevent/kakao/event-type/user-profile-changed
사용자의 카카오계정 정보 변경
단, 사용자가 제공 동의한 정보 변경 시에만 알림
사용자 정보 가져오기 API를 호출하여 변경된 정보로 업데이트

SET 정보

서비스는 카카오계정의 변경 이벤트 정보가 담긴 SET을 POST 메서드로 전달받습니다.

아래는 웹훅 URL로 전달되는 요청 예시입니다. 웹훅 요청의 헤더(Header) Content-Typeapplication/secevent+jwt, 본문은 변경 이벤트 정보가 담긴 SET 값입니다. SET은 JWT(JSON Web Token) 형식의 토큰으로, 아래 세 가지 영역으로 구성돼 있습니다.

POST /kakao/events HTTP/1.1
Host: callback.example.com
Content-Type: application/secevent+jwt
Accept: application/json

eyJraWQiOiI2NjVhYmVlYzExOGRkZmMyZDNiZjNlMmFkYWU3OT...
SET 구성
구분 설명
헤더(Header) SET 규격 정보
페이로드(Payload) 변경 이벤트 정보
서명(Signature) 카카오 인증 서버(KAUTH)가 헤더kid에 해당하는 공개키로 서명한 값

아래는 헤더, 페이로드 영역에 포함되는 필드의 상세 정보입니다.

헤더
이름 타입 설명
alg String SET에 적용된 암호화 방식, RS256으로 고정
typ String SET의 형식, secevent+jwt으로 고정
kid String SET 암호화 시 사용된 공개키 ID
메타데이터 조회의 SET 암호화 공개키 조회 URI(jwks_uri)에서 확인 가능
페이로드
이름 타입 설명
iss String SET 발급 기관, https://kauth.kakao.com으로 고정
aud String SET을 전달받는 앱의 REST API 키
sub String SET에 해당하는 사용자 회원번호
iat String SET 발급 시간
jti String SET 고유 식별 값
events Event 변경 이벤트 타입 및 상세 정보
Event
이름 타입 설명
${SCHEMA} JSON 변경 이벤트 타입별 상세 정보
키는 변경 이벤트 타입Schema
값은 변경 이벤트 타입마다 차이가 있으므로 아래 변경 이벤트 상세 정보 참고
변경 이벤트 상세 정보
이벤트 타입 이름 타입 설명
공통 subject Subject 변경 이벤트 상세 정보
OAuth >
User Unlinked
reason String 연결 끊기 사유, 아래 중 하나
ACCOUNT_DELETE: 카카오계정 탈퇴
FORCED_ACCOUNT_DELETE: 장기 휴면 또는 고객센터에서 카카오계정 강제 탈퇴
INCOMPLETE_SIGN_UP: 가입 미완료자 탈퇴
UNLINK_FROM_ADMIN: 카카오 관리자로 인한 탈퇴 처리
UNLINK_FROM_APPS: 카카오계정 페이지에서 서비스 연결 끊기
REVOKE_ACCOUNT_SERVICE_TERMS: 통합서비스 약관 동의 철회
UNLINK_FROM_SERVICE: 서비스 탈퇴
OAuth >
User Scope Consent,
User Scope Withdraw
scope String 사용자가 동의 또는 동의 철회한 동의항목
각 동의항목의 ID를 공백으로 이어 붙인 하나의 문자열
(예: account_email birthday age_range)
RISC >
Identifier Changed,
Identifier Recycled
new-value String 변경된 전화번호 또는 이메일 값
CAEP >
Assurance Level Change
current_level String 카카오계정 인증 레벨
nist-aal1: 2차 인증 미설정 상태
nist-aal2: 2차 인증 설정 상태
change_direction String 카카오계정 인증 레벨 변경 사항
increase: 인증 레벨 상향
decrease: 인증 레벨 하향
previous_level String 변경 전 카카오계정 인증 레벨
nist-aal1: 2차 인증 미설정 상태
nist-aal2: 2차 인증 설정 상태
CAEP >
Credential Change
change_type String 계정 비밀번호 변경 유형
update: 비밀번호 변경 또는 카카오 인증서 재발급
KAKAO >
User Profile Changed
profile String 사용자가 변경한 프로필 정보
각 동의항목의 ID를 공백으로 이어 붙인 하나의 문자열
변경된 값은 전달하지 않고, 변경이 발생한 사용자 정보 종류만 전달
(예: account_email birthday age_range)
Subject
이벤트 타입 이름 타입 설명
공통 subject_type String 사용자 식별자 타입
iss_sub: 회원번호
phone: 전화번호
account_email: 이메일
iss String SET 발급 기관
https://kauth.kakao.com로 고정

중요: Identifier Changed, Identifier Recycled 타입 변경 이벤트 정보에는 미포함
sub String SET에 해당하는 사용자 회원번호

중요: Identifier Changed, Identifier Recycled 타입 변경 이벤트 정보에는 미포함
RISC >
Identifier Changed,
Identifier Recycled
phone_number String 변경 또는 사용 불가 처리된 기존 전화번호 값
account_email String 변경 또는 사용 불가 처리된 기존 이메일 값

SET은 세 영역의 값을 Base64 인코딩(Encoding) 한 후 온점(.)으로 이어 붙인 하나의 문자열로 생성됩니다. 따라서 온점을 기준으로 각 영역을 분리하고, Base64 디코딩(Decoding)하여 내용을 확인할 수 있습니다. 서비스는 SET 검증 후 페이로드 내용을 확인하여 필요한 사용자 계정 보호 조치를 수행할 수 있습니다. 아래는 디코딩된 SET 헤더와 페이로드 예제입니다.

헤더
페이로드
{
    "kid": "665abeec118ddfc2d3bf3e2adae799",
    "typ": "secevent+jwt",
    "alg": "RS256"
}
{
    "iss": "https://kauth.kakao.com",
    "aud": "${REST_API_KEY}",
    "sub": "${USER_ID}",
    "txm": "92a79799-3ae3-4112-8fe2-921c710daa38",
    "iat": 1674702636,
    "jti": "6a1a7a3e-b923-4eb8-886c-cbcbd1621fb0",
    "events": {
        "https://schemas.openid.net/secevent/oauth/event-type/user-linked": {
            "subject": {
                "sub": "1376016924429759243",
                "subject_type": "iss-sub",
                "iss": "https://kauth.kakao.com"
            }
        }
    }
}

SET 검증하기

서비스는 변경 이벤트 정보에 따른 사용자 계정 보호 조치를 수행하기 전 반드시 SET 내용을 확인하고 검증해야 합니다. 아래 순서로 SET 내용을 확인하고 검증할 수 있습니다.

  1. 온점(.)을 기준으로 헤더, 페이로드, 서명을 분리
  2. 페이로드를 Base64 방식으로 디코딩
  3. 페이로드의 iss 값이 https://kauth.kakao.com와 일치하는지 확인
  4. 페이로드의 aud 값이 서비스 앱의 REST API 키와 일치하는지 확인
  5. 서명 검증

서명 검증은 아래 순서로 수행합니다.

  1. 헤더를 Base64 방식으로 디코딩
  2. OIDC: 공개키 목록 조회하기로 카카오 인증 서버가 서명 시 사용하는 공개키 목록 조회
  3. 공개키 목록에서 헤더의 kid에 해당하는 공개키 값 확인
    • 공개키는 일정 기간 캐싱(Caching)하여 사용할 것을 권장하며, 지나치게 빈번한 요청 시 요청이 차단될 수 있으므로 유의
  4. JWT 서명 검증을 지원하는 라이브러리를 사용해 공개키로 서명 검증
    • 참고: OpenID Foundation, jwt.io
    • 라이브러리를 사용하지 않고 직접 서명 검증 구현 시, RFC7515 규격에 따라 서명 검증 가능

검증 성공 응답

SET 수신 서버가 웹훅 수신 후 SET 검증에 성공한 경우, 본문 없이 HTTP 상태 코드 202 Accepted로 3초 내에 응답해야 합니다. 아래 예제를 참고합니다.

HTTP/1.1 202 Accepted

검증 실패 응답

SET 수신 서버가 웹훅 수신 후 SET 검증에 실패한 경우, 아래 형식으로 3초 내에 응답해야 합니다.

  • HTTP 상태 코드: 400 Bad Request
  • 헤더의 Content-Type: application/json
  • 본문: JSON 형식으로 RFC8935 규격에 따라 에러 코드(err)와 이유(description) 포함

아래 예제를 함께 참고합니다.

HTTP/1.1 400 Bad Request 
Content-Type: application/json
{
    "err": "invalid_key",
    "description": "Key ID 12345 has been revoked."
}
실패 응답 에러 코드
Error Code 설명
invalid_request 전달된 SET가 JWT 규격에 맞지 않을 경우
invalid_key 전달된 SET을 카카오의 공개키로 복호화 실패 시
invalid_issuer 전달된 SET의 issuer가 카카오가 아닐 경우
invalid_audience 전달된 SET의 aud 값이 서비스 앱ID와 일치하지 않을 경우

메타데이터 조회하기

기본 정보
메서드 URL 인증 방식
GET https://kauth.kakao.com/.well-known/sse-configuration -

계정 상태 변경 웹훅 시스템의 규격을 확인합니다.

응답

이름 타입 설명 필수
issuer String SET 발급자
https://kauth.kakao.com으로 고정
O
jwks_uri String SET 암호화 공개키 조회 URI
공개키는 SET 검증 시 필요
O
delivery_methods_supported String 지원하는 SSE 이벤트 전송 방식
push만 지원
O
state String 요청 시 전달한 state 값과 동일한 값 X

예제

요청 예제
curl -X GET https://kauth.kakao.com/.well-known/sse-configuration
응답 예제
HTTP/1.1 200
{
    "issuer": "https://kauth.kakao.com",
    "jwks_uri": "https://kauth.kakao.com/.well-known/jwks.json",
    "delivery_methods_supported": "http://schemas.openid.net/secevent/risc/delivery-method/push"
}

테스트하기

변경 이벤트 수신 처리가 올바르게 구현되었는지 [도구] > [계정 상태 변경 웹훅]에서 확인할 수 있습니다.

Test sending screen of change event

🅐 앱: 테스트 대상 앱 선택 🅑 웹훅 URL: 계정 상태 변경 웹훅 설정 시 입력한 웹훅 URL 표시 🅒 카테고리: 변경 이벤트 카테고리 선택, 테스트 시에는 모든 카테고리 선택 가능 🅓 이벤트 타입: 테스트 전송할 변경 이벤트 타입 선택, RISC와 CAEP 카테고리는 권한이 필요하나 테스트 시에는 이용 가능 🅔 카카오계정: 앱에 등록된 팀원 중 이벤트를 발송할 팀원 선택, 단, 선택한 계정은 해당 앱에 [연결]되어 있어야 이벤트를 발생시킬 수 있음 🅕 파라미터: 일부 카테고리의 경우 파라미터 입력 필요, 아래 참고

카테고리 이벤트 타입 파라미터
OAuth User Unlinked reason: 사용자가 앱과 연결을 끊은 경로 선택
OAuth User ServiceTerms Consent scope: 사용자가 동의 시 웹훅을 받을 사용자 정보 선택
OAuth User ServiceTerms Withdraw scope: 사용자가 동의 철회 시 웹훅을 받을 사용자 정보 선택
OAuth Tokens Revoked reason: 토큰을 만료한 주체 선택, issuer(발급자) 또는 user(사용자) 중 하나
RISC Account Disabled reason: 카카오계정 비활성화 이유 선택
RISC Identifier Changed subject_type: 계정 식별 대상 선택, phone(전화번호) 또는 email(이메일) 중 하나
new_value: 변경된 새 전화번화 또는 이메일 입력
CAEP Assurance Level Change previous_value: 변경 전 카카오계정 인증 레벨 선택
new_value: 변경 후 카카오계정 인증 레벨 선택, nist-aal1(2차 인증 미설정 상태) 또는 nist-aal2(2차 인증 설정 상태) 중 하나
KAKAO User Profile Changed profile: 변경 이벤트를 전송할 사용자 정보 종류 선택
(예: account_email birthday age_range)

[발송]을 누르면 페이지 하단에 아래와 같은 테스트 정보가 나타납니다.

변경 이벤트 테스트 전송 요청 정보 화면

🅐 웹훅 요청: 테스트 전송된 요청 전문, 웹훅 URL 미설정 시 HostURL 미포함 예시 출력 🅑 보안 이벤트 토큰: 🅐의 요청에 포함된 SET을 디코딩한 값, headerpayload 각각 출력, 디버깅 시 참고