목록 보기
써드파티 API 호출을 위한 암호화 삽질기
백엔드

써드파티 API 호출을 위한 암호화 삽질기

레모네이드
레모네이드
2021년 3월 23일

두줄요약

ncloud SMS API의 401 오류를 HmacSHA256 서명 생성 관점에서 추적했습니다. 서명 대상 URL 누락을 수정해 정상 발송을 확인했습니다.

문제 상황

  • 비즈엠에서 ncloud SMS API로 전환 후 코드 호출에서 401 Unauthorized 지속 발생
  • Swagger 테스트는 성공했지만 요청 헤더의 x-ncp-apigw-signature-v2 생성 단계에서 실패

원인 분석

  • HmacSHA256 기반 Signature 생성 조건의 공백·줄바꿈 등 문자열 구성 오류 가능성
  • Signature 생성에 사용하는 요청 URL 경로에서 /sms/v2 누락

해결 방법

  • crypto-js의 HmacSHA256·Base64 인코딩 또는 Node.js 내장 crypto.createHmac으로 Signature 생성
  • HTTP 메서드, URL, timestamp, access key를 지정 형식으로 조합 후 Base64 다이제스트 적용
  • /sms/v2/services/{SERVICE_ID}/messages 경로로 수정 후 200 응답과 SMS 발송 확인

주의할 점

  • API 서명 대상 문자열의 공백, 줄바꿈, URL 경로까지 문서 조건과 정확히 일치 필요
  • 브라우저 예제와 Node.js 환경의 모듈 버전·문법 차이 확인 필요

다음 읽기

#HMAC 주제를 다룬 다른 회사 글

HMAC 서명 토큰으로 초대 링크 만들기

인력풀 초대 링크에 만료와 위변조 방지를 넣기 위해 HMAC 서명 토큰을 적용했습니다. 프론트는 토큰만 전달하고, 서버가 발급과 검증을 모두 맡도록 구성했습니다.

넥스트리
넥스트리
백엔드

댓글 0개

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...