1、关于双因素身份验证
今天收到一封邮件,提示我的npm账号没有开启双因素身份验证。
首先,我们说一下双因素身份验证,也称双重验证,或者二元验证。启用2FA后,在对您拥有写访问权限的帐户或包执行某些操作之前,系统将提示您进行第二种形式的身份验证。根据您的2FA配置,系统将提示您使用安全密钥或基于时间的一次性密码(TOTP)进行身份验证。
注意:双重身份验证为您的帐户提供了最佳的安全性,可以抵御攻击者。我们强烈建议您在注册后尽快在您的帐户上启用2FA。
2、NPM上的双因素身份验证
npm上的双因素身份验证可以启用授权和写入,或仅授权。
2.1 授权和写入
默认情况下,为授权和写入启用2FA。我们将为某些授权操作以及写入操作请求第二种形式的身份验证。
动作 | CLI命令 |
登录npm | npm login |
更改配置文件设置(包括密码) | npm profile enable-2fa auth-and-writes |
更改用户帐户的2FA模式 | npm profile enable-2fa auth-and-writes |
为您的用户帐户禁用2FA | npm profile enable-2fa auth-and-writes |
创建令牌 | npm token revoke |
撤销令牌 | npm token revoke |
发布包 | npm publish |
取消发布包 | npm unpublish |
弃用软件包 | npm deprecate |
更改包可见性 | npm access grant/revokenpm access grant/revoke |
更改用户和团队包访问权限 | npm access grant/revoke |
变更包2FA要求 | npm access grant/revoke |
2.2 仅限授权
如果仅为授权启用2FA。我们将仅为某些授权操作请求第二种形式的身份验证。
动作 | CLI命令 |
登录npm | npm login |
更改配置文件设置(包括密码) | npm profile enable-2fa auth-and-writes |
更改用户帐户的2FA模式 | npm profile enable-2fa auth-and-writes |
为您的用户帐户禁用2FA | npm profile enable-2fa auth-and-writes |
创建令牌 | npm token revoke |
撤销令牌 | npm token revoke |
3、先决条件
- 将npm客户端更新到5.5.1或更高版本。
- 要配置安全密钥,需要支持WebAuthn功能的现代浏览器。这将允许您配置一个生物识别设备,如苹果Touch ID,Face ID 或者Windows HelloWindows Hello 等等。
- 要配置TOTP,您需要安装一个可以生成OTP的验证器应用程序,如Authy,Google Authenticator或者Microsoft Authenticator 在您的移动终端上。
4、从网站配置2FA
4.1 启用2FA
1、在npm的登录页面,输入用户名和密码,然后点击“Sign in” 按钮。
未启用双重身份验证之前,会要求输入一次性密码,如下如所示:
2、在页面右上角,单击个人资料图像,但然后单击“Account”
3、在页面找到“Two-Factor Authentication”区域,单击“Enable 2FA”
4、出现“Security key” 和 “Authentication app”,选择第一个安全密钥,继续
5、添加安全密钥,输入有一个安全密钥的名字,然后再点击“Add security key”