npm 클래식 토큰 폐기, session-based auth 및 CLI 토큰 관리 이제 제공
Source: GitHub Changelog
오늘(2025년 12월 9일) 변경 사항
npm 클래식 토큰 영구 폐기
기존 npm 클래식 토큰을 모두 영구적으로 폐기했습니다. 이제 인증에 사용할 수 없으며, 재생성하거나 복구할 수도 없습니다.
새로운 세션 기반 인증
오늘부터 npm login을 실행하면 장기 토큰 대신 2시간 세션 토큰을 받게 됩니다. 이 세션은 2시간이 지나면 자동으로 만료되며, 계속해서 퍼블리시하려면 재인증이 필요합니다. 기존 토큰과 달리 세션 토큰은 UI나 CLI 토큰 목록에 표시되지 않으며, 백그라운드에서 인증 세션을 유지합니다. 세션 동안 퍼블리시 작업에는 2FA가 강제 적용되어 추가 보안 레이어를 제공합니다.
세분화된 토큰 관리를 위한 새로운 CLI 토큰 관리 도구
npm은 세분화된 액세스 토큰 관리를 전용으로 설계한 새로운 명령줄 도구를 도입합니다. 이 도구를 사용하면 터미널에서 직접 토큰을 생성·목록 조회·폐기할 수 있어, npm 웹사이트를 방문할 필요가 없습니다. 새로운 토큰 관리 명령에 대한 전체 문서는 npm CLI 문서에서 확인할 수 있습니다.
신규 패키지에 대한 기본 2FA 적용
이번 주부터 모든 신규 패키지 퍼블리시 시 2FA 적용이 기본 옵션으로 전환됩니다. 새 패키지를 만들면 패키지 설정에서 2FA가 기본적으로 활성화됩니다. 기존 패키지는 현재 2FA 설정을 유지합니다.
레거시 API 엔드포인트 지원 일시 복구
11월에 호환성 문제를 일으켰던 레거시 API 엔드포인트( /user/org.couchdb.user:) 지원을 일시적으로 복구했습니다. 이 엔드포인트는 이제 npm login과 동일한 2시간 세션 토큰을 생성하며, 퍼블리시 시 2시간마다 재인증이 필요합니다.
이는 전환 기간을 제공하기 위한 임시 조치이며, 해당 레거시 엔드포인트는 곧 폐기될 예정입니다. 중단을 방지하려면 지금 바로 최신 인증 방식으로 마이그레이션할 것을 강력히 권장합니다.
참고: 이 엔드포인트는 주로 Yarn v1 및 v2 사용자를 영향을 미칩니다. 해당 버전을 사용 중이라면 최신 패키지 매니저나 현재 npm 보안 표준을 지원하는 인증 방식으로 업데이트를 고려하십시오.
해야 할 일
아직 npm 클래식 토큰을 사용 중이었다면
npm 클래식 토큰은 오늘부터 작동하지 않습니다. 접근을 복구하려면 다음을 수행하세요:
- 로컬 개발:
npm login을 실행해 새로운 2시간 세션을 생성합니다. 주기적으로 재인증이 필요하지만 보안이 강화됩니다. - CI/CD 워크플로: 새로운 CLI 명령(
npm token create)이나 npmjs.com/settings/~/tokens에서 세분화된 액세스 토큰을 생성합니다. 비대화형 자동화 워크플로를 위해 Bypass 2FA를 활성화하고 적절한 만료 기간을 설정하세요(쓰기 토큰은 최대 90일). 가장 안전한 배포를 위해서는 토큰 생성·관리가 필요 없는 OIDC 신뢰 퍼블리싱 도입을 고려하십시오.
앞으로의 계획
npm 보안을 강화하는 과정에 인내해 주셔서 감사합니다. 이번 변경은 전체 JavaScript 생태계를 보호하면서 여러분이 의존하는 워크플로를 유지하도록 설계되었습니다. 보안 로드맵 및 진행 중인 개선 사항에 대한 자세한 내용은 커뮤니티 토론을 참고하세요.