1个稳定版本
1.2.0 | 2024年5月1日 |
---|
#1110 in 过程宏
用于 kanidmd_lib
15KB
291 行
Kanidm - 简单且安全的身份管理
关于
Kanidm是一个简单且安全的身份管理平台,允许其他应用程序和服务将验证和存储身份的挑战卸载到Kanidm。
本项目的目标是成为一个完整的身份提供者,覆盖最广泛的需求和集成。使用Kanidm时,您不需要任何其他组件(如Keycloak)——我们已拥有一切所需!
为了实现这一点,我们高度依赖严格的默认设置、简单的配置和自我修复组件。这使得Kanidm可以在小型家庭实验室、家庭、小型企业和最大的企业需求中运行。
如果您想托管自己的身份验证服务,那么Kanidm就是您的选择!
支持的功能
Kanidm支持
- WebAuthn的安全密钥,用于安全的加密认证
- 用于高安全环境的认证密钥
- OAuth2/OIDC身份验证提供者,用于Web SSO
- 应用门户,允许轻松访问链接的应用程序
- 与TPM安全离线认证集成的Linux/Unix集成
- SSH密钥分发到Linux/Unix系统
- RADIUS用于网络和VPN认证
- 为旧系统提供只读LDAP网关
- 完整的CLI工具集,用于管理
- 使用数据库复制实现的双节点高可用性
- 用于用户自助服务的WebUI
文档 / 入门 / 安装
如果您想了解更多关于Kanidm能做什么的信息,请阅读我们的文档。
我们还有一套支持指南,说明项目团队将支持的内容。
行为准则/道德规范
所有与项目的互动都受我们行为准则的约束。
在开发特性时,我们遵循项目关于权利与道德的指南。
联系方式/问题
我们有一个由Matrix驱动的gitter社区频道,项目成员总是愿意聊天并回答问题。或者你也可以打开一个新的GitHub讨论。
Kanidm是什么意思?
Kanidm是由“kani”和“idm”组合而成的。Kani在日语中意为蟹,与Rust的吉祥物Ferris蟹有关。身份管理常缩写为“idm”,是认证提供商的常用行业术语。
Kanidm发音为“kar - nee - dee - em”。
与其他服务的比较
LLDAP
LLDAP是一个类似的项目,旨在实现一个小巧且易于管理的LDAP服务器,并附带一个Web管理门户。这两个项目都使用Kanidm LDAP绑定,并且有很多类似的想法。
Kanidm相较于LLDAP的主要优势在于,Kanidm提供了一组更全面的“内置”功能,如OAuth2和OIDC。要从LLDAP使用这些功能,你需要一个外部门户,如Keycloak。然而,这也是LLDAP的优势之一,它提供了“更少”的功能,这可能使管理和部署对你来说更容易。
虽然LLDAP提供了一个简单的WebUI作为主要用户管理前端,但Kanidm目前仅通过其CLI提供管理功能。Kanidm的WebUI针对用户交互进行了定制。
如果Kanidm对于你的需求来说过于复杂,你应该考虑LLDAP作为较小的替代方案。如果你想找到一个功能更全面的默认项目,那么Kanidm将是一个更好的选择。
389-ds / OpenLDAP
389-ds和OpenLDAP都是通用的LDAP服务器。这意味着它们只提供LDAP,你需要自行提供自己的IDM组件——你需要自己的OIDC门户、自助服务的WebUI、用于管理的命令行工具等。如果你需要从LDAP部署中获得尽可能高的定制化程度,那么这些可能是更好的替代方案。如果你需要一个易于设置且专注于IDM的服务,那么Kanidm将是一个更好的选择。
Kanidm最初受到了389-ds和OpenLDAP的许多元素的影响。在性能和可扩展性方面,Kanidm已经与389-ds(或更快)一样快,同时具有更丰富的功能集。
FreeIPA
FreeIPA是另一个针对Linux/Unix的身份管理服务,它提供了从LDAP、Kerberos、DNS、证书颁发机构等的大量功能。
然而,FreeIPA是一个复杂的系统,拥有大量的组件和配置。这增加了大量的资源开销,以及管理和升级的困难。
Kanidm旨在拥有FreeIPA的功能丰富性,但没有资源和管理的开销。如果你需要一个完整的IDM包,但需要轻量级和易于管理的,那么Kanidm可能是你的选择。在测试中,与3000个用户+1500个组相比,Kanidm的搜索操作速度提高了3倍,修改和添加条目的速度提高了5倍(但你的结果可能有所不同,但通常Kanidm比FreeIPA快得多)。
Keycloak
Keycloak是一个OIDC/OAuth2/SAML提供商。它允许你在现有的IDM系统中叠加WebAuthn。Keycloak可以作为独立的IDM运行,但通常作为一个附加到现有LDAP服务器或类似系统的组件。
Keycloak需要大量的配置和经验来部署。它允许对认证工作流程的每一个细节进行高度定制,这在许多情况下使得开始使用它变得更加困难。
kanidm 不需要 Keycloak 提供服务,如 OAuth2,并且与比较而言,以更简单和正确的方式集成了许多元素。
Rauthy
Rauthy 是一个最小的 OIDC 提供者。它支持 WebAuthn,就像 Kanidm 一样——它们实际上使用我们的库来实现这一点!
Rauthy 仅提供 OIDC 的支持,因此无法支持 RADIUS 和 Unix 认证等其他用例。
如果您需要仅 OIDC 的最小提供者,Rauthy 是一个优秀的选择。如果您需要更多功能,Kanidm 将支持这些功能。
Authentik / Authelia / Zitadel
Authentik 是用 Python 编写的 IDM 提供者,Authelia 和 Zitadel 是用 Go 编写的。它们在提供的功能上与 Kanidm 类似,但值得注意的是,它们在 Unix 认证方面的支持较弱,并且不支持与 Kanidm 相同级别的认证策略。值得注意的是,所有这些都缺少 WebAuthn Attestation。
所有三个都使用外部 SQL 服务器,如 PostgreSQL。与 Kanidm 相比,Kanidm 选择了根据我们与企业 LDAP 服务器的经验编写自己的高性能数据库和复制系统,这可能会创建一个潜在的单一故障点,并限制性能。
开发者入门
如果您想为 Kanidm 贡献,有一个开发者入门指南。IDM 是一个多样化的主题,我们鼓励来自所有背景的人为项目做出各种贡献。
在开发服务器时,您应参考最新的提交文档。
依赖项
~260–700KB
~17K SLoC