확장 프로그램 사용 가능 여부. 워크스페이스에서 확장 프로그램 설치 및 관리 UI를 사용할 수 있게 되기 전에도 MDM을 통해 확장 프로그램 정책을 구성할 수 있습니다. 이러한 정책을 배포해도 해당 UI가 활성화되지는 않습니다.
ChatGPT 데스크톱 앱의 인앱 브라우저는 Chromium을 기반으로 하며, Chromium의 엔터프라이즈 정책 프레임워크를 계승합니다. Chrome과 동일한 정책 이름 및 값 형식을 사용합니다. Chrome Enterprise 정책 참조에서 제어 설정과 각 값의 의미를 확인하세요. 정책은 ChatGPT 데스크톱 앱에서 해당 플랫폼, 브라우저 버전, 대상 기능을 지원하는 경우에 적용됩니다.
이미 Chrome을 관리하고 있다면 배포 과정이 익숙할 것입니다. Chrome은 기기 기반 정책 배포와 Google 관리 콘솔을 통한 클라우드 브라우저 관리를 모두 지원합니다. ChatGPT 데스크톱 앱은 현재 MDM, 그룹 정책 또는 구성 관리 도구를 통한 기기 기반 배포를 지원합니다. 이러한 브라우저 정책의 클라우드 관리는 아직 지원되지 않습니다.
동일한 운영체제에서는 정책의 내용과 형식이 그대로 유지됩니다. 주된 차이는 기기에서 정책을 배포하는 위치입니다. Chrome 대신 ChatGPT 데스크톱 앱의 레지스트리 키, 환경설정 도메인 또는 정책 디렉터리를 사용하세요.
플랫폼별 정책 위치
| 플랫폼 | 정책을 읽는 방식 | Chrome 위치 | ChatGPT 데스크톱 앱 위치 |
|---|---|---|---|
| Windows | 레지스트리 값 및 정책 하위 키 | SOFTWARE\Policies\Google\Chrome | SOFTWARE\Policies\OpenAI\Codex |
| macOS | 구성 프로필 내 관리형 환경설정 | com.google.Chrome | com.openai.codex |
| Linux | 필수 정책 디렉터리 내 JSON 파일 | /etc/opt/chrome/policies/managed/ | /etc/opt/codex/policies/managed/ |
ChatGPT 데스크톱 앱의 식별자에는 여전히 Codex 또는 codex가 포함되어 있습니다. 표시된 그대로 사용하세요.
Windows: 기기의 모든 사용자에게 적용하려면 HKEY_LOCAL_MACHINE을, 특정 사용자에게 적용하려면 HKEY_CURRENT_USER를 사용하세요. 정책 값 유형과 목록 하위 키는 Chrome의 레지스트리 형식을 따릅니다. Chrome의 표준 관리 템플릿(ADMX)은 Chrome을 대상으로 합니다. ChatGPT 데스크톱 앱에는 사용자 지정 레지스트리 설정을 사용하세요.
macOS: 정책 키와 해당 plist 값을 com.openai.codex 아래에 관리형 환경설정으로 배포하세요. Chrome 도메인을 대상으로 하는 프로필은 ChatGPT 데스크톱 앱에 적용되지 않습니다.
Linux: JSON 파일을 /etc/opt/codex/policies/managed/에 직접 배포하세요. 사용자가 변경할 수 있는 기본값을 지원하는 정책에는 /etc/opt/codex/policies/recommended/를 사용하세요.
관리자 가이드
정책 예시
아래 예시에서는 두 가지 정책을 구성합니다.
| 정책 | 예시 값 | 적용 결과 |
|---|---|---|
| PasswordManagerEnabled | false | 새 비밀번호를 저장하지 못하게 합니다. 기존에 저장된 비밀번호는 삭제되지 않습니다. |
| CookiesBlockedForUrls | ["https://example.com"] | https://example.com에서 쿠키를 설정하지 못하게 합니다. 사이트 접속 자체를 차단하지는 않습니다. |
이 예시를 조직에 맞는 설정으로 바꾸세요.
확장 프로그램 관리
위에 안내된 ChatGPT 데스크톱 위치에 다음 Chromium 정책 키를 배포하세요. 이 정책들은 지원되는 확장 프로그램 기능에 적용되며, 확장 프로그램 설치 및 관리 UI를 활성화하지는 않습니다.
ExtensionInstallBlocklist — 사용자가 설치할 수 없는 확장 프로그램의 ID 목록입니다. *는 기본적으로 모든 확장 프로그램을 차단합니다. 이미 설치된 확장 프로그램 중 목록에 해당하는 프로그램은 비활성화됩니다.
ExtensionInstallAllowlist — 차단 목록에서 예외로 허용할 ID 목록입니다. 차단 목록이 *인 경우 여기에 지정된 서명된 확장 프로그램을 허용합니다. 해당 확장 프로그램을 설치하지는 않습니다.
ExtensionInstallForcelist — 확장 프로그램 ID 목록입니다. 각 ID 뒤에 선택적으로 ;와 업데이트 매니페스트 URL을 추가할 수 있습니다. 사용자 개입 없이 해당 확장 프로그램을 설치하고 요청된 권한을 부여하며, 사용자가 비활성화하거나 제거하지 못하게 합니다. 차단 목록보다 우선 적용됩니다.
ExtensionSettings — 확장 프로그램 ID를 키로 사용하는 딕셔너리입니다. 기본 설정의 키로는 *를 사용합니다. 설치 모드(예: blocked, allowed, force_installed)를 설정하며, 권한 및 호스트 액세스 제한, 최소 버전 요구, 업데이트 동작 설정, 확장 프로그램 고정도 가능합니다. ID별 설정은 목록 정책보다 우선 적용될 수 있습니다.
ExtensionAllowedTypes — extension, theme 등 설치 가능한 매니페스트 유형의 목록입니다. 강제 설치에도 이 제한이 적용됩니다.
ExtensionInstallSources — Chromium에서 CRX 직접 설치가 지원되는 경우 해당 설치 과정에 사용할 URL 패턴입니다. 다운로드 URL과 설치를 시작한 페이지가 모두 패턴과 일치해야 합니다. 차단 목록은 여전히 우선 적용됩니다.
Windows에서는 목록 정책을 정책 이름의 하위 키에 번호를 이름으로 하는 REG_SZ 값으로 배포하고, ExtensionSettings는 REG_SZ 값에 JSON으로 배포하세요. macOS에서는 com.openai.codex 관리형 환경설정 도메인에서 배열과 딕셔너리를 사용하세요. Linux에서는 관리형 정책 파일에서 JSON 배열과 객체를 사용하세요.
chrome://policy에서 배포된 값과 오류를 확인하세요. 강제 설치된 확장 프로그램이 활성화되어 있다면 가능한 경우 파일럿 인앱 브라우저 워크플로에서 동작을 테스트하세요. 워크스페이스에서 확장 프로그램 설치 및 관리용 인앱 브라우저 UI를 사용할 수 있다면 chrome://extensions/를 확인하고 사용자의 설치 및 관리 과정을 테스트하세요.
Windows: Microsoft Intune 또는 그룹 정책
Microsoft Intune의 경우 다음 내용을 PowerShell 스크립트로 저장하고 플랫폼 스크립트에 추가하세요. 이 스크립트는 기기의 모든 사용자에게 적용되는 필수 정책을 기록합니다.
| $ErrorActionPreference = 'Stop'$policyRoot = 'HKLM:\SOFTWARE\Policies\OpenAI\Codex'if (-not (Test-Path -LiteralPath $policyRoot)) { New-Item -Path $policyRoot -Force | Out-Null}New-ItemProperty -Path $policyRoot -Name PasswordManagerEnabled -PropertyType DWord -Value 0 -Force | Out-Null$cookieKey = "$policyRoot\CookiesBlockedForUrls"if (-not (Test-Path -LiteralPath $cookieKey)) { New-Item -Path $cookieKey -Force | Out-Null}New-ItemProperty -Path $cookieKey -Name '1' -PropertyType String -Value 'https://example.com' -Force | Out-Null |
Microsoft Intune 플랫폼 스크립트에서 로그온한 자격 증명을 사용하여 이 스크립트 실행을 아니요로, 64비트 PowerShell 호스트에서 스크립트 실행을 예로 설정한 다음 파일럿 그룹에 할당하세요. 스크립트가 실행되면 ChatGPT 데스크톱을 다시 시작하고 정책을 확인하세요.
그룹 정책의 경우 스크립트에 표시된 것과 동일한 키, 값 이름, 유형, 값으로 레지스트리 기본 설정 항목을 만들고 파일럿 기기에 적용하세요.
레지스트리 값 형식:
불리언: REG_DWORD를 사용하며 false는 0, true는 1로 지정합니다.
문자열 목록: 정책 이름을 사용하는 하위 키에 번호(1, 2 등)를 이름으로 하는 REG_SZ 값을 지정합니다. 목록을 업데이트할 때 더 이상 적용되지 않는 번호의 값을 제거하세요.
구조화된 정책: 정책 참조 문서의 Windows 인코딩 방식을 따르세요. 예를 들어 ExtensionSettings는 딕셔너리를 JSON 문자열로 REG_SZ 값에 저장합니다.
사용자별 정책은 HKEY_CURRENT_USER 아래의 동일한 경로를 사용하고 대상 사용자의 컨텍스트에서 배포하세요. SYSTEM으로 실행되는 스크립트는 로그인한 사용자의 HKEY_CURRENT_USER에 값을 기록하지 않습니다. 권장 기본값을 지원하는 정책은 ChatGPT 데스크톱 루트 키 아래의 Recommended 하위 키를 사용하세요.
기존 Chrome 정책: 현재 ChatGPT 데스크톱은 각 하이브에서 해당 하이브의 ChatGPT 데스크톱 키를 열 수 없으면 SOFTWARE\Policies\Google\Chrome을 대신 사용합니다. 이 동작은 하이브별로 독립적으로 적용됩니다. 읽을 수 있는 ChatGPT 데스크톱 키가 있으면 비어 있는 키라도 해당 하이브에서 Chrome 정책을 대신 사용하지 않습니다. 누락된 개별 값을 Chrome에서 가져와 채우지도 않습니다. 두 범위를 모두 Chrome과 분리하려면 HKLM과 각 해당 사용자의 HKCU에 읽을 수 있는 ChatGPT 데스크톱 키를 만드세요.
macOS: Jamf Pro 또는 Microsoft Intune
com.openai.codex 도메인에 강제(필수) 관리형 환경설정을 지정하는 구성 프로필을 만드세요. Jamf Pro의 경우 먼저 다음 내용을 com.openai.codex.plist로 저장하세요.
| <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"><plist version="1.0"><dict> <key>PasswordManagerEnabled</key> <false/> <key>CookiesBlockedForUrls</key> <array> <string>https://example.com</string> </array></dict></plist> |
Jamf Pro: 컴퓨터 구성 프로필의 애플리케이션 및 사용자 지정 설정 페이로드를 사용해 plist를 업로드하고 환경설정 도메인을 com.openai.codex로 설정하세요. Jamf의 사용자 지정 설정 안내를 참고하세요.
Microsoft Intune: macOS 템플릿 > 기본 설정 파일 프로필을 만들고 기본 설정 도메인 이름을 com.openai.codex로 설정하세요. 이 업로더에서는 예시의 최상위 <dict> 안에 있는 키/값 내용만 저장하세요. XML 선언, DOCTYPE, <plist> 및 최상위 <dict> 래퍼는 제외하세요. 중첩된 <array>는 그대로 유지하세요. Intune의 기본 설정 파일 안내를 참고하세요.
기타 MDM 도구: 해당 도구의 사용자 지정 관리형 환경설정 워크플로를 사용하거나 이 도메인에 동일한 설정을 적용하는 .mobileconfig 프로필을 배포하세요.
프로필을 파일럿 기기에 할당하고 설치 여부를 확인하세요. ChatGPT 데스크톱을 다시 시작하고 정책을 확인하세요. 관리형 환경설정을 사용하세요. defaults write로 기록한 일반 사용자 환경설정은 정책을 필수로 적용하지 않습니다.
Linux: 구성 관리
Chrome에서와 마찬가지로 Ansible, Puppet, Chef 등의 도구를 사용하여 기기에 JSON 정책 파일을 배포하세요.
필요한 경우 /etc/opt/codex/policies/managed/ 디렉터리를 생성하세요.
구성 관리 도구, 패키지 또는 기기 관리 에이전트를 사용하여 해당 디렉터리에 JSON 파일을 직접 배포하세요.
디렉터리와 파일의 소유자를 root로 설정하고, ChatGPT 데스크톱 앱 사용자는 읽을 수 있지만 신뢰할 수 있는 관리자만 쓸 수 있도록 권한을 설정하세요. 일반적으로 디렉터리에는 0755, 파일에는 0644 권한을 사용합니다.
ChatGPT 데스크톱 앱을 다시 시작하고 정책을 확인하세요.
/etc/opt/codex/policies/managed/browser.json 예시:
| { "PasswordManagerEnabled": false, "CookiesBlockedForUrls": ["https://example.com"]} |
각 정책에서 요구하는 형식에 맞게 JSON 불리언, 숫자, 배열, 객체를 사용하세요. 파일은 managed/ 바로 아래에 배치하세요. 하위 디렉터리는 읽지 않습니다. 여러 파일에 동일한 정책을 중복으로 정의하지 마세요.
정책 확인
배포 도구가 파일럿 기기에 레지스트리 값을 전달하거나, 프로필을 설치하거나, JSON 파일을 전달했는지 확인하세요.
ChatGPT 데스크톱을 종료한 후 다시 여세요. ChatGPT 데스크톱 내에서 인앱 브라우저 탭을 열고 chrome://policy로 이동하세요.
정책 새로고침을 선택하세요. 각 정책의 값, 출처, 범위, 수준, 상태를 확인하세요. 필수 정책 예시의 경우 출처는 플랫폼, 수준은 필수로 표시되고 정책 오류가 없어야 합니다.
해당 브라우저에서 의도한 대로 동작하는지 테스트하세요. 이 페이지에 정책이 표시되면 정책을 읽어 들였다는 뜻입니다. 하지만 이것만으로 해당 기능이 의도한 대로 동작한다고 볼 수는 없습니다.
일부 정책은 정책을 새로고침한 후에도 앱을 완전히 다시 시작해야 합니다. 배포 범위를 확대하기 전에 파일럿 점검을 완료하세요.
정책이 누락된 경우 정책 이름의 철자, 대상 위치, 할당, 읽기 권한을 확인하세요. 오류가 발생하거나 무시된 정책은 값 유형, 지원 플랫폼 및 정책 수준, chrome://policy에 표시된 충돌 정책을 확인하세요.
정책을 변경하거나 제거하려면 해당 정책을 제공한 배포를 업데이트하고 더 이상 필요하지 않은 레지스트리 항목이나 파일 키를 제거하세요. 스크립트 할당을 해제하는 것만으로는 스크립트가 기록한 값이 원래대로 돌아가지 않습니다. ChatGPT 데스크톱을 다시 시작하고 재확인하세요. Windows에서 ChatGPT 데스크톱 루트 키를 제거하면 Chrome 정책을 대신 사용하는 동작이 다시 활성화될 수 있습니다.
