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日

#960 in 身份验证

Download history 21/week @ 2024-05-04 12/week @ 2024-05-11 158/week @ 2024-05-18 230/week @ 2024-05-25 44/week @ 2024-06-01 21/week @ 2024-06-08 11/week @ 2024-06-15 8/week @ 2024-06-22 1/week @ 2024-06-29 1/week @ 2024-07-06 10/week @ 2024-07-13 5/week @ 2024-07-20 8/week @ 2024-07-27 246/week @ 2024-08-03 171/week @ 2024-08-10 13/week @ 2024-08-17

每月 438 次下载
用于 5 个包 (直接使用4个)

MPL-2.0 许可证

18KB
368

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

关于

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

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

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

如果你想要托管自己的身份验证服务,那么 Kanidm 就适合你!

支持功能

Kanidm 支持

  • WebAuthn 的高安全性密码学身份验证的密钥
  • 高安全性环境下的已验证密钥
  • OAuth2/OIDC 身份验证提供者,用于 Web SSO
  • 应用门户,允许轻松访问链接的应用程序
  • 与 TPM 加密离线身份验证的 Linux/Unix 集成
  • 将 SSH 密钥分发到 Linux/Unix 系统
  • RADIUS 用于网络和 VPN 身份验证
  • 仅读 LDAPs 网关用于旧系统
  • 完整的 CLI 工具用于管理
  • 使用数据库复制实现的双节点高可用性
  • 用于用户自助服务的 WebUI

文档 / 入门 / 安装

如果你想了解更多关于 Kanidm 可以做什么,你应该阅读我们的文档。

我们还有一个关于项目团队将支持的内容的支持指南

行为准则 / 道德规范

所有与项目相关的互动都受我们行为准则的约束。

在开发功能时,我们遵循项目关于权利和道德规范的指导方针。

联系方式/问题

我们有一个由Matrix支持的gitter社区频道,项目成员总是乐于聊天并回答问题。或者您也可以创建一个新的GitHub讨论

Kanidm是什么意思?

Kanidm是由“kani”和“idm”组合而成的。Kani在日语中意为蟹,与Rust的吉祥物Ferris the crab有关。身份管理通常缩写为“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 / 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在搜索操作中比FreeIPA快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 是一个多样化的主题,我们鼓励来自各个背景的人对项目进行多种形式的贡献。

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

依赖项

~17–30MB
~461K SLoC