본문으로 건너뛰기

웹훅 보안

서버가 웹훅 요청을 받을 준비가 되면, 요청을 안전하게 처리할 수 있도록 해야 합니다. Logto는 각 웹훅 요청 페이로드에 대한 서명을 생성하여 요청이 Logto에서 온 것임을 확인할 수 있습니다.

서명 키 가져오기

서명을 확인하려면 Logto Console > Webhooks의 웹훅 세부 정보 페이지에서 서명 키를 가져와야 합니다.

서명 확인하기

웹훅 요청의 logto-signature-sha-256 헤더에서 서명을 추출합니다.

그 후, 서명 키와 웹훅 요청 본문을 사용하여 서명을 생성하고, Logto에서 제공한 서명과 일치하는지 확인해야 합니다.

노트:

서명 생성에는 웹훅 요청의 원시 본문을 사용하세요. 서버가 웹훅 엔드포인트 핸들러에 도달하기 전에 본문을 전처리할 수 있으므로, 파싱된 본문을 사용하지 마세요.

Logto는 HMAC 16진수 다이제스트를 사용하여 서명을 계산합니다.

다음은 Node.js에서 서명을 확인하는 예제입니다:

import { createHmac } from 'node:crypto';

export const verify = (signingKey: string, rawBody: Buffer[], expectedSignature: string) => {
const hmac = createHmac('sha256', signingKey);
hmac.update(rawBody);
const signature = hmac.digest('hex');
return signature === expectedSignature;
};