7 个版本 (3 个稳定版)
新增 1.3.2 | 2024年8月10日 |
---|---|
1.3.1 | 2024年8月8日 |
0.2.2 | 2024年5月1日 |
0.2.1 | 2023年6月16日 |
0.1.1 | 2023年1月25日 |
42 在 身份验证 中排名
2,394 每月下载量
在 7 个库中使用 (通过 kanidm_proto)
34KB
908 行
Kanidm - 简单且安全的身份管理
关于
Kanidm 是一个简单且安全的身份管理平台,允许其他应用程序和服务将身份验证和存储身份的挑战卸载到 Kanidm。
本项目的目标是成为一个完整的身份提供者,涵盖最广泛的需求和集成。您在使用 Kanidm 时不应需要任何其他组件(如 Keycloak)——我们已拥有一切所需!
为了实现这一点,我们严重依赖于严格的默认设置、简单的配置和自愈组件。这使得 Kanidm 可以从小型家庭实验室、家庭、小型企业运行到最大的企业需求。
如果您想托管自己的身份验证服务,那么 Kanidm 就适合您!
支持的功能
Kanidm 支持
- 用于安全加密身份验证的 Passkeys(WebAuthn)
- 用于高安全环境的认证 passkeys
- OAuth2/OIDC 身份验证提供者,用于网页 SSO
- 应用门户,允许轻松访问链接的应用程序
- 与 TPM 加密的离线身份验证集成的 Linux/Unix 集成
- 将 SSH 密钥分发到 Linux/Unix 系统
- RADIUS 用于网络和 VPN 身份验证
- 仅读 LDAPs 网关用于旧系统
- 完整的 CLI 工具用于管理
- 使用数据库复制实现的双节点高可用性
- 用户自助服务的 WebUI
文档 / 入门 / 安装
如果您想了解更多关于 Kanidm 能做什么的信息,请阅读我们的文档。
我们还有一套支持指南,说明项目团队将支持的内容。
行为准则 / 道德
所有与项目相关的交互都受我们行为准则的约束。
当我们在开发功能时,我们遵循项目关于权利和道德的指南。
联系方式 / 问题
我们有一个由Matrix驱动的Gitter社区频道,项目成员总是很乐意聊天并回答问题。或者你也可以开启一个新的GitHub讨论。
什么是Kanidm的意思?
Kanidm是由“kani”和“idm”组合而成的。Kani在日语中是螃蟹的意思,与Rust的吉祥物Ferris螃蟹相关。身份管理通常缩写为“idm”,是认证提供商的常用行业术语。
Kanidm的发音为“kar - nee - dee - em”。
与其他服务的比较
LLDAP
LLDAP是一个类似的项目,旨在创建一个小型且易于管理的LDAP服务器,具有网络管理门户。这两个项目都使用了Kanidm LDAP绑定,并有许多相似的想法。
与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提供商。它允许您将WebAuthn层叠到现有的IDM系统中。Keycloak可以作为独立的IDM运行,但通常作为连接到现有LDAP服务器或其他类似系统的组件。
Keycloak需要大量的配置和经验才能部署。它允许对认证工作流程的每个细节进行高度定制,这使得在许多情况下很难开始。
Kanidm不需要Keycloak来提供如OAuth2等服务,并且与Keycloak相比,它以更简单和更正确的方式集成了许多元素。
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是一个多元化的主题,我们鼓励来自不同背景的人为项目做出多种贡献。
在开发服务器时,您应参考最新的提交文档。
依赖项
~4–6MB
~132K SLoC