nextdeveloper / iam
NextDeveloper IAM 包,由 NextDeveloper Generator 生成。
Requires
- php: >=8.2.0
- beyondcode/laravel-websockets: *
- league/fractal: *
- monolog/monolog: *
Requires (Dev)
- illuminate/database: 5.5.*
- illuminate/support: 5.5.*
- illuminate/validation: 5.5.*
- dev-master
- v1.5.12
- v1.5.11
- v1.5.10
- v1.5.9
- v1.5.8
- v1.5.7
- v1.5.6
- v1.5.5
- v1.5.4
- v1.5.3
- v1.5.2
- v1.5.1
- v1.5.0
- v1.4.32
- v1.4.31
- v1.4.30
- v1.4.29
- v1.4.28
- v1.4.27
- v1.4.26
- v1.4.25
- v1.4.24
- v1.4.23
- v1.4.22
- v1.4.21
- v1.4.20
- v1.4.19
- v1.4.18
- v1.4.17
- v1.4.16
- v1.4.15
- v1.4.14
- v1.4.13
- v1.4.12
- v1.4.11
- v1.4.10
- v1.4.9
- v1.4.8
- v1.4.7
- v1.4.6
- v1.4.5
- v1.4.4
- v1.4.3
- v1.4.2
- v1.4.1
- v1.4.0
- v1.3.1
- v1.3.0
- v1.2.28
- v1.2.27
- v1.2.26
- v1.2.25
- v1.2.24
- v1.2.23
- v1.2.22
- v1.2.21
- v1.2.20
- v1.2.19
- v1.2.18
- v1.2.17
- v1.2.16
- v1.2.15
- v1.2.14
- v1.2.13
- v1.2.12
- v1.2.11
- v1.2.10
- v1.2.9
- v1.2.8
- v1.2.7
- v1.2.6
- v1.2.5
- v1.2.4
- v1.2.3
- v1.2.2
- v1.2.1
- v1.2.0
- v1.1.5
- v1.1.4
- v1.1.3
- v1.1.2
- v1.1.1
- v1.1.0
- v1.0.0
- v0.1
- dev-dev
- dev-features/nin
- dev-features/helpers
This package is auto-updated.
Last update: 2024-10-01 00:11:21 UTC
README
这个库提供了一个企业级的基本身份和访问管理功能。这个库的功能尽可能简单。这个库背后的想法是让开发者根据自己的需求来复杂化。
在当今注重安全的数字环境中,身份管理软件是一个关键工具。我们将随着时间的推移添加这些功能。身份管理软件的核心功能通常包括以下内容
- 用户配置:此功能允许管理员及时创建、修改、禁用或删除 IT 系统中的用户帐户和权限。这还包括帐户(或团队)配置。
- 身份验证:身份验证确保用户是他们声称的人。这可能包括多因素身份验证(MFA)、生物识别身份验证或密码管理。
-
- 密码
-
- 一次性电子邮件(OTP)
-
- 一次性短信(OTP)
-
- 谷歌
-
- 脸书
-
- 雅虎
-
- OpenID
-
- 微软
-
- 苹果
-
- GitHub
-
- GitLab
-
- 领英
-
- 推特
-
- Firebase
-
- OneAll
-
- OneLogin
-
- Okta
-
- Auth0
- 授权:通过身份验证验证身份后,系统确定用户可以执行哪些操作、可以访问哪些文件、可以使用哪些资源等。
- 单点登录(SSO):此功能允许用户登录一次,即可访问多种应用程序,无需记住多个密码。
- 联合身份:这允许用户在不同的系统或甚至在不同的组织中使用相同的凭据。
- 目录服务:这些服务存储、组织和提供关于用户和资源的信息。
-
- LDAP
-
- 活动目录
- 基于角色的访问控制(RBAC):此功能使组织内部署的角色基于访问权限的分配成为可能。例如,营销部门的全体员工可以拥有类似的权利。
- 身份治理:这包括定义和实施用户访问策略和规则的工具,以及审计和报告用户访问。
- 身份生命周期管理:这包括从帐户的初始创建到各种更改,再到帐户最终退出的管理流程。
- 密码管理:管理密码、强制执行密码策略等的工具。
- 基于风险的认证(RBA):此功能使用机器学习来评估用户活动的风险水平,并相应地调整认证要求。
- 与其他系统集成:身份管理系统需要与其他系统集成,如 HR 系统,以自动化员工加入、在公司内部调动或离开公司时添加、更改和删除用户的过程。
- 2FA 实现
-
- 短信一次性代码
-
- 电子邮件一次性代码
-
- WhatsApp 一次性代码
-
- Telegram 一次性代码
-
- 各种一次性代码的推送机制
-
- 谷歌身份验证器
-
- 短信
-
这些功能为组织提供了一种有效管理数字身份的方法,有助于确保安全并符合数据隐私法规。
身份验证机制
在这个库中,我们试图支持几乎所有可用的身份验证机制以及安全的授权机制。为此,我们将应用之前提到的各种标准。
密码管理
为了密码管理,我们现在和将来会采用各种不同的做法来提高安全性;
- 使用Argon2id进行密码散列,并使用scrypt作为后备。
- 存储旧密码,以检查用户是否没有使用相同的密码。
- 检查密码质量,即复杂性。
- 如果可用,使用重新散列算法重新散列密码。
开发者注意事项;
- 请仔细查看位于config文件夹下的配置文件。
- 请设置散列算法,并请使用argon2id或scrypt作为后备。
给自己和可能也是你的注意事项?
- https://cheatsheetseries.owasp.org/cheatsheets/Password_Storage_Cheat_Sheet.html#argon2id
- https://wiki.php.net/rfc/argon2_password_hash
令牌管理
我们使用JWT和Laravel Password实现来生成令牌。然而,我们也创建了不同的令牌,以便能够使用客户端信息和位置信息进行安全登录。这就是为什么我们实际上保存了带有位置、IP、客户端信息(用户代理)、JWT令牌的数据哈希,并将此数据哈希返回给用户。当用户发送不带“NDAuth”关键字而是“Bearer”的令牌时,我们理解他们正在使用我们对令牌管理的实现。在这种情况下,我们转到JWT令牌数据库并查看客户端信息。如果我们认为用户是正确的,那么我们返回JWT令牌。
透明的JWT令牌操作
当用户发送我们生成的令牌而不是JWT令牌时,我们需要告诉应用程序用户是有效的,并且是我们正在寻找的用户。有各种方法可以做到这一点,包括但不限于数据库搜索、Redis搜索或在负载均衡器或代理级别的操作。
我们目前实现应用程序级别的查找,但我们将提供负载均衡器级别的查找以减少CPU使用和开销。
- 应用程序查找
- 负载均衡器查找
商业支持
如果您需要任何商业支持,请告知我们。我们目前没有这样的商业计划,但我们将很乐意帮助您在项目上,或是在项目中应用这个库。
想要贡献吗?
当然欢迎您贡献。请发送电子邮件给我们,以便我们能够联系并讨论细节;codewithus@nextdeveloper.com