API 문서 접근 제어 5가지 방법: 공개부터 커스텀 인증까지
API 문서의 접근을 제어하는 5가지 방법(공개, 비밀번호, IP 화이트리스트, 이메일 화이트리스트, 커스텀 로그인)과 각 방법의 적합한 사용 사례를 알아봅니다.
Spacebar AI
2025년 12월 7일
5분

API 문서 접근 제어 5가지 방법
API 문서는 민감한 정보를 포함할 수 있어 적절한 접근 제어가 필요합니다. 상황에 맞는 5가지 접근 제어 방법을 알아봅니다.
1. Public (공개)
가장 개방적인 방식으로, 공유 링크를 통해 누구나 접근할 수 있습니다.
특징
- 제한 없는 접근
- 최대한의 가시성
- API Hub 마켓플레이스에 등록 가능
적합한 경우
- 오픈 API
- 개발자 채택을 늘리고자 할 때
- 공개 문서가 필요한 오픈소스 프로젝트
주의사항
- 민감한 정보가 포함되지 않았는지 확인
- 내부용 API는 공개하지 않기
2. Password Protected (비밀번호 보호)
간단한 보안 계층을 추가하는 방식입니다.
특징
- 관리자가 비밀번호 설정 또는 자동 생성
- 사용자는 비밀번호 입력 후 문서 접근
- 빠른 설정과 간편한 공유
적합한 경우
- 임시 외부 공유
- 파트너 리뷰
- 빠른 프로토타입 공유
주의사항
- 비밀번호가 의도치 않게 공유될 위험
- 장기 보안에는 부적합
설정 예시:
Password: Xy7!mK9@pL2#
Expiry: 7 days
3. IP Allowlist (IP 화이트리스트)
특정 IP 주소 또는 범위에서만 접근을 허용합니다.
특징
- 네트워크 기반 제한
- 방화벽 역할
- 고정 IP 환경에 적합
적합한 경우
- 사내 문서
- 고정 IP를 가진 파트너사
- 보안이 중요한 기업 환경
설정 예시
Allowed IPs:
- 192.168.1.0/24 (사내 네트워크)
- 203.0.113.50 (파트너사 IP)
- 10.0.0.0/8 (VPN 대역)
주의사항
- 재택근무나 외부 접근이 필요한 경우 불편
- 동적 IP 환경에서는 관리 어려움
4. Email Allowlist (이메일 화이트리스트)
사용자 신원을 이메일로 확인하는 방식입니다.
특징
- 이메일 주소로 접근 권한 부여
- 일회용 인증 코드 발송
- 와일드카드 지원 (
*@company.com)
적합한 경우
- 분산된 팀
- 특정 조직 전체 접근 허용
- 사용자 추적이 필요한 경우
설정 예시
Allowed Emails:
- *@spacebar.ai (회사 전체)
- partner@client.com (특정 파트너)
- dev-team@agency.io (외부 개발팀)
장점
- IP보다 유연함
- 접근 기록 추적 가능
- 쉬운 권한 추가/제거
5. Custom Login Page (커스텀 로그인)
자체 인증 시스템과 연동하는 고급 방식입니다.
워크플로우
1. 사용자가 문서 접근 시도
2. 커스텀 로그인 페이지로 리다이렉트
3. 자체 인증 시스템에서 로그인
4. JWT 토큰 생성
5. Apidog가 토큰 검증 후 접근 허용
적합한 경우
- 기존 SSO 시스템 보유
- 복잡한 권한 구조
- 엔터프라이즈 환경
구현 예시
// JWT 토큰 생성 예시
const token = jwt.sign(
{
userId: user.id,
email: user.email,
permissions: ['docs:read']
},
process.env.JWT_SECRET,
{ expiresIn: '24h' }
);
선택 가이드
| 사용 사례 | 권장 방법 |
|---|---|
| 공개 API 문서 | Public |
| 단기 외부 공유 | Password Protected |
| 보안 사내/파트너 네트워크 | IP Allowlist |
| 사용자 신원 기반 접근 | Email Allowlist |
| 커스텀 인증 시스템 | Custom Login Page |
조합 전략
여러 방법을 동시에 사용할 수 있습니다:
공개 문서 사이트: 기본 API 레퍼런스
비밀번호 보호 사이트: 베타 기능 문서
이메일 화이트리스트 사이트: 프리미엄 파트너 전용
결론
API 문서 접근 제어는 보안과 편의성의 균형입니다. 대상 사용자와 보안 요구사항에 따라 적절한 방법을 선택하고, 필요시 여러 방법을 조합하여 사용하세요.