一文带你了解IAM(身份与访问管理)

news2024/11/27 23:50:20

一文带你了解IAM(身份与访问管理)

在进入新公司时,领导说让我们改版之后采用IAM的方式进行资源管理,what?IAM是什么?恕我无知了。后来查阅了相关资料才知道。

  • IAM不仅是一种产品,也是大部分产品(特别是B端产品、云产品)中常见的基础功能。
  • 了解IAM之后,在设计账号体系、权限体系时,就会更加得心应手。

1 场景

在介绍IAM是什么之前,请先回想一下你是否遇到过这些场景。

1.1 作为员工/用户:多套账号密码、反复注册登录

  • 多套账号密码:在CRM中是老杨/密码1234,在OA中是小杨/密码9527,由于账号过多,经常忘记账号、密码,或者干脆设置同样的或简单的密码。
  • 反复注册登录:在不同系统/APP中需要反复地输入账号密码登录,或者反复注册、申请审批。

1.2 作为企业管理员:无法很好管理员工权限、追踪员工行为

  • 管理员工的账号/权限费时费力:无法统一管理员工在公司内不同系统的账号/权限,导致员工缺少账号或拥有过多账号/权限;员工入职、转岗、离职时需要手动开通/收回员工的账号。
  • 无法追踪员工的行为:员工的活动分散在企业内各个系统中,无法及时发现、统计员工的行为轨迹,制止风险行为。

1.3 作为开发者:用户数据难打通、反复造轮子

  • 反复造轮子:针对账号体系、注册登录、第三方登录、用户自主服务等常规和基础的功能需要反复开发。
  • 用户数据难打通:即使在公司内部,也容易出现不同系统之间账号体系的设计、口径不一致的情况,导致系统之间的用户数据难以打通。

1.4 IAM解决

IAM可以很好地解决上述的问题,举个例子:

  1. 老王入职新公司,用企业微信扫码加入公司,填写相关资料,加入了后端组。
  2. 老王打开电脑,输入应用门户的地址,使用账号密码或扫码登录,在工作台中就可以看到阿里云、企业微信、Gitlab、禅道、OA等各种平时需要用到的应用。
  3. 点击应用图标即可自动登录进入应用,使用已被自动授权的功能。
  4. 管理人员可以在管理后台统计员工的登录情况、使用情况。

2 IAM定义(Identity and Access Management):身份与访问管理

IAM是 Identity and Access Management 的缩写,即身份与访问管理,或称为身份管理与访问控制。

2.1 目标:让恰当的人和物有恰当的权限访问恰当资源

IAM主要为了达到一个目的:让恰当的人或物,有恰当的权限,访问恰当的资源。其中“人或物”称为主体(Subject),“资源”称为客体(Object)。

2.2 构成:4A或5A

2.2.1 账号(Account)

账号是用户在系统中的数字化载体,用于标识用户并访问受保护的资源。一般每个系统都会有账号,且不同系统的账号数据结构各异。

①问题:身份源、上游账号同步、统一身份源、下游账号同步
  1. 哪些账号/字段代表了用户?这些账号散落在哪里?(身份源)
  2. 我(IAM)如何将这些账号拿过来?(上游账号同步)
  3. 我(IAM)如何关联、映射、使用这些账号数据?(统一身份源)
  4. 哪些系统需要用到这些账号?我怎么把账号给它们?(下游账号同步)
②包含:子模块&协议

账号模块一般会包含如下子模块和协议。

1 子模块:账号、用户组管理;账号生命周期管理、身份源集成同步
  • 账号管理:包括账号的增删改查、启用禁用、重置密码、解锁账号等。
  • 组织/用户组管理:用于将用户和权限关联起来,减少分配权限的操作。
  • 账号生命周期管理:管理员工的入职、升职、调岗、离职等整个生命周期。
  • 身份源集成同步:从上游应用中获取账号数据,将账号、字段进行关联、映射和转换,作为用户唯一标准的数据同步给下游应用。
2 协议:AD/LDAP(轻型目录访问协议)、SCIM(跨域身份管理)
  • AD/LDAP:LDAP(Lightweight Directory Access Protocol,轻型目录访问协议),是一种用于维护树形目录信息和提供访问控制的协议,通常所说的AD/LDAP指的是Windows的AD和Linux的OpenLDAP,是一种树形的数据库,在企业内部常被用于管理用户数据和用户认证。
  • SCIM:SCIM(System for Cross-domain Identity Management,跨域身份管理),是一种简化同步和管理身份数据的协议,常用于公有云应用。
③三户模型:客户、用户、账户

个人习惯将Account视为“账号”。本文中“账号”指的是三户模型中的“用户”,“用户”指的是三户模型中的“客户”。

“三户”的定义下如,供参考:

1 客户

指自然人或者法人。法人一般被称之为企业客户。如无特指,一般客户指个人客户。这个对象的业务主键是证件号(如,身份证)

2 用户

指通过注册的方式进入系统,使用系统提供的服务的实体,也称为登录账户,即用户在系统中登录凭证和个人信息。对应的,法人客户在系统中注册后,被称之为商户。

3 账户

这里特指支付账户,指用户在支付系统中用于交易的资金所有者权益的凭证。

客户是体现了社会域的信息,用户体现了业务域的信息,帐户体现的是资金域的信息。

2.2.2 认证(Authentication)

广义的认证是一种信用保证形式,指第三方公证机构对组织/个人的身份、能力、资质等的认可。

  • 狭义的认证指的是证明“主体是谁”。IAM中的认证指的是狭义的认证,常见于主体申请访问资源时。
1 认证场景:登录、跳转其他应用时SSO、访问敏感资源时二次认证

IAM中有三个主要的场景:

  1. 未认证的主体需要认证——登录
  2. 已认证的主体跳转到其他应用时自动认证——SSO,单点登录
  3. 已认证的主体访问敏感资源时需要二次认证——MFA,多因素认证
2 认证方式:密码、验证码

认证方式是主体证明“我是我”的手段,主要有“所知、所有、所是”三大类认证方式。
(1)所知:主体所知道的信息,比如密码、密保问题等。
(2)所有:主体所拥有的物品,比如短信验证码、数字证书、OTP等。
(3)所是:主体所拥有的生物特征,比如人脸、指纹、签名等。

认证方式和MFA息息相关,MFA(Multi-Factor Authentication,多因素认证)是指使用两种以上的认证来进行身份验证,以提高账号的安全性。

3 认证协议/方案:Cookie、JWT、SAML等

认证协议主要用于在用户、业务系统、身份认证服务之间传递用户信息,告诉业务系统“此用户是谁”。

主流的认证协议/实现单点登录的方案有Cookie、JWT、SAML、CAS、OIDC等,网上有很多资料,暂不赘述。

认证协议通常和单点登录息息相关,单点登录(Single Sign On,SSO)是指在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。

4 认证源

认证源指的是用户在登录当前系统时,由第三方提供认证服务,系统信任第三方的认证结果。例如使用微信登录某APP,就是将微信作为认证源。

IAM一般会根据场景提供AD/LDAP、企业微信/钉钉、OA等不同的认证源方案。

2.2.3 授权(Authorization)

授权是将权力交付给用户或机构代为行使,此时使用户或机构获得访问资源的权限。

1 授权范围(我们以RBAC模型为例,授权其实要做三件事:)
  • 将操作和对象(也称资源)打包为权限,即图中的权限(PRMS,Pemission),包括操作(OPS,Operations)和对象(OBS,Objects)。
  • 将权限分配给主体(狭义的授权),即图中的Permission Assignment和User Assignment。
  • 当主体访问资源时鉴权,鉴别用户的身份和判断权限。
    在这里插入图片描述
2 权限分类:应用、页面、操作、数据权限

权限其实就是将操作和对象打包起来。根据不同场景、不同要求可以有不同的方案。
个人习惯将权限分为以下四种,控制的力度和精细度逐渐增加:

  • 应用权限:控制主体能否访问某个应用,拥有权限就可以访问应用的所有内容,是最粗粒度的访问控制。
  • 页面权限:控制页面层面的元素是否可见,包括页面、菜单、按钮等。做好页面权限一般可以满足企业内部大部分的需求。
  • 操作权限:控制主体能否执行某个操作,例如可改新增、修改、删除等,一般和一个接口对应,在主体请求接口时判断。页面权限和操作权限也被统称为功能权限。
  • 数据权限:控制数据的查询和展示,不同主体看到的数据不同,包括行权限和列权限。如果说功能权限是控制“能不能”,数据权限则是控制“有多少”。
3 权限模型:ACL、MAC、RBAC、ABAC

谈到授权,谈得最多的是权限模型。但需要注意,权限模型只是对权限进行分配的思路和方案,解决“如何将某些权限分配给某些主体”的问题,不是“授权”的全部。

具体使用哪种权限模型,需要根据场景和需求来定,不要拘泥于权限模型而忽略实际业务。

下面介绍常见的几种权限模型:

  • ACL(Access Control Lists,访问控制列表),通过将主体(用户或用户组)直接和权限(包含操作和资源)关联成列表,控制主体能访问哪些资源。
  • DAC(Discretionary Access Control,自主访问控制),可以通过ACL或ACM来实现,特点是拥有权限的主体可以将自身的权限赋予给其他主体或收回,常见于操作系统。
  • MAC(Mandatory Access Control,强制访问控制),通过对主体和客体进行安全标记(密级),来判断主体能否对客体进行相关操作,常见于军工行业。
  • RBAC(Role Based Access Control,基于角色的访问控制),通过引入“角色”的概念,将主体和权限之间的关系解耦,是常见、成熟、有效的权限模型。
  • ABAC(Attribute Based Access Control,基于属性的访问控制),通过动态计算一个或一组属性是否满足某种条件来进行授权判断,常用于公有云,不同场景下形态各异。
4 鉴权

IAM中的“授权模块”还包括“鉴权”的部分,与“分配权限”(Assignment,也常称为授权)相对应。

鉴权是验证主体是否拥有访问客体的权限,完整的鉴权应该包括身份认证和权限决策两部分。

大多数情况下完成身份认证即完成了鉴权,这部分属于“认证”模块(英语中Authentication也有鉴权的意思)。

但在比较复杂的场景,比如使用ABAC、零信任时,当主体访问资源时,决策点PDP需要根据属性或策略规则动态计算主体是否拥有足够的权限,并依据计算结果放行或拦截访问,此部分也应当属于鉴权。
在这里插入图片描述

2.2.4 应用(Application)
  • 狭义的应用只是业务系统在IAM中的映射,即APP ID和APP Secret。
  • 广义的应用是上文中账号、认证、授权的交互对象和载体,一般作为客体来使用。
1 预集成应用

由于应用之间的规范、协议各有差异,IAM往往会预集成一部分应用,提前对接好其账号、认证、授权等模块,方便客户开箱即用。

针对普通用户,IAM一般会提供统一的应用门户(仪表盘),显示企业内自己所拥有权限的所有应用,也可以手动添加自己的应用,方便用户日常使用。
在这里插入图片描述

2.2.5 审计(Audit):记录用户操作,根据操作划分不同日志

审计日志需要记录用户的所有操作,需要记录主体、操作、客体、类型、时间、地点、结果等内容。

根据不同的维度可以划分为不同的操作日志,如操作日志和登录/登出日志、用户日志和管理员日志、业务系统日志和IAM系统日志等。

审计相关的功能,不同规模、不同行业要求不同,通常国外比国内更严格、更强调合规。

2.3 分类

①EIAM:Employee Identity and Access Management(企业内部的IAM)

EIAM是 Employee Identity and Access Management 的缩写,指管理企业内部员工的IAM,主要解决员工使用的便捷性和企业管理的安全性相关问题。

在产品形态上,EIAM有以下特点:

  • 需要集成企业的云应用、本地应用
  • 需要集成不同的身份源
  • SSO和MFA很常用
  • 不同企业所需的访问控制力度不同
②CIAM:Customer Identity and Access Management(用户的IAM)

CIAM是 Customer Identity and Access Management 的缩写,指管理企业外部客户/用户的IAM,主要解决用户数据的打通和开发成本与标准化相关问题。

在产品形态上,CIAM有以下特点:

  • 在用户端常见到的是单点登录和授权登录
  • 提供通用的组件给开发者直接使用
  • 更强调高性能和高可用
③云厂商IAM(也称RAM:Resource and Access Management)

云厂商的IAM,有时称为RAM(Resource and Access Management),指管理企业云资源的IAM,主要用于管理云资源的访问控制。

在产品形态上,云厂商IAM有以下特点:

  • 强调授权的灵活性和企业管理的安全性
  • 支持多种类型的账号进行认证或被调用
  • 一般只关注管理自家的云资源

2.4 开源IAM推荐

2.4.1 Open Identity Platform

Open Identity Platform是一个完整的企业IAM解决方案生态系统。

该项目由几个子项目组成:

OpenAM:开放存取管理

OpenDJ:基于Java技术的LDAPv3兼容目录

OpenIG:开放身份网关。专为会话管理而设计的代理服务器

OpenIDM:这是一个Libre开放身份和访问管理解决方案

开放ICF;开放身份连接器框架:它是一个连接器框架解决方案,充当身份管理和审计/安全管理之间的桥梁

Open Identity Platform下的所有项目都是在GitHub上的开源许可下发布的

2.4.2 Keycloak

Keycloak是红帽赞助的身份和访问管理(IDM)解决方案。这是一个功能丰富的项目,已经为企业级应用做好准备。

Keycloak支持SSO“单点登录”、OpenID Connect、OAuth 2.0、SAML 2.0、社交媒体登录等多种协议,并支持LDAP和Active Directory。它还支持自定义密码策略。

Keycloak的设计目的是在经验丰富的开发人员的帮助下添加新的自定义功能。

Keycloak是同时管理多个Web和移动应用程序的身份、用户权限和策略的最佳解决方案,因为其扩展性极佳。

2.4.3 Apache Syncope

Apache Syncope是用于管理企业数字身份的跨平台解决方案。用Java开发,在Apache 2.0许可下发布。

Apache Syncope提供对身份管理过程的完全控制,包括供应、审计、报告、管理、策略管理、密码管理和密码策略管理,还提供丰富的REST API。

2.4.4 FusionAuth

FusionAuth是一个完整的多平台IAM解决方案,提供身份验证、授权和用户管理,包含多个审计、报告和配置工具。

FusionAuth是一个开源项目,可以免费下载、安装和使用。它拥有一个支持社区,开发人员和企业用户的数量也在稳步增长。

FusionAuth支持安装在Linux、macOS、Windows或docker。

FusionAuth为其企业版提供商业支持计划,其中包括更多企业功能。FusionAuth公司还提供FusionAuth Cloud下的云托管计划,起价为75美元/月。

FusionAuth仍然每天都在更新功能,例如威胁检测。

2.4.5 Aerobase IAM Server

Aerobase作为IAM解决方案基本上是从Keycloak和其他一些开源项目中衍生出来的,但添加了更多功能。它打造了一个新的IAM框架来支持微服务并扩展访问控制功能和隐私监管。

Aerobase服务器功能列表包括单点登录(SSO)、社交登录、双重身份验证、LDAP和Active Directory支持、可定制的用户界面、身份/访问管理和身份代理。

另外还支持OpenID Connect、OAuth2.0和SAML 2。

2.4.6 midPoint Evolveum

midPoint Evolveum是一个用于身份和访问管理的完整开源生态系统,也是本推荐清单中最符合GDPR要求的解决方案。

除了与本清单中的大多数解决方案相似的功能外,midPoint Evolveum还侧重于数据的处理、审计以及提供开箱即用的数据更正和擦除选项。

2.4.7 OpenIAM

OpenIAM是一个开源企业IAM解决方案,有社区版和企业版,附带专业的商业支持。

OpenIAM为身份管理、应用程序、SSO(单点登录)、桌面SSO、API集成控制提供强大的Web访问控制。双因素/多因素身份验证和基于角色的访问控制管理。

OpenIAM还提供了额外的功能,如SSH密钥管理、会话管理、密码保险库和特权帐户安全,以及针对医疗、金融、教育和保险的自定义扩展。

OpenIAM可Microsoft Office 365、G Suite、ServiceNow和Salesforce无缝集成。

虽然OpenIAM是一个免费项目,但需要注册才能下载社区版。

2.4.8 Gluu

Gluu公司提供可扩展的自托管IAM解决方案。他们的产品包括:

Gluu Server,一个IAM解决方案

Gluu Gateway(用于API和网站的身份验证和授权解决方案)

Gluu Casa、Super Gluu(为移动应用程序构建的IAM系统)

oxd(使用OAuth和OpenID保护应用程序的客户端应用程序)

Gluu因其可扩展和集群能力而被定制用于数十个Web和移动应用程序。

oxTrust是来自Gluu的Web应用程序,用于管理身份验证、授权和用户。

Super Gluu 2FA是一款面向移动用户的移动身份验证系统,后端有Gluu服务器。它适用于Android和iOS设备。

2.4.9 ORY

ORY是一家专注于开发开源身份和身份验证管理系统的公司,产品包括:

Explore ORY/Kratos:用户和身份管理解决方案。

Hydra:OAuth 2.0和OpenID Certified OpenID Connect Server。安全访问应用程序和API。

Oathkeeper:身份和访问代理(IAP)。

Keto:访问控制和权限管理服务器。

ORY:作为开源解决方案发布,易于集成并支持多种语言。用Go语言编写的,可确保最佳性能以及与Web和移动应用程序的轻松集成。

Ory提供附带支持的企业许可证(服务收费)。

2.4.10 Soffid

Soffid是一个融合IAM平台,将访问管理(AM)、身份治理(IGA)、身份风险与合规性(IRC)和特权账户管理(PAM)整合到一个综合平台中。

Soffid是一个完整的解决方案,随企业一起成长。企业可以从最简单的访问管理(AM)和单点登录(SSO)功能开始,并随着需求的成熟扩展其IAM环境。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1070151.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

NewStarCTF 2023 WEEK1|PWN ret2text

拖进IDA,查看 int __cdecl main(int argc, const char **argv, const char **envp) {char buf[32]; // [rsp0h] [rbp-20h] BYREFinit();puts("Welcome to NewStar CTF!!");puts("Show me your magic");read(0, buf, 0x100uLL);return 0; } ma…

Golang 程序漏洞检测利器 govulncheck(三):github 集成方法

上一篇文章详细介绍了 Golang 程序漏洞扫描工具 govulncheck 使用的漏洞数据库(Go vulnerability database),本文详细讲解下 Github 项目如何使用 govulncheck。 govulncheck 为 Golang 开发者提供了一种准确可靠的方式来了解程序中可能存在…

matlab高斯消元法求逆

算法实现基本与高斯消元法求解线性方程组相同,同样还是三层循环进行消元和回代,只是增广矩阵的规模由nn1变成了n2n,因此算法复杂度仍然为O(n3)。 A[1,1,2,1;1,2,0,1;1,4,2,1;1,8,2,4]; beye(4); A_b[A,b]; [n,m]size(A_b); for i1:nfor jm:-…

零基础,想做一名网络安全工程师,我可以去哪里学,或者有什么建议?

这应该是全网最全的网络安全扫盲帖了!发CSDN也有一段时间了,经常会有朋友在后台问我各种问题,比如“应该如何选方向”、“网络安全前景如何”、“怎么选适合的安全岗位”等等。于是今天借这个问题来给大家好好说说,如果你是零基础…

C++简单上手helloworld 以及 vscode找不到文件的可能性原因

helloworld #include <iostream>int main() {std::cout << "hello world!" << std::endl;return 0; }输入输出小功能 #include <iostream> using namespace std; /* *主函数 *输出一条语句 */int main() {// 输出一条语句cout << &q…

有关java连接数据库报错的解决方案

Ⅰ 报错信息 在使用java连接数据库时&#xff0c;使用下面代码 Class.forName("com.mysql.jdbc.Driver"); Connection connection DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test1", "test1", "test");出现的报错…

Python3入门教程||Python3 SMTP发送邮件

在Python3 中应用的SMTP&#xff08;Simple Mail Transfer Protocol&#xff09;即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则&#xff0c;由它来控制信件的中转方式。 python的 smtplib 提供了一种很方便的途径发送电子邮件。它对 smtp 协议进行了简单的…

转行自学软件测试,8个月成功上岸(艰难的自学历程)

转行学软件测试&#xff0c;最后找到第一份工作&#xff0c;我一共用了八个月。六个半月学习技术&#xff0c;一个半月找到工作。 自学软件测试到就业并不容易&#xff0c;过程中多次想放弃&#xff0c;学习遇到的问题太多自己解决很麻烦加上网络上各种传达行情不好的信息。现…

uCOSIII实时操作系统 三 移植

目录 uCOSIII简介&#xff1a; 准备工作&#xff1a; 准备基础工程&#xff1a; UCOSIII工程源码&#xff1a; UCOSIII移植&#xff1a; 向基础工程中添加相应的文件夹 向工程中添加分组 常见问题&#xff1a; 下载验证&#xff1a; uCOSIII简介&#xff1a; UCOS-I…

【C++ 学习 ㉖】- 位图详解(哈希扩展)

目录 一、位图的概念 二、位图的实现 2.1 - bitset.h 2.2 - test.cpp 三、位图的应用 3.1 - 例题一 3.2 - 例题二 一、位图的概念 假设有这样一个需求&#xff1a;在 100 亿个整型数字中快速查询某个数是否存在其中&#xff0c;并假设是 32 位操作系统&#xff0c;4 GB…

什么是零日攻击?

零日攻击 1. 什么是零日漏洞2. 什么是零日市场3. 如何将零日漏洞转化为零日攻击4. 零日攻击的主要目标5. 典型零日攻击事件 1. 什么是零日漏洞 零日攻击是指利用零日漏洞对系统或软件应用发动的网络攻击。 零日漏洞也称零时差漏洞&#xff0c;通常是指还没有补丁的安全漏洞。…

代码随想录算法训练营第四十五天 | 1049. 最后一块石头的重量 II、494. 目标和、474.一和零

1049. 最后一块石头的重量 II 视频讲解&#xff1a;动态规划之背包问题&#xff0c;这个背包最多能装多少&#xff1f;LeetCode&#xff1a;1049.最后一块石头的重量II_哔哩哔哩_bilibili 代码随想录 &#xff08;1&#xff09;代码 494. 目标和 视频讲解&#xff1a;动态规划…

10.8号作业

LED三盏灯的交替闪烁 .text .global _start _start: /* 1. led灯的初始化 *//* 1.1 使能GPIOE、DPIOF外设控制器的时钟 */ldr r0, 0x50000A28ldr r1, [r0]orr r1, r1, #(0x3 << 4)str r1, [r0]/* 1.2 设置PE10、PE8、PF10引脚为输出模式 */ldr r0, 0x50006000ldr r1, […

Redis到底是什么?都有哪些特性?看完这一篇就都会了

目录 Redis是什么 Redis的应用场景有哪些&#xff1f; Redis的数据类型及主要特性 Redis的数据结构 简单动态字符串SDS (Simple Dynamic String) SDS的特点 Redis特性1&#xff1a;事务 Redis特性2&#xff1a;发布订阅(Pub/Sub) Redis特性3&#xff1a;Stream Redis…

IntelliJ IDEA :解决 idea 导入项目爆红

IntelliJ IDEA &#xff1a;解决idea导入项目爆红 - LevelCoder的个人页面 - OSCHINA - 中文开源技术交流社区我们在导入一个新的项目到idea的时候,项目明明没有报错,但是会出现出了父包属于正常颜色外,其子包都会爆红色但是不属于项目本身错误,依旧可以正常启动,小编拿到入git…

C语言详细讲解#error与#line如何使用

C语言详细讲解#error与#line如何使用_C 语言_脚本之家 (jb51.net) 这篇文章主要介绍了C语言中#error与#line如何使用&#xff0c;#error与#line虽然在语言里面用的比较少&#xff0c;但是还是有必要了解一下 − 目录 一、#error 的用法二、#line 的用法三、小结 一、#error…

用于现场仪表过程控制的多协议配置工具

一 挑战 在现代生产环境中&#xff0c;我们会使用各种现场设备来记录过程数据&#xff08;从温度传感器到压力、液位和流量计&#xff09;&#xff0c;而这些数据需要通过多种通信协议来进行传输&#xff0c;例如HART、FOUNDATION Fieldbus或PROFIBUS PA。为此&#xff0c;每个…

找不到d3dx9_42.dll,无法继续执行代码怎么办?详解各种解决方法及注意事项

找不到d3dx9_42.dll,无法继续执行代码怎么办&#xff1f;首先&#xff0c;我们来解释一下d3dx9_42.dll文件是什么以及为什么会出现丢失的情况。在Windows操作系统中&#xff0c;d3dx9_42.dll是DirectX 9的一部分&#xff0c;它包含了许多DirectX 9图形函数的实现。这些函数被游…

VMware设置Linux网络

vmware提供了三种网络工作模式&#xff0c;Bridged&#xff08;桥接模式&#xff09;、NAT&#xff08;网络地址转换模式&#xff09;、Host-Only&#xff08;仅主机模式&#xff09;&#xff1a; vmware一般有两个虚拟网卡&#xff0c;VMnet1&#xff08;仅主机模式&#xff…

【Node.js】URL 模块

自动重启服务器的插件nodemon&#xff1a; npm i -g nodemon。或者 node-dev 也可以&#xff1a;npm i -g node-dev。 parse&#xff0c;format&#xff0c;resolve 为旧版写法。 parse import url from url const urlString https://www.baidu.com:443/ad/index.html?id8&a…