Ngày 30/9/2026, GitHub thông báo cấu hình trusted publishing cho npm có thêm quyền quản lý dist-tag, tức các nhãn như latest, next hay beta dùng để chỉ bản nào đang được phát hành. Điểm mới là thao tác này chạy bằng thông tin xác thực OIDC dùng một lần, thay vì phải giữ một access token dài hạn chỉ để gắn nhãn sau khi phát hành.
Với người làm phần mềm ở Việt Nam, đây không phải thay đổi làm thay đổi cách viết code, nhưng nó chạm đúng chỗ hay bị bỏ qua nhất trong quy trình phát hành: các token còn nằm rải rác trong hệ thống CI. Bỏ được một token dài hạn là bỏ được một thứ có thể bị lộ và bị lợi dụng để đẩy bản độc hại lên đúng tên gói mà nhiều dự án đang phụ thuộc.
Có gì mới trong bản cập nhật
Theo thông báo, mỗi cấu hình trusted publishing cho npm giờ có thêm một quyền riêng tên Allow npm dist-tag. Quyền này mặc định tắt cho cả cấu hình mới lẫn cấu hình đang có, nên không cấu hình nào tự nhiên được thêm khả năng mới.
Quyền dist-tag tách rời khỏi quyền phát hành trực tiếp. Nghĩa là một cấu hình chỉ dùng để đưa bản lên staging vẫn có thể được cấp thêm quyền quản lý nhãn. Một thao tác dist-tag được cho phép nếu token OIDC gửi tới khớp với bất kỳ cấu hình nào đã bật quyền đó. Cách quản lý dist-tag bằng token cũ vẫn hoạt động như trước, không bị ngắt.
Trước đây, trusted publishing đã bao được việc phát hành và staging, nhưng chưa bao thao tác dist-tag. Hệ quả là những người đã chuyển hẳn sang luồng không dùng token vẫn phải giữ một token chi tiết chỉ để cập nhật nhãn sau khi phát hành hoặc sau khi rollback.
Vì sao thay đổi này đáng quan tâm
Chuỗi cung ứng phần mềm là mảng đang bị tấn công nhiều nhất trong vài năm gần đây. Một token phát hành bị lộ có thể cho phép kẻ khác đẩy một bản độc hại lên đúng tên gói mà hàng nghìn dự án đang phụ thuộc. Càng ít token dài hạn nằm trong hệ thống, rủi ro càng nhỏ.
Thay đổi này cũng giải quyết một phiền toái vận hành. Khi nhãn latest trỏ sai bản, đội phát hành cần sửa ngay. Nếu việc sửa đòi hỏi một token riêng chỉ dùng vài lần mỗi tháng, token đó thường bị bỏ quên và khó luân chuyển. Dùng OIDC dùng một lần giúp thao tác gắn nhãn nằm chung trong luồng đã được xác thực sẵn.
Một điểm nữa đáng chú ý là cách làm này giữ đúng nguyên tắc đặc quyền tối thiểu. Quyền quản lý nhãn không tự động đi kèm quyền phát hành, nên một cấu hình bị lộ cũng không mặc nhiên có thêm khả năng đổi bản đang phát hành cho người dùng cuối.
Ai được lợi, ai chưa cần đổi
Nhóm được lợi rõ nhất là các đội đã dùng trusted publishing cho npm nhưng vẫn phải giữ token để quản lý dist-tag. Nếu bạn đang chạy phát hành từ GitHub Actions và muốn promote một bản lên latest, hoặc cập nhật nhãn next và beta theo lịch, đây là phần nên bật.
Những dự án còn phát hành bằng token cá nhân, hoặc chưa dùng trusted publishing, chưa thấy khác biệt ngay. Quyền mới mặc định tắt, nên không ai bị ảnh hưởng ngoài ý muốn. Các gói nhỏ, ít phát hành, cũng chưa cần vội chuyển nếu token hiện tại vẫn được quản lý cẩn thận và có thời hạn rõ ràng.
Ngược lại, các đội có nhiều gói dùng chung một tài khoản phát hành nên xem đây là dịp rà soát. Càng nhiều gói dùng chung một token, thiệt hại khi token bị lộ càng lớn.
Cách bật quyền quản lý dist-tag
Thao tác nằm trong phần cài đặt trusted publishing của gói. Quy trình gồm ba bước:
1. Mở cài đặt gói trên GitHub
Vào trang gói npm của bạn trên GitHub và tìm mục trusted publishing. Đây là nơi liệt kê các cấu hình đang được phép phát hành bằng OIDC.
2. Bật Allow npm dist-tag cho đúng cấu hình
Chọn những cấu hình cần quản lý nhãn và bật quyền Allow npm dist-tag. Chỉ bật cho cấu hình thật sự cần, không bật tràn lan, vì đây là quyền thay đổi thứ mà người dùng nhận được khi cài gói.
3. Chạy lại luồng phát hành và kiểm tra
Sau khi bật, thử promote một phiên bản lên latest trong môi trường thử để chắc rằng token OIDC khớp cấu hình. Nếu thao tác bị từ chối, kiểm tra lại xem cấu hình có đúng nhánh và đúng workflow hay không.
Đặt cạnh các lựa chọn khác trên site
Với đội phát triển, việc siết token nên nằm trong một thói quen rộng hơn. GitHub và GitHub Copilot là hai công cụ nhiều đội Việt Nam đang dùng hằng ngày trong cùng hệ sinh thái. Phía môi trường chạy npm, bạn có thể tham khảo Node.js, nền tảng phổ biến nhất để chạy các gói JavaScript. Điểm chung của cả ba là đều đòi hỏi quản lý khóa và quyền cẩn thận, nên bật dist-tag bằng OIDC là một mảnh nhỏ nhưng nhất quán trong bức tranh đó.
Nếu đội của bạn chưa quen khái niệm trusted publishing, hãy coi đây là bước nối tiếp tự nhiên sau khi đã chuyển phát hành sang OIDC. Làm từng phần nhỏ, kiểm tra từng phần, sẽ an toàn hơn là đổi hết một lúc.
Nên làm gì bây giờ
Nếu đang giữ token chỉ để quản lý nhãn npm, hãy rà lại danh sách token, bật quyền mới, rồi thu hồi token không còn cần. Nếu chưa dùng trusted publishing, việc đầu tiên vẫn là chuyển phát hành sang OIDC trước, sau đó mới tính tới dist-tag.
Thông tin có thể thay đổi theo thời gian, nên trước khi làm theo, bạn nên mở lại bài thông báo chính thức của GitHub và tài liệu trusted publishers của npm. Với các dự án đang chạy trên nền tảng này, GitHub vẫn là nơi nên kiểm tra cấu hình bảo mật định kỳ.




