OpenAI 인증
OpenAI 모델을 사용할 때 Codex는 두 가지 로그인 방식을 지원합니다:
- 구독으로 이용하려면 ChatGPT로 로그인
- 사용량 기반으로 이용하려면 API 키로 로그인
ChatGPT 데스크톱 앱, Codex CLI, IDE 확장은 로컬 작업에서 두 로그인 방식을 모두 지원합니다. Codex 클라우드를 사용하려면 ChatGPT로 로그인해야 합니다.
로그인 방식에 따라 적용되는 관리자 제어 및 데이터 처리 정책도 달라집니다.
- ChatGPT로 로그인하면 Codex 사용에 ChatGPT 워크스페이스 권한, 역할 기반 접근 제어(RBAC), ChatGPT Enterprise의 데이터 보존 및 레지던시 설정이 적용됩니다.
- API 키를 사용하면 API 조직의 데이터 보존 및 데이터 공유 설정이 적용됩니다.
관리형 워크스페이스에서 인증은 액세스를 제어하는 여러 계층 중 하나입니다. 워크스페이스 멤버십과 프로비저닝에 따라 로그인할 수 있는 사용자가 결정되며, 사용자 라이선스와 워크스페이스 역할에 따라 사용할 수 있는 제품 영역과 기능이 결정됩니다. ChatGPT 데스크톱 앱, Codex CLI 또는 IDE 확장에서 로컬로 작업할 때는 권한 프로필이 에이전트가 기기에서 수행할 수 있는 작업을 제한합니다. 이러한 제어를 계획하려면 그룹 및 프로비저닝과 역할 및 워크스페이스 권한을 참고하세요.
ChatGPT로 로그인
ChatGPT 데스크톱 앱, Codex CLI 또는 IDE 확장에서 ChatGPT로 로그인하면 로그인 과정에서 브라우저 창이 열립니다. 로그인을 마치면 브라우저가 자격 증명을 Codex에 전달합니다.
ChatGPT 웹
ChatGPT를 열어 로그인한 다음 작업할 워크스페이스를 선택하세요. ChatGPT 웹은 브라우저에서 인증된 세션을 유지합니다.
ChatGPT 데스크톱 앱
로그아웃 상태의 화면에서 로그인 계속하기 옵션을 선택한 다음 브라우저에서 로그인 절차를 완료하세요.
Codex CLI
codex login을 실행한 다음 브라우저에서 로그인 절차를 완료하세요.
유효한 세션이 없을 때 사용하는 기본 인증 방식입니다.
IDE 확장
로그아웃 상태의 화면에서 ChatGPT로 로그인 옵션을 선택한 다음 브라우저에서 로그인 절차를 완료하세요.
API 키로 로그인
ChatGPT 데스크톱 앱, Codex CLI 또는 IDE 확장에 API 키로 로그인할 수도 있습니다. API 키는 OpenAI 대시보드에서 발급받으세요.
ChatGPT 데스크톱 앱
로그아웃 상태의 화면에서 다른 방법으로 로그인 옵션을 선택하고 키를 입력한 다음 계속 버튼을 선택하세요.
Codex CLI
stdin을 통해 키를 codex login에 파이프로 전달하세요:
printenv OPENAI_API_KEY | codex login --with-api-key IDE 확장
로그아웃 상태의 화면에서 API 키 사용 옵션을 선택하고 키를 입력한 다음 확인 버튼을 선택하세요.
OpenAI는 API 키 사용량에 표준 API 요금을 적용해 OpenAI Platform 계정으로 청구합니다. API 요금 페이지를 참고하세요.
API 키 인증은 로컬 Codex 워크플로우를 지원하지만, ChatGPT 워크스페이스 액세스나 클라우드 서비스에 의존하는 일부 기능은 제한되거나 사용할 수 없습니다. 플랜별 지원 여부는 기능 제공 여부에서 비교하세요.
Codex CLI와 ChatGPT 데스크톱 앱의 Codex에서 API 키 인증을 사용하면 OpenAI가 선별한 플러그인 중 지원되는 플러그인을 이용할 수 있습니다. 일부 플러그인은 연결 플로우에 지원되지 않는 OAuth 기능이 필요하므로 사용할 수 없습니다. 플러그인 사용을 참고하세요.
API 키로 로그인하면 Codex에는 ChatGPT 플랜에 포함된 크레딧 대신 표준 API 요금이 적용됩니다.
CI/CD 작업처럼 프로그램에서 실행하는 Codex CLI 워크플로우에는 API 키 인증을 사용하세요. 신뢰할 수 없거나 공개된 환경에서 Codex 실행 기능을 노출하지 마세요.
인증 확인 또는 로그아웃
프로필 메뉴를 열어 현재 사용 중인 계정과 워크스페이스를 확인하세요. 해당 브라우저에서 ChatGPT 웹 세션을 종료하려면 로그아웃 옵션을 선택하세요.
프로필 메뉴를 열어 현재 사용 중인 계정 또는 API 키 상태를 확인하세요. 현재 자격 증명을 삭제하려면 로그아웃 옵션을 선택하세요.
codex login status를 실행해 현재 인증 방식을 확인하세요.
저장된 인증 정보를 사용하는 경우 codex logout을 실행해 현재 자격 증명을 삭제하세요.
프로세스에서 워크로드 ID를 선택하면 프로세스 환경이 인증을 제어하므로
Codex는 codex login과 codex logout 명령을 거부합니다.
프로필 메뉴를 열어 현재 사용 중인 계정 또는 API 키 상태를 확인하세요. 현재 자격 증명을 삭제하려면 로그아웃 옵션을 선택하세요.
엔터프라이즈 자동화에 Codex 액세스 토큰 사용
ChatGPT Enterprise 워크스페이스에서는 관리자가 액세스 토큰 권한을 부여해 권한을 받은 멤버가 신뢰할 수 있는 비대화형 Codex 로컬 워크플로우용 Codex 액세스 토큰을 만들도록 할 수 있습니다. 브라우저 로그인 없이 자동화에 ChatGPT 워크스페이스 액세스, ChatGPT에서 관리하는 Codex 사용 권한 또는 엔터프라이즈 워크스페이스 제어가 필요한 경우 액세스 토큰을 사용하세요.
액세스 토큰은 신뢰할 수 있는 스크립트, 스케줄러, 비공개 CI 러너에서 사용하기 위한 것입니다. 일반적인 OpenAI API 호출에는 계속 Platform API 키를 사용하세요.
설정 단계, 권한, 토큰 교체 및 폐기 지침은 액세스 토큰을 참고하세요.
클라우드 플랫폼, CI 시스템 또는 클러스터에서 유효 기간이 짧은 워크로드 토큰을 이미 발급한다면 OpenAI 자격 증명을 저장하는 대신 워크로드 ID 페더레이션을 사용하세요.
환경에서 이미 Codex 액세스 토큰을 제공하는 경우 이를 CLI에 파이프로 전달하세요:
printenv CODEX_ACCESS_TOKEN | codex login --with-access-token Codex 클라우드 계정 보안 강화
Codex 클라우드는 코드베이스와 직접 상호작용하므로 다른 여러 ChatGPT 기능보다 더 강력한 보안이 필요합니다. 다중 인증(MFA)을 활성화하세요.
소셜 로그인 제공업체(Google, Microsoft, Apple)를 사용하는 경우 ChatGPT 계정에서 다중 인증(MFA)을 활성화할 필요는 없지만, 소셜 로그인 제공업체에서 설정할 수 있습니다.
설정 방법은 다음을 참고하세요:
통합 로그인(SSO)으로 ChatGPT에 액세스하는 경우 조직의 SSO 관리자는 모든 사용자에게 다중 인증(MFA)을 의무화해야 합니다.
이메일과 비밀번호로 로그인하는 경우 Codex 클라우드에 액세스하기 전에 계정에 다중 인증(MFA)을 설정해야 합니다.
계정에서 여러 로그인 방식을 지원하며 그중 하나가 이메일과 비밀번호인 경우, 다른 방식으로 로그인하더라도 Codex에 액세스하기 전에 다중 인증(MFA)을 설정해야 합니다.
로그인 정보 캐싱
ChatGPT 또는 API 키로 ChatGPT 데스크톱 앱, Codex CLI 또는 IDE 확장에 로그인하면 로그인 정보가 캐시되어 재사용됩니다. CLI와 확장은 캐시된 로그인 정보를 공유합니다. 둘 중 하나에서 로그아웃하면 다음에 CLI나 확장을 시작할 때 다시 로그인해야 합니다.
Codex는 로그인 정보를 로컬의 ~/.codex/auth.json 평문 파일이나 운영체제별 자격 증명 저장소에 캐시합니다.
ChatGPT로 로그인한 세션에서는 Codex가 사용 중에 토큰이 만료되기 전에 자동으로 갱신하므로, 활성 세션은 일반적으로 브라우저에서 다시 로그인하지 않아도 유지됩니다.
자격 증명 저장
cli_auth_credentials_store 설정으로 Codex CLI의 캐시된 자격 증명 저장 위치를 지정하세요:
# file | keyring | auto | ephemeral
cli_auth_credentials_store = "keyring"file은CODEX_HOME(기본값:~/.codex) 아래의auth.json에 자격 증명을 저장합니다.keyring은 운영체제의 자격 증명 저장소에 자격 증명을 저장하며, 저장소를 사용할 수 없으면 실패합니다.auto는 운영체제의 자격 증명 저장소를 사용할 수 있으면 해당 저장소를 사용하고, 그렇지 않으면auth.json을 사용합니다.ephemeral은 현재 프로세스의 메모리에만 자격 증명을 보관합니다.
전체 config.toml 스키마는
구성 참조 자료를 참고하세요.
관리자는 로컬 인증 요구 사항을 통해
cli_auth_credentials_store 및 chatgpt_base_url 설정을 강제할 수 있습니다.
사용자는 config.toml이나 CLI 재정의 옵션으로 이러한 요구 사항을 재정의할 수 없습니다.
파일 기반 저장소를 사용한다면 ~/.codex/auth.json을 비밀번호처럼 취급하세요.
이 파일에는 액세스 토큰이 들어 있습니다. 파일을 커밋하거나 티켓에 붙여 넣거나
채팅으로 공유하지 마세요.
로그인 방법 또는 워크스페이스 강제 적용
관리형 환경에서는 관리자가 사용자에게 허용되는 인증 방법을 제한할 수 있습니다.
# Only allow ChatGPT login or only allow API key login.
forced_login_method = "chatgpt" # or "api"
# When using ChatGPT login, restrict users to a specific workspace.
forced_chatgpt_workspace_id = "00000000-0000-0000-0000-000000000000"현재 사용 중인 자격 증명이 설정된 제한 조건에 맞지 않으면 Codex는 사용자를 로그아웃시키고 종료됩니다.
이러한 설정은 레거시 관리형 구성으로도 제공할 수 있습니다. 관리자가 강제 적용하는 로그인 제한에 대해서는 로컬에서 인증 관리를 참고하세요.
로그인 진단
codex login을 직접 실행하면 설정된 로그 디렉터리에
전용 codex-login.log 파일이 기록됩니다. 브라우저 로그인이나 기기 코드 인증 실패를 디버깅하거나
지원팀에서 로그인 관련 로그를 요청할 때 이 파일을 사용하세요.
사용자 지정 CA 번들
네트워크에서 기업용 TLS 프록시나 사설 루트 CA를 사용한다면
로그인하기 전에 CODEX_CA_CERTIFICATE에 PEM 번들을 지정하세요.
CODEX_CA_CERTIFICATE가 설정되어 있지 않으면 Codex는 대신 SSL_CERT_FILE을 사용합니다.
동일한 사용자 지정 CA 설정이 로그인, 일반 HTTPS 요청,
보안 WebSocket 연결에 적용됩니다.
export CODEX_CA_CERTIFICATE=/path/to/corporate-root-ca.pem
codex login헤드리스 기기에서 로그인
Codex CLI로 ChatGPT에 로그인할 때 다음과 같은 상황에서는 브라우저 기반 로그인 UI가 작동하지 않을 수 있습니다.
- 원격 또는 헤드리스 환경에서 CLI를 실행하는 경우.
- 로그인 후 Codex가 OAuth 토큰을 CLI에 전달하는 데 사용하는 로컬호스트 콜백이 로컬 네트워크 설정에 의해 차단되는 경우.
이러한 상황에서는 기기 코드 인증(베타)을 우선 사용하세요. 대화형 로그인 UI에서 기기 코드로 로그인을 선택하거나 codex login --device-auth를 직접 실행하세요. 사용 중인 환경에서 기기 코드 인증이 작동하지 않으면 대체 방법 중 하나를 사용하세요.
권장: 기기 코드 인증(베타)
- 개인 계정은 ChatGPT 보안 설정에서, 워크스페이스 관리자는 ChatGPT 워크스페이스 권한에서 기기 코드 로그인을 활성화하세요.
- Codex를 실행 중인 터미널에서 다음 중 한 가지 방법을 선택하세요.
- 대화형 로그인 UI에서 기기 코드로 로그인을 선택하세요.
codex login --device-auth를 실행하세요.
- 브라우저에서 링크를 열고 로그인한 다음 일회용 코드를 입력하세요.
사용 중인 환경에서 기기 코드 로그인을 사용할 수 없다면 아래 대체 방법 중 하나를 사용하세요.
대체 방법: 로컬에서 인증한 후 인증 캐시 복사
브라우저가 있는 컴퓨터에서 로그인 플로우를 완료할 수 있다면 캐시된 자격 증명을 헤드리스 컴퓨터로 복사할 수 있습니다.
- 브라우저 기반 로그인 플로우를 사용할 수 있는 컴퓨터에서
codex login을 실행하세요. ~/.codex/auth.json에 로그인 캐시가 있는지 확인하세요.~/.codex/auth.json을 헤드리스 컴퓨터의~/.codex/auth.json경로로 복사하세요.
~/.codex/auth.json을 비밀번호처럼 취급하세요. 이 파일에는 액세스 토큰이 들어 있습니다. 파일을 커밋하거나 티켓에 붙여 넣거나 채팅으로 공유하지 마세요.
운영 체제가 ~/.codex/auth.json 대신 자격 증명 저장소에 자격 증명을 저장한다면 이 방법을 적용할 수 없을 수도 있습니다.
파일 기반 저장소를 구성하는 방법은 자격 증명 저장을 참고하세요.
SSH로 원격 컴퓨터에 복사하세요.
ssh user@remote 'mkdir -p ~/.codex'
scp ~/.codex/auth.json user@remote:~/.codex/auth.json또는 scp를 사용하지 않는 한 줄 명령어를 실행하세요.
ssh user@remote 'mkdir -p ~/.codex && cat > ~/.codex/auth.json' < ~/.codex/auth.jsonDocker 컨테이너에 복사하세요.
# Replace MY_CONTAINER with the name or ID of your container.
CONTAINER_HOME=$(docker exec MY_CONTAINER printenv HOME)
docker exec MY_CONTAINER mkdir -p "$CONTAINER_HOME/.codex"
docker cp ~/.codex/auth.json MY_CONTAINER:"$CONTAINER_HOME/.codex/auth.json"신뢰할 수 있는 CI/CD 러너에서 이 패턴을 더 고급 방식으로 활용하려면
CI/CD에서 Codex 계정 인증 유지(고급)를 참고하세요.
이 가이드에서는 일반 실행 중에 Codex가 auth.json을 갱신하도록 하고
업데이트된 파일을 다음 작업에 사용할 수 있도록 보관하는 방법을 설명합니다.
자동화에는 여전히 API 키를 기본 인증 방법으로 권장합니다.
대체 방법: SSH로 로컬호스트 콜백 전달
로컬 컴퓨터와 원격 호스트 간에 포트를 포워딩할 수 있다면 Codex의 로컬 콜백 서버(기본값: localhost:1455)에 터널을 연결해 표준 브라우저 기반 플로우를 사용할 수 있습니다.
- 로컬 컴퓨터에서 포트 포워딩을 시작하세요.
ssh -L 1455:localhost:1455 user@remote- 해당 SSH 세션에서
codex login을 실행한 다음, 출력된 주소를 로컬 컴퓨터에서 여세요.
다른 모델 제공업체
구성 파일에서 사용자 지정 모델 제공업체를 정의할 때 다음 인증 방법 중 하나를 선택할 수 있습니다.
- OpenAI 인증: OpenAI 인증을 사용하려면
requires_openai_auth = true로 설정하세요. 그러면 ChatGPT 또는 API 키로 로그인할 수 있습니다. LLM 프록시 서버를 통해 OpenAI 모델에 액세스할 때 유용합니다.requires_openai_auth = true로 설정하면 Codex는env_key를 무시합니다. - 환경 변수 인증:
env_key = "<ENV_VARIABLE_NAME>"로 설정하면 이름이<ENV_VARIABLE_NAME>인 로컬 환경 변수에서 제공업체별 API 키를 가져와 사용합니다. - 인증 없음:
requires_openai_auth를 설정하지 않거나false로 설정하고env_key도 설정하지 않으면 Codex는 해당 제공업체에 인증이 필요하지 않은 것으로 간주합니다. 로컬 모델에 유용합니다.