NPM与外部服务的集成(上)

简介: NPM与外部服务的集成(上)

1、关于访问令牌

注意:您必须使用npm版本5.5.1或更高版本才能使用访问令牌。

在使用API或npm命令行界面(CLI)时,访问令牌是使用用户名和密码向npm进行身份验证的替代方案。 访问令牌是一个十六进制字符串,您可以使用它来进行身份验证,它赋予您安装和/或发布模块的权利。

有两种类型的访问令牌可用:

  • 传统令牌
  • 粒度访问令牌

您可以创建访问令牌,以给予其他工具(如持续集成测试环境)能够访问您的npm包。例如,GitHub Actions提供了存储密钥的能力,例如访问令牌,然后您可以使用这些秘密来进行身份验证。 当您的工作流运行时,它将能够像您一样完成npm任务,包括安装您可以访问的私有包。

您可以使用Web或CLI中的令牌,以最简单的方式使用。你在每个环境中所做的事情都会反映在另一个环境中。

令牌命令允许您:

  • 查看令牌以更轻松地跟踪和管理
  • 创建新的传统令牌
  • 根据IP地址范围(CIDR)限制访问
  • 删除/撤销令牌

1.1 关于传统令牌

传统令牌是以与创建它们的用户相同的权限创建的。运行npm login时,npm CLI会自动生成并使用发布令牌。

有三种不同类型的遗留令牌:

  • 只读:您可以使用这些令牌从注册表下载包。这些令牌最适合安装软件包的自动化和工作流。为了提高安全性,我们建议使用粒度访问令牌。
  • 自动化:您可以使用这些令牌下载软件包并安装新软件包。这些令牌最适合发布新包的自动化工作流。自动化令牌不适用于在npm上执行操作,并且适用于CI/CD工作流。为了提高安全性,我们建议使用粒度访问令牌。
  • 发布:您可以使用这些令牌下载软件包、安装软件包以及更新用户和软件包设置。我们建议将它们用于交互式工作流,如CLI。如果在您的帐户上启用了2FA,发布令牌将需要2FA才能在npm上执行敏感操作。

1.2 关于粒度访问令牌

细粒度访问令牌允许您根据要使用令牌的用途限制对令牌的访问。使用粒度访问令牌,您可以:

  • 限制令牌可以访问哪些包和范围
  • 向特定组织授予令牌访问权限
  • 设置令牌到期日期
  • 基于IP地址范围限制令牌访问
  • 选择只读或读写访问

您可以在npm帐户上创建多达1000个粒度访问令牌。您可以设置令牌的有效期,至少在未来一天内。每个令牌最多可以访问50个组织,最多可以访问50个包、50个作用域或50个包和作用域的组合。访问令牌与用户的权限绑定;因此,它在任何时间点都不能具有比用户更多的许可。如果用户从包或组织撤销了其访问权限,它们的粒度访问令牌也将使其访问从那些包或org中被撤销。

当您给予对组织的令牌访问权限时,令牌只能用于管理组织设置以及与该组织关联的团队或用户。它不给予令牌发布组织管理的包的权利。

2、创建和查看访问令牌

您可以从网站和命令行(CLI)界面创建和查看访问令牌。

2.1 创建访问令牌

在网站上创建传统令牌

注意:为了提高安全性,我们建议使用粒度访问令牌,而不是旧版只读令牌或旧版自动化令牌。

1、在页面的右上角,单击您的个人资料图片,然后单击访问令牌。

2、可以看到最近的访问令牌列表,上面2个按钮,可以用来创建新的令牌,以及删除列表中的令牌,如下所示:

令牌有2中,颗粒度访问令牌,以及经典令牌

3、选择一种类型进行令牌的创建,这里先选择经典令牌的创建,需要输入确认密码才能继续。

4 、输入确认密码之后,弹出如下页面。

name: 需输入访问令牌的名字。

访问令牌的类型:

  • 只读:只读令牌只能用于从注册表下载包。 它将有权限读取您有权访问的任何私有包。 对于正在安装软件包但不发布新软件包的自动化和工作流,建议使用此方法。
  • 自动化:自动化令牌可以下载包并发布新包,但如果您在帐户上配置了双因素身份验证(2FA),则不会强制执行。 您可以在持续集成工作流和其他自动化系统中使用自动化令牌来发布包,即使您无法输入一次性密码。
  • 发布:发布令牌可以代表您执行任何操作,包括下载包、发布包以及更改用户设置或包设置。 如果您的帐户上配置了双因素身份验证,则在使用发布令牌时,您将需要输入一次性密码。 对于CLI等交互式工作流,建议使用此方法。

5、然后单击左下角的“生成令牌”按钮,生成一个新的访问令牌。

6、令牌生成之后,回访令牌列表页面,在列表上面可以看到新生成的令牌。

请确保复制您的令牌。它在这里只显示一次。

在网站上创建粒度访问令牌

1、在页面的右上角,单击您的个人资料图片,然后单击访问令牌。

2、可以看到最近的访问令牌列表,上面2个按钮,可以用来创建新的令牌,以及删除列表中的令牌,如下所示:

令牌有2中,颗粒度访问令牌,以及经典令牌

3、选择一种类型进行令牌的创建,这里先选择粒度访问令牌的创建,需要输入确认密码才能继续。

4 、输入确认密码之后,弹出如下页面。

(1)需要输入令牌的名字(提供一个唯一的名字)

(2)在描述输入框中,输入对该令牌的描述信息

(3)到期时间,选择令牌到期的时间(默认选择3天)。也可以选择其他的,也已选自定义。

(4)在“允许的IP范围”字段中,输入要限制访问令牌的IP地址范围。必须使用CIDR表示法输入IP地址范围。要添加多个允许的IP范围,请单击“添加IP范围”,然后在新文本字段中输入IP范围。

(5)包以及作用域权限(默认禁止访问)

包括3种权限:

  • 禁止访问
  • 只读
  • 可读写

可以选针对哪些包,包括:

  • 当前包以及以后所有的包
  • 可以选择的包,至少选择1个,最大50个

(5)组织的访问权限(默认禁止访问)

包括3种权限:

  • 禁止访问
  • 只读
  • 可读写

摘要信息(根据以上选择生成对应的摘要信息):

根据摘要信息确认无误后,然后单击左下角“生成令牌”,生成粒度访问令牌。

5、令牌生成之后,回访令牌列表页面,在列表上面可以看到新生成的令牌。

使用CLI创建令牌

您可以使用CLI创建具有只读权限或读取和发布权限的令牌。

注意:您无法从CLI创建旧版自动化令牌或粒度访问令牌。您必须使用网站来生成这些类型的令牌。

  • 只读:只允许安装和分发的令牌,但不允许发布或与您的帐户相关的其他权限。
  • 发布:新令牌的默认设置,以及最允许的令牌类型。发布令牌允许安装、分发、修改、发布以及您对帐户拥有的所有权限。

此外,您可以使用CIDR表示法指定令牌仅对特定的IPv4地址范围有效。 令牌仅在从指定的IP地址使用时有效。

1、要创建新令牌,请在命令行上运行:

  • npm token create 用于创建只读和发布令牌
  • npm token create --read-only 用于创建只读令牌
  • npm token create --cidr=[list] 用于CIDR限制的读取和发布令牌。例如npm token create --cidr=192.0.2.0/24
  • npm token create --read-only --cidr=[list]用于CIDR限制的只读令牌

2、出现提示时,输入密码。

3、如果已启用双因素身份验证

,则在出现提示时输入一次性密码。

4、从命令输出中的标记字段复制令牌。

CIDR限制令牌错误

如果您输入的CIDR字符串无效或格式不正确,您将收到类似于下面的错误:

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

查看访问令牌

注意:不会显示完整的令牌,只会显示前四个字符和最后四个字符。您只能在创建后立即查看完整令牌。

在网站上查看令牌

在页面的右上角,单击您的个人资料图片,然后单击访问令牌。

在CLI上查看令牌

要查看与您的帐户关联的所有令牌,请在命令行上运行以下命令:

npm token list
令牌属性
  • id:使用令牌ID来引用命令中的令牌。
  • token:第一个数字是实际token。
  • create:创建令牌的日期。
  • readonly:如果是,则表示只读标记。如果为否,则指示同时具有读取和发布权限的令牌。
  • CIDR白名单:按IP地址限制令牌使用。


相关文章
|
1月前
|
存储 数据可视化 Java
基于MicrometerTracing门面和Zipkin实现集成springcloud2023的服务追踪
Sleuth将会停止维护,Sleuth最新版本也只支持springboot2。作为替代可以使用MicrometerTracing在微服务中作为服务追踪的工具。
91 1
|
2月前
|
Java Maven Windows
使用Java创建集成JACOB的HTTP服务
本文介绍了如何在Java中创建一个集成JACOB的HTTP服务,使Java应用能够调用Windows的COM组件。文章详细讲解了环境配置、动态加载JACOB DLL、创建HTTP服务器、实现IP白名单及处理HTTP请求的具体步骤,帮助读者实现Java应用与Windows系统的交互。作者拥有23年编程经验,文章来源于稀土掘金。著作权归作者所有,商业转载需授权。
使用Java创建集成JACOB的HTTP服务
|
16天前
|
安全 测试技术 数据安全/隐私保护
原生鸿蒙应用市场开发者服务的技术解析:从集成到应用发布的完整体验
原生鸿蒙应用市场开发者服务的技术解析:从集成到应用发布的完整体验
|
1月前
|
存储 Java 开发工具
【三方服务集成】最新版 | 阿里云OSS对象存储服务使用教程(包含OSS工具类优化、自定义阿里云OSS服务starter)
阿里云OSS(Object Storage Service)是一种安全、可靠且成本低廉的云存储服务,支持海量数据存储。用户可通过网络轻松存储和访问各类文件,如文本、图片、音频和视频等。使用OSS后,项目中的文件上传业务无需在服务器本地磁盘存储文件,而是直接上传至OSS,由其管理和保障数据安全。此外,介绍了OSS服务的开通流程、Bucket创建、AccessKey配置及环境变量设置,并提供了Java SDK示例代码,帮助用户快速上手。最后,展示了如何通过自定义starter简化工具类集成,实现便捷的文件上传功能。
【三方服务集成】最新版 | 阿里云OSS对象存储服务使用教程(包含OSS工具类优化、自定义阿里云OSS服务starter)
|
1月前
|
开发框架 .NET API
Windows Forms应用程序中集成一个ASP.NET API服务
Windows Forms应用程序中集成一个ASP.NET API服务
89 9
|
28天前
|
安全 Java 测试技术
ToB项目身份认证AD集成(二):快速搞定window server 2003部署AD域服务并支持ssl
本文详细介绍了如何搭建本地AD域控测试环境,包括安装AD域服务、测试LDAP接口及配置LDAPS的过程。通过运行自签名证书生成脚本和手动部署证书,实现安全的SSL连接,适用于ToB项目的身份认证集成。文中还提供了相关系列文章链接,便于读者深入了解AD和LDAP的基础知识。
|
3月前
|
存储 设计模式 缓存
OpenFeign集成Ribbon负载均衡-过滤和选择服务核心实现
该文章主要介绍了如何在OpenFeign中集成Ribbon以实现负载均衡,并详细分析了Ribbon中服务选择和服务过滤的核心实现过程。文章还涉及了Ribbon中负载均衡器(ILoadBalancer)和负载均衡策略(IRule)的初始化方式。
OpenFeign集成Ribbon负载均衡-过滤和选择服务核心实现
|
2月前
|
编解码 Linux 开发工具
Linux平台x86_64|aarch64架构RTMP推送|轻量级RTSP服务模块集成说明
支持x64_64架构、aarch64架构(需要glibc-2.21及以上版本的Linux系统, 需要libX11.so.6, 需要GLib–2.0, 需安装 libstdc++.so.6.0.21、GLIBCXX_3.4.21、 CXXABI_1.3.9)。
|
3月前
|
域名解析 网络协议 API
【API管理 APIM】APIM集成内部VNet时,常遇见的关于自定义DNS服务问题。
【API管理 APIM】APIM集成内部VNet时,常遇见的关于自定义DNS服务问题。
|
3月前
|
机器人 C# 人工智能
智能升级:WPF与人工智能的跨界合作——手把手教你集成聊天机器人,打造互动新体验与个性化服务
【8月更文挑战第31天】聊天机器人已成为现代应用的重要组成部分,提供即时响应、个性化服务及全天候支持。随着AI技术的发展,聊天机器人的功能日益强大,不仅能进行简单问答,还能实现复杂对话管理和情感分析。本文通过具体案例分析,展示了如何在WPF应用中集成聊天机器人,并通过示例代码详细说明其实现过程。使用Microsoft的Bot Framework可以轻松创建并配置聊天机器人,增强应用互动性和用户体验。首先,需在Bot Framework门户中创建机器人项目并编写逻辑。然后,在WPF应用中添加聊天界面,实现与机器人的交互。
98 0