기업용 Chrome 확장 프로그램 스토어
이는 기업용 비공개 Chrome 확장 스토어의 개념 증명입니다.
이는 Linux 의 Chromium 에서만 테스트되었지만 Active Directory 도메인에 연결된 시스템의 경우 Windows에도 동일한 원칙이 적용되어야 합니다.
참고: "Microsoft® Active Directory® 도메인에 가입되지 않은 Windows 인스턴스의 경우 강제 설치는 Chrome 웹 스토어에 나열된 앱 및 확장 프로그램으로 제한됩니다."
전체 프로젝트를 로컬 폴더에 다운로드합니다.
npm install
실행하여 패키지를 설정합니다.
sudo npm run first-run
실행하여 /etc/chromium/policies/managed/
에 정책 파일을 생성합니다.
(Chromium 인스턴스가 다른 폴더를 사용하는 경우 make/SETTINGS.js
편집해야 할 수도 있습니다)
npm start
실행하여 확장 기능을 빌드하고 간단한 웹 서버를 시작하여 dist/
폴더를 제공합니다.
sudo npm run first-run
실행하면 /etc/chromium/policies/managed/crx-store-policy.json
에 빈 정책 파일이 생성됩니다.
권한 777(모든 사용자에 대한 읽기/쓰기)
이 파일은 아래 npm start
에 의해 채워집니다.
npm start
실행 중
make/crx-store-policy.json
에서 /etc/chromium/policies/managed/crx-store-policy.json
으로 복사됩니다.
다음 정책이 포함되어 있습니다.
작동하지 않으면 make/SETTINGS.js
편집하여 대상 폴더를 다음 중 하나로 변경해야 할 수도 있습니다.
Chrome은 다음 중 하나에 해당하지 않는 한 확장 프로그램을 설치하지 않습니다.
또한 ExtensionInstallBlocklist 정책이 "*"로 설정된 경우:
(이전 문서에서는 정책 이름 ExtensionInstallBlacklist 및 ExtensionInstallWhitelist를 참조합니다.)
npm start
실행하면 src/extensions/
에 두 개의 샘플 확장이 빌드되고 dist/
에 복사됩니다.
npm start
실행하면 포트 5000에서 경량 웹 서버가 호스팅되어 dist/
에서 파일을 제공합니다.
특별한 명령줄 플래그를 사용하여 Chrome을 실행하면 추가 기능을 잠금 해제할 수 있습니다. 그러나 이는 대부분의 기업 사용자에게 현실적인 시나리오가 아닙니다.
src/extensions/
의 샘플 확장을 변경하려면 다음을 수행하세요.
manifest.json
에서 버전 번호를 높이는 것을 잊지 마세요.npm start
다시 실행하여 Binary.crx 파일을 다시 빌드하세요. make/
의 코드는 CommonJS가 아닌 ES 모듈을 사용합니다.
Linux에는 레지스트리가 없으므로 이 프로젝트에서는 대신 정책 파일을 사용합니다.
Windows의 경우 Active Directory의 그룹 정책을 사용해야 합니다.
이에 대한 지침은 온라인에서 널리 제공됩니다.
확장 프로그램을 강제 설치하려면 다음 레지스트리 키와 하위 값을 만듭니다.
사용자 지정 확장 저장소를 활성화하려면 다음 레지스트리 키와 하위 값을 만듭니다.
강제 설치된 확장 프로그램에서 개발자 도구를 활성화하려면(프로덕션에서는 이를 제거하세요):
API enterprise.hardwarePlatform을 활성화하려면:
http://gromnitsky.blogspot.com/2019/04/crx3.html
(crx3-utils 작성자)
https://blog.janestreet.com/chrome-extensions-finding-the-missing-proof/
여기를 참조하세요: https://sites.google.com/site/lock5stat/offline-use/installing-for-all-users
강제 설치된 확장 프로그램은 제한된 추가 API에 액세스할 수 있습니다. 실제로 관심 있는 유일한 추가 API는 enterprise.hardwarePlatform
입니다.
https://github.com/chromium/chromium/blob/master/chrome/common/extensions/api/_permission_features.json에서 파생됨
Chrome은 다양한 확장 API와 함께 제공됩니다. 그 중 다수는 ChromeOS 및/또는 Google 자체 확장 프로그램 및/또는 구성요소로만 제한됩니다. (구성 요소는 브라우저 기능을 확장하는 다른 방법입니다. Chrome 개발자에게만 예약되어 있습니다. 자세한 내용은 chrome://comComponents를 참조하세요.)
알려진 모든 API와 Windows에서 사용 가능한지 여부는 다음과 같습니다.
허가 | Windows의 Enterprise Extension에서 사용 가능 |
---|---|
접근성 기능.수정 | 예 |
접근성 기능.읽기 | 예 |
접근성비공개 | 아니요 |
액티브탭 | 예 |
활동로그비공개 | 아니요 |
자동 채우기AssistantPrivate | 아니요 |
자동 채우기비공개 | 아니요 |
자동 테스트비공개 | 아니요 |
배경 | 예 |
북마크 | 예 |
점자디스플레이비공개 | 아니요 |
브라우징데이터 | 예 |
인증서 제공자 | 아니요 |
크롬비공개 | 아니요 |
chromeosInfo비공개 | 아니요 |
클립보드읽기 | 예 |
클립보드쓰기 | 예 |
commandLinePrivate | 아니요 |
명령.접근성 | 아니요 |
콘텐츠 설정 | 예 |
컨텍스트메뉴 | 예 |
쿠키 | 예 |
충돌보고서비공개 | 아니요 |
암호화폐비공개 | 아니요 |
디버거 | 예 |
개발자비공개 | 아니요 |
개발자 도구 | 예 |
선언적 콘텐츠 | 예 |
데스크탑캡처 | 예 |
데스크탑캡처비공개 | 응, 하지만 쓸모없어 |
문서스캔 | 아니요 |
다운로드 | 예 |
다운로드.열기 | 예 |
다운로드.선반 | 예 |
enterprise.device속성 | 아니요 |
enterprise.networking속성 | 아니요 |
enterprise.hardware플랫폼 | 예 |
enterprise.platformKeys | 아니요 |
enterprise.platformKeysPrivate | 아니요 |
enterprise.reportingPrivate | 아니요 |
실험적인 | 응, 하지만 쓸모없어 |
파일브라우저 핸들러 | 아니요 |
파일 관리자 개인 | 아니요 |
파일시스템 제공자 | 아니요 |
글꼴설정 | 예 |
gcm | 예 |
지리적 위치 | 예 |
역사 | 예 |
신원 | 예 |
신원.이메일 | 예 |
신원비공개 | 아니요 |
유휴 테스트 | 응, 하지만 쓸모없어 |
imageWriter비공개 | 아니요 |
입력 | 예(Mac 아님) |
inputMethodPrivate | 아니요 |
언어설정비공개 | 아니요 |
런처검색 제공자 | 아니요 |
잠금창전체 화면비공개 | 아니요 |
로그인 | 아니요 |
로그인화면저장 | 아니요 |
로그인ScreenUi | 아니요 |
로그인상태 | 아니요 |
웹캠비공개 | 아니요 |
네트워킹.캐스트비공개 | 아니요 |
관리 | 예 |
mediaPlayer비공개 | 아니요 |
미디어라우터비공개 | 아니요 |
mdns | 아니요 |
알림 | 예 |
에코프라이빗 | 아니요 |
페이지캡처 | 예 |
비밀번호비공개 | 아니요 |
플랫폼키 | 아니요 |
플러그인 | 예 - TODO 이것은 무엇입니까? |
인쇄 | 아니요 |
인쇄측정항목 | 아니요 |
은둔 | 예 |
프로세스 | 아니요 |
대리 | 예 |
리소스비공개 | 아니요 |
rtc비공개 | 아니요 |
safeBrowsing비공개 | 아니요 |
스크립팅 | 예(m3) |
찾다 | 예 |
세션 | 예 |
설정비공개 | 아니요 |
서명된 장치 | 아니요(어쩌면 미래에) |
시스템비공개 | 아니요 |
탭그룹 | 예(m3) |
탭 | 예 |
탭캡처 | 예 |
터미널개인 | 아니요 |
topSites | 예 |
일시적인 배경 | 아니요(아마도 미래) |
ㅜㅜ | 예 |
tts엔진 | 예 |
사용자비공개 | 아니요 |
벽지 | 아니요 |
벽지비공개 | 아니요 |
웹내비게이션 | 예 |
webrtc오디오비공개 | 아니요 |
webrtcDesktopCapturePrivate | 아니요 |
webrtc로깅비공개 | 아니요 |
webrtcLoggingPrivate.audioDebug | 아니요 |
웹스토어비공개 | 아니요 |
파일 끝.