Kakao Work::Web API 레퍼런스::Auth

페이지 이동경로

Auth

카카오워크가 Bot 서버로 전달하는 요청을 검증하기 위해 다음과 같은 API를 사용합니다.

표Auth API 리스트
구분 API 명 설명
공개키 조회 auth.jwks Bot 서버로 전달되는 요청의 JWT 검증용 공개키(JWKS) 조회

auth.jwks

카카오워크가 Bot 서버로 전달하는 요청을 검증하기 위한 공개키 목록(JSON Web Key Set)을 조회합니다.

카카오워크는 Request URL·Callback URL로 요청(반응형 메시지·Modal)을 전달할 때 Authorization 헤더에 Bearer {JWT} 형식의 토큰을 함께 보냅니다. 이 토큰은 RS256으로 서명되어 있으며, 토큰 헤더의 kid 와 같은 kid 를 가진 공개키로 서명을 검증할 수 있습니다.

  • 이 API는 Rate Limit 적용 대상이 아닙니다.
  • 공개키는 변경될 수 있으므로, 토큰의 kid 와 일치하는 키를 찾지 못하면 이 API를 다시 호출해 키 목록을 갱신하세요.

Request

Request Syntax

코드예제auth.jwks Request Syntax

  curl -X GET https://api.kakaowork.com/v1/auth.jwks \
       -H "Authorization: Bearer {YOUR_APP_KEY}"

표API 호출 방식
메서드 요청 URL
GET https://api.kakaowork.com/v1/auth.jwks

Request Header

Request Header에 대한 상세는 다음과 같습니다.

표auth.jwks Request Header
파라미터 타입 필수 여부 설명
Authorization String 필수 Bearer {YOUR_APP_KEY}
- {YOUR_APP_KEY}: Bot 등록 요청 후에 획득한 인증키(App Key)

Request Elements

요구하는 파라미터가 없습니다.

Response

Response Syntax

코드예제auth.jwks Response Syntax

{
        "success": true,
        "keys": [
                {
                        "kty": "RSA",
                        "use": "sig",
                        "alg": "RS256",
                        "kid": "tiger-ex-v1",
                        "e": "AQAB",
                        "n": "zvsr5IeY8aAJ1vSykEKQ..."
                }
        ]
}

Response Elements

Response Elements에 대한 상세는 다음과 같습니다.

표auth.jwks Response Elements
필드 타입 필수 여부 설명
success Boolean 필수 API 호출 실행 결과
- 실패한 경우에도 HTTP 상태 코드는 200이므로 이 값으로 성공 여부를 판단
true: 성공, keys 필드와 함께 반환
false: 실패, error 필드와 함께 반환
Object[] 선택 공개키 목록(RFC 7517 JWK 형식)
- API 호출 성공(true)일 경우 제공
kty String 필수 키 타입. RSA
use String 필수 키 용도. sig(서명 검증)
alg String 필수 서명 알고리즘. RS256
kid String 필수 키 식별자. 토큰 헤더의 kid 와 비교해 검증에 사용할 키를 선택
e String 필수 RSA 공개 지수(Base64url)
n String 필수 RSA 모듈러스(Base64url)
Object 선택 API 실행 오류 정보
- API 호출 실패(false)일 경우 제공
code String 필수 오류 상황을 구분하는 코드
unauthorized:
인증키가 제공되지 않음
invalid_authentication:
제공된 인증키가 유효하지 않음
expired_authentication:
제공된 인증키가 만료됨
api_not_found:
요청 API의 URL 혹은 HTTP 메서드와 다름
internal_server_error:
정의되지 않은 서버 오류 발생
message String 필수 오류 원인에 대한 설명
이 문서가 만족스러운 이유를 알려주세요.
이 문서에 아쉬운 점을 알려주세요.
평가해주셔서 감사합니다.

더 자세한 의견은 contact.dkt@kakaocorp.com 으로 제보해주세요.