8个版本 (稳定版)

新版本 1.3.2 2024年8月10日
1.3.1 2024年8月8日
1.2.2 2024年5月30日
1.1.0-rc.15-dev2023年10月31日
1.1.0-rc.162024年2月7日

#535认证

Download history 19/week @ 2024-04-22 253/week @ 2024-04-29 19/week @ 2024-05-06 26/week @ 2024-05-13 193/week @ 2024-05-20 211/week @ 2024-05-27 49/week @ 2024-06-03 34/week @ 2024-06-10 14/week @ 2024-06-17 30/week @ 2024-06-24 6/week @ 2024-07-01 16/week @ 2024-07-08 9/week @ 2024-07-15 1/week @ 2024-07-22 10/week @ 2024-07-29 373/week @ 2024-08-05

每月396次下载
4 个库中使用 (3直接)

MPL-2.0 许可证

12KB
291

Kanidm - 简单且安全的身份管理

关于

Kanidm是一个简单且安全的身份管理平台,允许其他应用程序和服务将身份验证和存储身份的挑战卸载到Kanidm。

此项目的目标是成为一个完整的身份提供者,涵盖尽可能广泛的要求和集成。当您使用Kanidm时,您不需要任何其他组件(如Keycloak)——我们已经有您所需的一切!

为此,我们高度依赖严格的默认设置、简单的配置和自修复组件。这使得Kanidm可以从小型家庭实验室、家庭、小型企业一直运行到最大的企业需求。

如果您想托管自己的身份验证服务,那么Kanidm就是您的选择!

支持功能

Kanidm支持

  • 安全加密身份验证的WebAuthn密钥
  • 适用于高安全环境的可验证密钥
  • OAuth2/OIDC身份验证提供者,用于Web SSO
  • 应用程序门户,可轻松访问链接的应用程序
  • 与TPM安全离线身份验证的Linux/Unix集成
  • 将SSH密钥分发到Linux/Unix系统
  • 用于网络和VPN身份验证的RADIUS
  • 为 Legacy 系统 的只读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 / OpenLDAP389-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 相比,Kanidm 以更简单、更正确的方式直接整合了许多元素。

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 是一个多样化的主题,我们鼓励来自各行各业的人对项目做出多种类型的贡献。

在开发服务器时,您应参考最新的提交文档。

依赖项

~62KB