비즈고 알림톡 웹훅 문의

안녕하세요. 비즈고 Webhook 리포트 서명 검증 관련 문의드립니다.

현재 비즈고 알림톡 발송 자체는 정상적으로 접수되고 있고, 리포트 Webhook도 저희 서버까지 정상 도달하고 있습니다.
다만 저희 서버에서 X-IB-Signature 검증이 실패해 Webhook 요청에 HTTP 401을 응답하고 있습니다.

이 상태가 지속되면 비즈고에서 리포트 전달 실패로 판단해 재시도하고, 최종적으로 리포트가 정상 반영되지 않는 문제가 있습니다.
실제로 동일 리포트에 대해 재시도성 요청이 여러 번 들어오는 것을 확인했습니다.

비즈고 가이드상 X-IB-Signature는
HmacSHA256(secret, X-IB-Timestamp)
로 안내되어 있어 해당 방식으로 검증을 구현했습니다.

그런데 실제 수신된 콜백의 X-IB-Timestamp / X-IB-Signature를 기준으로,
비즈고 콘솔에서 확인한 secret 값을 사용해 HMAC-SHA256을 계산해도 서명이 일치하지 않습니다.

확인한 내용은 아래와 같습니다.

  • Webhook 콜백은 정상적으로 수신됨
  • 송신 IP도 가이드에 있는 비즈고 Webhook IP로 확인됨
    • 211.115.98.154
    • 211.115.98.155
  • 현재 서버에는 콘솔에서 확인한 secret 값 128자 hex 문자열을 등록함
  • 아래 방식 모두 실제 X-IB-Signature와 불일치
    • secret 문자열을 그대로 HMAC key로 사용
    • secret 값을 hex-decode한 bytes를 HMAC key로 사용
    • API key를 HMAC key로 사용
  • 그 결과 저희 서버는 Webhook 요청에 HTTP 401을 반환하고 있음

문의드릴 사항입니다.

  1. Webhook 리포트의 X-IB-Signature 생성 시 사용하는 secret이 콘솔에 표시되는 어떤 값인지 확인 부탁드립니다.
  2. secret 값이 128자 hex 문자열인 경우, HMAC key로 문자열 그대로 사용해야 하나요, 아니면 hex decode한 bytes를 사용해야 하나요?
  3. 서명 대상 데이터가 가이드처럼 X-IB-Timestamp 단독이 맞나요? body, msgKey, URL 등이 포함되는지 확인 부탁드립니다.
  4. 현재 dev 통합키/채널 기준으로 Webhook 서명에 실제 적용된 secret이 최신 값으로 반영되어 있는지도 확인 부탁드립니다.

샘플 콜백 헤더/바디는 필요하시면 전달드리겠습니다.

“_support” support@infobank.net 쪽으로 사용하지는 ID 와 업체 정보를 전달 주시면 메일로 시크릿키를 전달 드리도록 하겠습니다.

감사합니다.

안녕하세요.

전달해주신 리포트 Webhook 검증용 시크릿키를 적용한 뒤,
X-IB-Signature 검증 및 Webhook 콜백 수신이 정상 동작하는 것을 확인했습니다.

다만 추가로 확인하고 싶은 내용이 있습니다.

기존에는 Bizgo 콘솔에서 통합 Key를 발급한 뒤, 해당 통합 Key 기준으로 시크릿키를 생성하여 Webhook 서명 검증에 사용했습니다.
하지만 해당 시크릿키로는 X-IB-Signature 검증이 실패했고, 이후 메일로 전달해주신 시크릿키를 적용하니 정상 검증되었습니다.

확인 요청드리는 내용은 아래와 같습니다.

  1. 콘솔에서 통합 Key 발급 후 생성한 시크릿키와, 리포트 Webhook 서명 검증에 사용하는 시크릿키가 서로 다른 값인지 궁금합니다.

  2. 기존에 저희가 생성해서 사용했던 시크릿키가 동작하지 않은 원인이 있을까요?

    • 예: Webhook 리포트용 시크릿키가 별도로 발급되어야 하는 구조인지

    • 예: 통합 Key별/채널별/Webhook URL별로 시크릿키가 다르게 관리되는지

    • 예: 콘솔에서 생성한 시크릿키가 리포트 Webhook 검증에는 적용되지 않는지

  3. 추후 dev/stg/prod 환경에서 Webhook URL을 추가하거나 키를 교체할 때, 올바른 리포트 Webhook 검증용 시크릿키를 확인/발급받는 절차가 어떻게 되는지 안내 부탁드립니다.

  4. 시크릿키 변경 시 즉시 반영되는지, 또는 반영까지 지연 시간이 있는지도 함께 확인 부탁드립니다.

현재는 전달해주신 키로 dev 환경 검증은 완료된 상태이며,
향후 운영 환경 적용 시 동일한 이슈를 방지하기 위해 키 발급/관리 기준을 명확히 확인하고자 문의드립니다.


메일로 위 내용 그대로 추가 문의드린상태입니다!

  1. 콘솔에서 통합 Key 발급 후 생성한 시크릿키와, 리포트 Webhook 서명 검증에 사용하는 시크릿키가 서로 다른 값인지 궁금합니다.
    > 죄송합니다. 말씀하신 콘솔에서 통합 Key 발급 후 생성한 시크릿키가 어떤것인지 확인이 되지 않습니다. 만약 고객님쪽에서 별도로 임의로 만드신 시크릿키라면, 리포트 Webhook 서명 검증에 사용하는 시크릿키는 저희쪽에서 지정한 키값으로 별도로 존재합니다.
  2. 기존에 저희가 생성해서 사용했던 시크릿키가 동작하지 않은 원인이 있을까요?
    >1번 답변 참고 부탁드리며, 시크릿키는 저희가 별도로 전달드리는 값입니다.
  3. 추후 dev/stg/prod 환경에서 Webhook URL을 추가하거나 키를 교체할 때, 올바른 리포트 Webhook 검증용 시크릿키를 확인/발급받는 절차가 어떻게 되는지 안내 부탁드립니다.
    >저희쪽에서 계정별로 시크릿키를 관리드리기 때문에 Webhook URL을 변경하시더라도
    시크릿키를 변경하실 필요는 없습니다.
  4. 시크릿키 변경 시 즉시 반영되는지, 또는 반영까지 지연 시간이 있는지도 함께 확인 부탁드립니다.
    >캐시 로드로 인해 지연시간(10분~30분)이 존재할 수 있습니다.

죄송합니다. 문의사항에 대한 회신이 늦었습니다. :smiling_face_with_tear:
답변이 되셨길 바라며, 추가 궁금하신 사항은 언제든 남겨주시기 바랍니다.
좋은 하루 되세요! :smiley:

위 경로에서 만들었던 시크릿키입니다.
그럼 위 시크릿키는 어디서 사용되는 걸까요?

안녕하세요!

해당 시크릿 키는 리포트 웹훅용 키와는 별개로
자동화 플랫폼(Make 또는 Zappier 등)에서 인증을 하기 위한 시크릿 키값입니다.

"시크릿 키"로 같은 용어를 사용하여 혼동을 드려 죄송합니다.

리포트 웹훅 키는 별도로 안내드리고 있으므로 참고 해주시고
해당 사항은 혼동되지 않도록 개선하겠습니다.

감사합니다.:smiley:

이해했습니다. 자세히 설명해주셔서 감사합니다!

마지막으로 한 가지만 더 확인 부탁드립니다.

이전에 메일로 전달해주신 Webhook 서명 검증용 시크릿키는 채널이나 통합 Key와 관계없이,
저희 회사에서 사용하는 모든 Webhook 연동에 공통으로 사용 가능한 키가 맞을까요?

즉, 향후 통합 Key를 새로 발급하거나 채널을 추가하더라도 별도의 시크릿키를 다시 발급받을 필요 없이, 메일로 전달해주신 시크릿키를 그대로 사용하면 되는지 확인 부탁드립니다.

네, 맞습니다. 현재로써는 해당 시크릿 키로
고객님 회사의 모든 Webhook 연동에 공통으로 사용한 키 입니다.

추후 정책이 변경되면 별도의 공지로 공유드리도록 하겠습니다.
감사합니다! :smiley:

웹훅요청을 받고 검증이 실패해서 잘못넣었는지 몇번을 확인했었습니다.

key관리에서 이름이 "시크릿 키 관리"로 되어있고 llms에도 메일로 요청하라는 가이드가 없어서 헤매다가 이 글을 찾게되었습니다.

키 관리 메뉴에서 자동화 플랫폼(Make 또는 Zappier 등)에서 인증을 하기 위한 시크릿 키라는 안내문구를 넣거나 툴팁으로 직접 한번 눌러야 확인가능한 형태가 아닌 강조로 표시되어야 오해가 없겠습니다.

안녕하세요. 비즈고 입니다.:slightly_smiling_face:

의견 주셔서 감사합니다. 말씀하신대로 2개의 키가 다른 용도 다른 값인데
동일하게 "secret"으로 안내되고 있어서 혼선을 드렸습니다. 죄송합니다.

바로 배포할 수 있는 개발자센터부터 말씀하신대로 안내 추가하고
비즈고 플랫폼에도 명확히 구분될 수 있도록
개선하겠습니다.

정말 감사합니다.

개발자센터 규격에 의견주신 부분 반영되었습니다.

감사합니다.!