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日

#939 in 认证

Download history 261/week @ 2024-04-29 23/week @ 2024-05-06 28/week @ 2024-05-13 199/week @ 2024-05-20 211/week @ 2024-05-27 49/week @ 2024-06-03 33/week @ 2024-06-10 18/week @ 2024-06-17 37/week @ 2024-06-24 5/week @ 2024-07-01 17/week @ 2024-07-08 14/week @ 2024-07-15 3/week @ 2024-07-22 13/week @ 2024-07-29 384/week @ 2024-08-05 42/week @ 2024-08-12

443 每月下载量
5 个库中使用 (直接使用3个)

MPL-2.0 许可证

4KB
54

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 the crab有关。身份管理通常简称为“idm”,是认证提供者的通用行业术语。

Kanidm的发音为“kar - nee - dee - em”。

与其他服务的比较

LLDAP

LLDAP是一个旨在实现小型且易于管理的LDAP服务器以及Web管理门户的类似项目。这两个项目都使用了Kanidm LDAP绑定,并且有很多类似的想法。

Kanidm相对于LLDAP的主要优势是它提供了一组更广泛的“内置”功能,如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提供者。它允许您将WebAuthn添加到现有的IDM系统中。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 是一个多样化的主题,我们鼓励来自所有背景的人对该项目做出多种贡献。

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

依赖项

~43KB