Skip to main content

인증 및 Mind Key

Synapse 인증 작동 방식: 에이전트용 Mind Key, 사람용 JWT, ?key= 기본적으로 비활성화 (Bearer 전용, AUTH_QUERY_KEY_MODE=deny).


인증 및 Mind Key

Synapse는 두 가지 인증 방법을 사용하며, 각각 다른 사용 사례에 최적화되어 있습니다. 신뢰할 수 있는 통합을 구축하려면 차이를 이해하는 것이 필수적입니다.

두 가지 인증 방법

방법 사용 사례 속도 제한 만료
Mind Key LLM 에이전트, 자동화 도구 분당 120회 (외부 Bearer); ?key= 기본적으로 비활성화 (deny) 없음
JWT 사용자 대면 UI, 계정 작업 120/분 (외부 IP) 7일

Mind Key (에이전트용)

Mind Key는 테넌트 범위의 API 토큰입니다. 단일 마인드의 데이터 (메모리, 작업, 채팅, 스크립트 등)를 인증합니다. 다음에 사용하십시오:

  • API를 호출하는 LLM 에이전트
  • 백그라운드 자동화 스크립트
  • MCP 서버 구성
  • 모든 장기 통합

헤더 인증 (권장)

curl -H "Authorization: Bearer mk_yourMindKeyHere" \
     https://synapse.schaefer.zone/memory/recall

쿼리 파라미터 (기본적으로 비활성화)

curl https://synapse.schaefer.zone/memory/recall?key=mk_yourMindKeyHere
`?key=` 쿼리 파라미터는 강화된 기본값 `AUTH_QUERY_KEY_MODE=deny` 로 **비활성화**되어 있습니다: 서버는 `?key=` 에 401과 힌트 "Query-param auth (?key=) is disabled" 로 응답합니다. Bearer 전용이 안전한 기본값입니다 (SSOT: `src/lib/auth.ts`). 운영자가 명시적으로 `AUTH_QUERY_KEY_MODE=allow` 를 설정한 경우에만 `?key=` 가 60 req/min (IP별) 전환 밸브로 작동합니다. 외부 Bearer 클라이언트는 신원당 120 req/min 을 받으며, 신뢰할 수 있는 내부 네트워크는 무제한입니다.

Mind Key 생성

curl -X POST https://synapse.schaefer.zone/minds \
  -H "Authorization: Bearer YOUR_JWT" \
  -H "Content-Type: application/json" \
  -d '{"name": "Work Mind", "description": "Project memories"}'

응답에 mind_key가 포함됩니다 — 즉시 저장하십시오, 한 번만 표시됩니다.

마인드 나열

curl -H "Authorization: Bearer YOUR_JWT" \
     https://synapse.schaefer.zone/minds

마인드 삭제 (되돌릴 수 없음!)

curl -X DELETE -H "Authorization: Bearer YOUR_JWT" \
     https://synapse.schaefer.zone/minds/m_xyz789

JWT (사람용)

JWT는 특정 마인드가 아닌 사용자 계정을 인증합니다. 다음에 사용하십시오:

  • 계정 가입 및 로그인
  • 마인드 생성 / 나열 / 삭제
  • 다른 사용자와 마인드 공유
  • Web Push 구독 관리

가입

curl -X POST https://synapse.schaefer.zone/register \
  -H "Content-Type: application/json" \
  -d '{"email": "you@example.com", "password": "secret"}'

반환: { "jwt": "eyJ...", "user": {...} }

로그인

curl -X POST https://synapse.schaefer.zone/login \
  -H "Content-Type: application/json" \
  -d '{"email": "you@example.com", "password": "secret"}'

반환: { "jwt": "eyJ...", "user": {...} }

JWT 만료

JWT는 7일 후에 만료됩니다. JWT가 만료되면 /login을 다시 호출하여 새 것을 받으십시오. Mind Key는 만료되지 않으므로 기존 에이전트 통합은 계속 작동합니다.

보안 모범 사례

환경 변수 패턴

# .env (이 파일은 절대 커밋하지 마십시오)
SYNAPSE_MIND_KEY=mk_yourMindKeyHere
SYNAPSE_URL=https://synapse.schaefer.zone
// Node.js
const mindKey = process.env.SYNAPSE_MIND_KEY;
const url = process.env.SYNAPSE_URL;
await fetch(`${url}/memory/recall`, {
  headers: { Authorization: `Bearer ${mindKey}` },
});

MCP 서버 구성

{
  "mcpServers": {
    "synapse": {
      "command": "npx",
      "args": ["-y", "synapse-mcp-api@latest"],
      "env": {
        "SYNAPSE_MIND_KEY": "mk_yourMindKeyHere",
        "SYNAPSE_URL": "https://synapse.schaefer.zone"
      }
    }
  }
}

다중 마인드 패턴

각 사용자는 여러 마인드를 가질 수 있습니다. 일반적인 패턴:

마인드 이름 용도
work 업무 관련 메모리
personal 개인 선호도, 가족
project-synapse 특정 프로젝트 컨텍스트
learning-german 학습 진행 상황
assistant-default 범용 폴백

컨텍스트를 격리하기 위해 다른 LLM 세션에서 다른 Mind Key를 사용하십시오.

속도 제한

인증 방법 제한 범위
Mind Key (헤더) 120/분 외부 IP 기준 (아이덴티티당); 신뢰할 수 있는 내부 네트워크는 무제한 마인드별
Mind Key (?key=, allow 시에만) 분당 60회 IP별
JWT (헤더) 120 req/분 (외부 IP; 신뢰할 수 있는 내부 네트워크는 무제한) 사용자별
공용 엔드포인트 없음 전역

속도 제한 헤더 (X-RateLimit-Limit, X-RateLimit-Remaining, Retry-After)는 해당되는 경우 응답에 포함됩니다.

다음 단계