diff --git a/docs/firewall.html b/docs/firewall.html new file mode 100644 index 0000000..9baf55f --- /dev/null +++ b/docs/firewall.html @@ -0,0 +1,1124 @@ + + +
+ + +홈 › 방화벽 · 프록시 가이드
++ CopilotWatchTower는 관리자 PC 한 대에서 실행되는 데스크톱 앱이며, 수집한 데이터를 외부로 전송하지 않습니다. + 다만 Microsoft 365·Power Platform API를 직접 호출하므로 아래 도메인에 대한 아웃바운드 HTTPS(443) 통신이 필요합니다. + 폐쇄망·프록시·TLS 검사 환경에서는 설치 전에 이 목록을 네트워크 담당자와 함께 점검하세요. +
+대상 버전 v2.0.0 · 상용(Commercial) 클라우드 기준 · 모든 통신은 아웃바운드 TCP 443
+login.microsoftonline.com과 graph.microsoft.com만 열려 있으면 온보딩·대화 수집·사용량 리포트 등 핵심 기능이 동작합니다. 나머지는 사용하는 기능에 따라 추가하세요.
앱 내부 HTTPS 클라이언트(Node)와 내장 브라우저 창(Chromium)이 서로 다른 경로로 나갑니다. Chromium만 Windows 시스템 프록시를 따르므로, 프록시 설정 하나만으로는 부족할 수 있습니다.
+인증·Graph 트래픽에 SSL 가로채기를 적용하면 인증서 검증 실패로 수집이 통째로 멈춥니다. 해당 도메인은 검사 예외(bypass)로 두는 것을 권장합니다.
++ 모든 통신은 아웃바운드 TCP 443(HTTPS)입니다. 인바운드 개방은 필요하지 않습니다. + 「요청 주체」는 그 도메인을 누가 호출하는지를 뜻하며, 프록시·TLS 검사 정책을 세울 때 중요합니다. +
+온보딩(앱 자동 등록·관리자 동의), Copilot 대화 수집(API), 사용량 리포트, 감사 로그 등 앱의 모든 기본 동작에 필요합니다.
+| 도메인 | 포트 | 요청 주체 | 용도 | +
|---|
라이선스가 없는 사용자의 Copilot 대화까지 eDiscovery로 복원하는 기능을 사용할 때만 필요합니다. 내보내기 결과 ZIP은 Microsoft가 반환하는 동적 URL에서 내려받습니다.
+| 도메인 | 포트 | 요청 주체 | 용도 | +
|---|
Copilot Studio 대화(Dataverse conversationtranscripts) 수집과 Copilot 메시지 크레딧 소비량 조회를 사용할 때만 필요합니다. Dataverse 호스트는 테넌트 환경마다 지역 접미사가 달라지므로 와일드카드 허용을 권장합니다.
+| 도메인 | 포트 | 요청 주체 | 용도 | +
|---|
앱에는 자동 업데이트 기능이 없습니다. GitHub 접속은 설치 파일을 내려받는 시점에만 필요하며, 실행 중에는 사용하지 않습니다.
+| 도메인 | 포트 | 요청 주체 | 용도 | +
|---|
방화벽·프록시 정책에 그대로 넣을 수 있는 도메인 목록입니다. 사용하지 않는 기능의 줄은 지워서 최소 권한으로 운영하세요.
+ ++ CopilotWatchTower는 하나의 앱 안에서 두 가지 서로 다른 네트워크 스택을 사용합니다. 이 둘은 프록시 설정을 공유하지 않습니다. +
+ ++ Power Platform 관리 센터·Power Apps 메이커 포털 로그인, eDiscovery 대화형 다운로드에 사용됩니다. + Chromium 스택이므로 Windows 시스템 프록시 설정(WinINET·WPAD·PAC 스크립트)을 자동으로 따릅니다. 별도 설정이 대부분 필요하지 않습니다. +
+ ++ Graph 대화·리포트 수집, Dataverse 조회, 라이선싱 API 등 실제 데이터 수집의 대부분을 담당합니다. + 런타임 기본 fetch를 그대로 사용하므로 시스템 프록시 설정과 HTTP_PROXY / HTTPS_PROXY 환경 변수, PAC 스크립트를 인식하지 않습니다. + 명시적 프록시를 통해서만 외부로 나갈 수 있는 네트워크라면, 이 경로의 요청은 프록시를 우회하려다 그대로 차단됩니다. +
+ ++ SSL 가로채기 장비는 사내 CA로 인증서를 재발급합니다. 내장 브라우저 창은 Windows 인증서 저장소를 사용하므로 대개 문제가 없지만, + 앱 내부 HTTPS 클라이언트는 런타임에 내장된 루트 CA 목록만 신뢰하므로 사내 CA를 알지 못해 연결이 실패합니다. +
+login.microsoftonline.com, graph.microsoft.com을 TLS 검사 예외로 지정합니다. Microsoft도 인증·Graph 트래픽에 대한 가로채기를 권장하지 않습니다.NODE_EXTRA_CA_CERTS에 해당 파일 경로를 지정하고 앱을 재시작합니다.unable to verify the first certificate, self-signed certificate in certificate chain, UNABLE_TO_GET_ISSUER_CERT_LOCALLY가 보이면 TLS 검사 문제입니다.
+ 온보딩 마법사는 Entra ID 관리자 동의 결과를 돌려받기 위해 127.0.0.1에 임시 HTTP 리스너를 잠깐 띄웁니다(포트는 OS가 자동 할당).
+ 외부에 노출되지 않는 루프백 전용 통신이므로 인바운드 방화벽 규칙을 새로 만들 필요는 없습니다.
+
%LOCALAPPDATA%의 로컬 SQLite에 저장됩니다. 별도의 DB 서버 포트는 사용하지 않습니다.앱을 설치할 관리자 PC에서, 실제로 앱을 실행할 계정으로 아래를 실행하세요. 다른 PC나 다른 계정에서의 결과는 참고가 되지 않습니다.
+ +응답한 인증서의 발급자(Issuer)가 Microsoft 계열이 아니라 사내 보안 장비 이름이라면 TLS 검사가 적용된 것입니다.
+401 Unauthorized가 돌아오면 정상입니다(인증 없이 호출했으므로). 타임아웃·인증서 오류·프록시 오류가 나면 네트워크 문제입니다.
+앱의 「수집 로그」 화면에서 실패한 단계를 확인한 뒤, 아래 표에서 대응되는 도메인을 우선 점검하세요.
+| 증상 | 확인할 도메인 · 원인 | +
|---|
+ 이 페이지는 CopilotWatchTower가 실제로 호출하는 대상만 정리한 것입니다. + 테넌트 전체의 Microsoft 365 통신을 허용해야 한다면 아래 공식 문서를 함께 참고하세요. + 상용(Commercial) 클라우드 기준이며, GCC High·DoD·中國 세종 클라우드는 지원 대상이 아닙니다. +
+ +