npm 使用安全令牌

2021-10-29 10:47 更新

每當(dāng)你登錄 npm 時(shí),都會(huì)生成一個(gè)安全令牌。令牌驗(yàn)證你的帳戶(hù),并授予你發(fā)布和訪問(wèn)模塊的權(quán)利。

因?yàn)榱钆浦皇且粋€(gè)十六進(jìn)制字符串,你可以在其他工具(例如持續(xù)集成測(cè)試環(huán)境)中使用該令牌,以便該工具可以使用完成任務(wù)所需的訪問(wèn)權(quán)限運(yùn)行。例如,Travis-CI 提供了一個(gè)可以分配給令牌值的環(huán)境變量。這使Travis-CI能夠以你的 npm 用戶(hù)身份運(yùn)行 npm,包括安裝你有權(quán)訪問(wèn)的私有包的能力。

通過(guò)閱讀本章內(nèi)容,來(lái)了解如何管理安全令牌。

注意:如果你希望將令牌用于測(cè)試和其他特殊目的,則需要額外的步驟。這些步驟不在本章的范圍內(nèi)。

令牌命令能夠讓你:

  • 查看令牌以便于跟蹤和管理。
  • 創(chuàng)建新令牌,指定只讀或完全權(quán)限。
  • 刪除/撤銷(xiāo)令牌。
  • 根據(jù) IP 地址范圍 (CIDR) 限制訪問(wèn)。

如何查看賬戶(hù)上的令牌

要查看與你的帳戶(hù)關(guān)聯(lián)的令牌,請(qǐng)執(zhí)行下列命令:

npm token list

下表解釋了令牌列表。

令牌既可以是只讀的,也可以是 CIDR 白名單的。

如果在個(gè)人資料上啟用了雙因素身份驗(yàn)證,則你已經(jīng)實(shí)施了額外的安全層。

注意:令牌列表顯示了令牌的截?cái)喟姹尽H绻阈枰榭赐暾钆?,?qǐng)查看npmrc 文件。

如何創(chuàng)建新令牌

npm token create [--read-only] [--cidr=list]

在創(chuàng)建新令牌之前,請(qǐng)確定所需的令牌類(lèi)型:

  • 只讀(安裝/分發(fā)權(quán)限)
  • 完全許可(出版權(quán))
  • CIDR白名單(受ip地址限制)

新令牌的默認(rèn)設(shè)置是完全權(quán)限。

  • 只讀令牌允許安裝和分發(fā)。
  • 完全權(quán)限令牌允許安裝、分發(fā)、發(fā)布以及您對(duì)帳戶(hù)擁有的所有權(quán)利
  • CIDR 白名單令牌只能在指定的 IP 地址范圍內(nèi)使用。例如,使用它可以將令牌限制為單個(gè)公司或指定的開(kāi)發(fā)團(tuán)隊(duì)。目前僅支持 IPv4。

當(dāng)令牌為只讀時(shí),它不能用于對(duì)包進(jìn)行更改。如果令牌未明確設(shè)置為只讀,則它具有完全權(quán)限,包括發(fā)布和修改權(quán)限。

如何創(chuàng)建新的完全權(quán)限令牌

要?jiǎng)?chuàng)建新的完整權(quán)限令牌,請(qǐng)鍵入:

npm token create

如果設(shè)置了雙因素身份驗(yàn)證,系統(tǒng)將提示你輸入 npm 密碼,然后是 OTP。npm 將顯示此表:

提示:保存令牌字段的屏幕截圖,因?yàn)檫@將是你查看它的唯一機(jī)會(huì)。

請(qǐng)注意,只讀默認(rèn)為false。

如何創(chuàng)建新的只讀令牌

要?jiǎng)?chuàng)建新的只讀令牌,請(qǐng)輸入下列命令:

npm token create --read-only

如果你設(shè)置了雙因素身份驗(yàn)證,系統(tǒng)將提示你輸入 npm 密碼,然后是 OTP。npm 將顯示此表:

請(qǐng)注意,只讀設(shè)置為true。

如何創(chuàng)建新的受 CIDR 限制的令牌

要限制令牌以使其只能從指定的 IP 地址使用,你可以創(chuàng)建一個(gè) CIDR 限制的令牌。CIDR 是 Classless Inter-Domain Routing 的縮寫(xiě)。該CIDR Wiki頁(yè)面將讓你開(kāi)始。

使用 CIDR 限制可以讓你強(qiáng)制使用令牌的任何人或任何系統(tǒng)物理地或遠(yuǎn)程地在指定的 IP 地址范圍內(nèi)。

    npm token create --[--cidr=list]

例子:

    npm token create --cidr=192.0.2.0/24

如果你設(shè)置了雙因素身份驗(yàn)證,系統(tǒng)將提示你輸入 npm 密碼,然后是 OTP。npm 將顯示此表:

如果你看到這樣的消息:

npm ERR! CIDR whitelist contains invalid CIDR entry: X.X.X.X./YY,Z.Z.. . .



(其中返回的字符串是您輸入的字符串)請(qǐng)確保 CIDR 字符串有效且格式正確。注意:npm 目前只支持 IPv4。

如何創(chuàng)建受 CIDR 限制的只讀令牌

要?jiǎng)?chuàng)建也是只讀的受 CIDR 限制的令牌,請(qǐng)輸入下列命令:

npm token create --read-only --cidr=list

如何撤銷(xiāo)令牌

你可以刪除(撤銷(xiāo))令牌,無(wú)論它是何時(shí)創(chuàng)建的。這使你可以控制你可能希望收回的訪問(wèn)權(quán)限。

刪除令牌的命令是: npm token delete 以下是步驟:

  1. 類(lèi)型?npm token list
  2. 找到與你要?jiǎng)h除的令牌相關(guān)聯(lián)的令牌 ID。
  3. 鍵入“npm token delete 123456”,其中 123456 是令牌 id。注意:令牌的截?cái)喟姹緦⒉黄鹱饔谩?/li>

npm will report 'Removed 1 token'

輸入“npm token list”以確認(rèn)令牌已被刪除。 以下屏幕截圖演示了這些步驟:

注意:屏幕插圖中顯示的所有令牌已被撤銷(xiāo)。

注意:在某些情況下,令牌成功撤銷(xiāo)之前可能會(huì)有長(zhǎng)達(dá)一個(gè)小時(shí)的延遲。npm 目前正在努力使撤銷(xiāo)在所有情況下立即發(fā)生。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)