Skip to content

빌더 인증

표면별 자격증명 규칙

표면받는 자격증명SDK 동작
REST (ai.tasks, ai.categories, ai.papers)Bearer 전용 (McpKey는 REST에서 401)Authorization: Bearer <token>
MCP (ai.mcp, ai.vault, ai.sync)McpKey 또는 BearerMcpKey 우선 → 없으면 Bearer 폴백
ts
new AiNote({ apiKey: '<key>' });              // 같은 키를 양쪽에 (Bearer+McpKey)
new AiNote({ auth: { type: 'bearer', token } }); // REST + MCP 둘 다 Bearer
new AiNote({ auth: { type: 'mcpKey', key } });   // MCP 전용

방법 A — BYO 키 (지금 바로, ✅ 오늘 동작)

사용자가 ainote 계정에서 키를 발급 → 당신 앱(서버)에 연결 → SDK가 그 사용자 데이터를 읽고 씀.

키 발급 경로 (둘 중 하나):

  1. 무인증 onboarding 도구 — 계정 생성과 동시에 키를 받습니다. 서버 변경 0:

    bash
    # 신규 계정
    curl -s https://api.ainote.dev/api/mcp -H 'Content-Type: application/json' \
      -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{
           "name":"signup_and_get_key",
           "arguments":{"email":"you@example.com","password":"min6chars","name":"My App"}}}'
    
    # 기존 계정
    curl -s https://api.ainote.dev/api/mcp -H 'Content-Type: application/json' \
      -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{
           "name":"login_and_get_key",
           "arguments":{"email":"you@example.com","password":"..."}}}'

    응답 텍스트에 MCP 키가 들어 있습니다. (signupemail+password 필수, name 선택 / loginemail+password.)

  2. 앱/웹 설정 — 이미 ainote 사용자라면 ainote 앱 설정 › MCP 키에서 생성.

특징:

  • 서버 변경 0, 오늘 동작.
  • ⚠️ MCP 키는 계정 전체 접근(coarse) — 앱별/읽기전용 스코프 없음. 비번급 권한이라 서버에 보관.
  • 키는 그 사용자 데이터만 건드림(격리 보장).

방법 B — Sign in with logi (스케일 / 매끄러움)

🚧 계획됨 — 아직 미제공

아래는 향후 방향입니다. 현재 SSO/OAuth 발급 흐름(issuer URL · 클라이언트 등록 · authorize/token 엔드포인트 · 스코프)은 공개돼 있지 않습니다. 지금 구현 가능한 건 방법 A뿐입니다. 다중 사용자 스코프 권한이 필요하면 로드맵을 기다리거나 문의하세요.

logi(1pass)는 ainote의 IdP입니다. "Sign in with logi" 한 번으로 (계획):

  1. 서드파티 앱 로그인 + ainote 계정 자동 생성(JIT 프로비저닝) + 자동 링크
  2. 검증된 동일 이메일이면 기존 ainote 계정과 자동 링크 (미검증 이메일/소셜 계정은 보호상 링크 안 함)
  3. 앱은 ainote JWT(또는 logi agent:read/agent:write 토큰)를 받아 SDK에 Bearer로 전달

목표 장점: 이중가입 없음, raw 키 붙여넣기 없음, 스코프 있는 권한.

설계상 순서: MCP 커넥터(logi 토큰 → /api/mcp)는 fail-closed — SSO로 먼저 링크된 사용자만 통과(미링크 sub는 401, orphan 계정 안 만듦). 즉 "Sign in with logi 먼저 → 그다음 agent 토큰으로 MCP 호출".

단계 요약

방법 A (BYO 키)방법 B (Sign in with logi)
상태✅ 오늘 동작🚧 계획됨
권한coarse (계정 전체)scoped (agent:read/agent:write)
마찰키 복사·붙여넣기동의 1번
빌드0 (오늘)(출시 후) logi 토큰 → SDK에 Bearer 전달

오늘 빌드/검증/데모는 방법 A로 합니다.

WAF 403

api.ainote.dev 앞단 WAF는 일부 비브라우저 User-Agent를 403으로 막습니다. SDK는 기본 User-Agent: @ainote/sdk/<version>를 보내며 이는 허용됩니다(검증됨). 직접 curl로 호출하거나 userAgent 옵션을 커스텀했을 때 403이 나면 UA를 의심하세요 — 브라우저류 UA 또는 SDK 기본값을 사용하면 통과합니다.