발표자: Nick Taylor — Pomerium Dev Advocate, GitHub Star, Microsoft MVP, AWS Community Builder (몬트리올 거주) 컨퍼런스: AI Engineer Conference 주제: OpenClaw에 기여한 Trusted Proxy Auth Mode + 실시간 MCP 앱 빌드 데모
1. 핵심 주제
1.1 OpenClaw 보안의 핵심 문제
OpenClaw를 프록시로 보안했음에도 불구하고 두 가지 마찰이 여전히 존재했다:
- WebSocket 연결을 위한 Auth Token 수동 입력 — 쿼리 스트링에 토큰이 노출되는 보안 취약점
- 디바이스 페어링 반복 — 매번 새 디바이스에서 설정 필요
1.2 해결책: Trusted Proxy Auth Mode
Nick Taylor가 2월에 OpenClaw 오픈소스 프로젝트에 직접 기여한 기능. 아이디어는 **Identity-Aware Proxy(IAP)**를 통해 인증을 프록시 계층에서 처리하면, OpenClaw 내부에서 별도 토큰/페어링이 필요 없다는 것.
1.3 실시간 데모
Discord에서 OpenClaw에게 명령을 내려 AI Engineer 컨퍼런스 웹사이트용 MCP 앱(발표자 검색 UI)을 실시간으로 빌드. Pomerium으로 게이트된 퍼블릭 URL을 ChatGPT MCP 앱으로 노출.
2. 상세 내용 (발언·근거·사례)
2.1 Pomerium이란?
"You've got an identity provider, a policy engine, and a reverse proxy."
- Pomerium = Identity-Aware Proxy (IAP), 오픈코어 제품
- GCP의 Cloud IAP와 동일 개념 (Google에서 나온 패턴)
- 구성 3요소: Identity Provider + Policy Engine + Reverse Proxy
- 내부 앱 보호에 적합한 견고한 보안 아키텍처
2.2 Trusted Proxy Auth Mode 이전의 문제
문제 1 — Auth Token 수동 입력
"Even if you were secured by a proxy, you still had to paste in that auth token in the UI for the web socket connection."
- WebSocket 연결 시 UI에 토큰을 직접 붙여넣어야 했음
- 토큰이 쿼리 스트링에 포함됨 → 로컬 모드에서만 적합, 보안 위험
- 증거: 쿼리 스트링 노출은 브라우저 히스토리·로그에 토큰이 남는 문제
문제 2 — 디바이스 페어링
"I'd just be on my phone after I just set it up. And then I was like, 'Uh I got to go to the other thing to set it up.'"
- 새 디바이스 사용 시마다 다른 기기에서 페어링 완료 필요
- 실사용 마찰: 폰에서 작업하다 페어링 위해 PC로 이동해야 하는 상황
2.3 기여 과정
이슈 제안 → 커뮤니티 검증 → 구현
- Nick이 GitHub 이슈 #1560 제안
- Caddy 사용자도 "+1", Peter Stipe(OpenClaw 관리자)가 "Let's work on this" + 기능 기준 제시
- Nick이 구현 → PR 머지
- 버그 발견: Anthony가 리포트, Sid가 수정
"When you miss stuff, people in the community step up. OSS for the win."
프로젝트 폭발적 성장의 증거
"The number of the issue was 1560. And I had a PR initially that was like in the 1700s... literally after 2 weeks, it went from like 1500 to like almost 16,000."
- 휴가 2주 만에 이슈 번호 1500대 → 16,000대로 폭증
- PR이 stale로 클로즈 → 리베이스 작업 대량 필요
- OpenClaw 커뮤니티 성장 속도의 실증적 증거
2.4 설정 방법 (Config 변경사항)
변경 전 (Token Auth Mode)
gateway:
mode: token
# + WebSocket 토큰 수동 입력 필요
# + 디바이스 페어링 필요
변경 후 (Trusted Proxy Auth Mode)
gateway:
mode: trusted_proxy
trusted_proxies:
- <proxy_ip_address> # Pomerium 등 IAP의 IP
trusted_proxy:
user_header: <JWT_header_name> # IAP가 주입하는 JWT 헤더
required_headers:
- <required_header>
# allowed_users: [] → IAP 정책으로 처리하므로 불필요
결과:
- WebSocket 연결 시 토큰 불필요
- 디바이스 페어링 불필요
- 보안 포스처 향상 + UX 개선 동시 달성
2.5 Nick의 OpenClaw 셋업
사용 채널: Discord (Telegram 아님)
"I work at a security company and my CEO is like, 'Yeah, don't use that (Telegram).'"
- 텔레그램 채널은 암호화되지 않음 → 보안 회사 관점에서 부적합
- Discord + WhatsApp 사용 중, Discord 주력
사이드 프로젝트: Claw Space
- SSH 없이 워크스페이스 파일을 읽고 편집하기 위해 직접 구축
- Discord에서 폰으로 빌드
- "It's the age of personal software" — 쓸모있으면 그 자체로 가치
2.6 라이브 데모: MCP 앱 빌드
데모 목표: AI Engineer 컨퍼런스 사이트용 발표자 검색 MCP 앱 실시간 구축
아키텍처:
Discord(폰) → OpenClaw → MCP Server (Vite + React)
↑ Pomerium으로 퍼블릭 URL 게이트
↓
ChatGPT MCP App
흐름:
- OpenClaw를 Discord에서 제어
- MCP 서버에
echo도구,search_speakers도구 구현 - ChatGPT에서 MCP 앱으로 연결
- Nick이 Discord에서 "AIEU로 echo 위젯 변경" 명령 → OpenClaw가 실시간 파일 수정
- React HMR/Vite hot reload로 ChatGPT UI에 즉시 반영
핵심 기술:
- Vite + React (프론트엔드)
- MCP spec의
send_message함수 활용 — 버튼 클릭 시 LLM 호출 - Pomerium이 로컬 MCP 서버를 안전하게 퍼블릭 노출
데모 결과:
- 발표자 검색 UI 구현 (speaker.json 기반)
- "More" 버튼 → ChatGPT가 해당 발표자 정보 요약 생성
- 모든 것이 Discord 채팅만으로 완성
인용:
"I really find this workflow really cool. It's only possible if you use some kind of proxy to do this."
3. 구조화된 시사점
3.1 보안 아키텍처 관점
| 기존 방식 | Trusted Proxy Auth Mode |
|---|---|
| 토큰 수동 입력 | IAP가 자동 처리 |
| 쿼리 스트링 토큰 노출 | 헤더 기반 JWT 전달 |
| 디바이스별 페어링 | 불필요 |
| 보안 + 불편 동시 존재 | 보안 + 편의 동시 달성 |
IAP 패턴의 장점:
- 네트워크 레이어에서 인증 처리 → 앱 코드 단순화
- 정책 기반 접근 제어 (코드 변경 없이 정책만 수정)
- 로컬 서비스를 안전하게 퍼블릭 노출 가능
3.2 개발 워크플로우 관점
"폰에서 프로덕션급 개발"의 현실화
- 과거: 폰으로 개발? 불가능한 상상
- 현재: OpenClaw + Discord + Pomerium = 실제 가능
- 핵심 인에이블러: 보안된 퍼블릭 URL (로컬 서비스를 외부에서 접근)
MCP 앱 패턴의 부상
- ChatGPT MCP 앱 = LLM + UI가 결합된 새로운 앱 형태
send_message함수로 UI에서 직접 LLM 호출- 표준 웹 기술(React, Vite) + MCP spec으로 구현
3.3 OSS 기여 관점
효과적인 OSS 기여 패턴:
- 실제 사용 중 불편함 발견
- 이슈 제안 (단순 불만 아닌 구체적 기능 제안)
- 커뮤니티 검증 수집
- 메인테이너와 협력하여 기준 설정
- 구현 및 피드백 반영
- 버그 발생 시 커뮤니티가 자연스럽게 수정
실수에서 배우기:
- GitHub CLI에 전체 권한 부여 → 검토 전 PR 자동 생성
- 로컬 환경에서만 테스트 → 실제 버그 미발견
- 해결책: draft mode 적극 활용, 더 넓은 환경에서 테스트
4. 실행 포인트
즉시 적용 가능
-
OpenClaw + Pomerium 설정
- Pomerium을 OpenClaw 앞에 배치
mode: trusted_proxy+trusted_proxies,trusted_proxy섹션 설정- 로컬 서비스를 안전하게 퍼블릭 노출 → 폰/외부에서 접근 가능
-
MCP 앱 빌드 패턴 적용
- Vite + React + MCP spec 조합
send_message함수로 UI-LLM 연결- OpenClaw로 실시간 파일 편집 → HMR 즉시 반영
-
개인 도구 빌드 권장
- Claw Space 같은 워크플로우 도구
- SSH 대신 OpenClaw 채팅으로 파일 관리
- 보안 고려 필수: 의도치 않은 외부 노출 방지
참고 자료
- Pomerium: https://pomerium.com (Identity-Aware Proxy)
- OpenClaw Trusted Proxy Auth Mode: 이슈 #1560, PR #1700대
- AI Engineer 컨퍼런스: speaker.json → MCP 앱 소스
- Nick Taylor: @NikkyTOnline (GitHub, Twitter, LinkedIn 등)
보안 주의사항
"Definitely take security into consideration. Some people have deleted all their emails etc."
- MCP 서버 외부 노출 시 IAP/프록시 필수
- GitHub CLI 등 AI 도구에 과도한 권한 부여 주의
- 텔레그램 등 비암호화 채널 사용 지양 (보안 환경에서)
