19 个版本 (6 个稳定版)

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

身份验证 中排名第 795

Download history 144/week @ 2024-04-25 47/week @ 2024-05-02 6/week @ 2024-05-09 50/week @ 2024-05-16 122/week @ 2024-05-23 177/week @ 2024-05-30 15/week @ 2024-06-06 11/week @ 2024-06-13 2/week @ 2024-07-04 4/week @ 2024-07-11 102/week @ 2024-08-01 261/week @ 2024-08-08

每月下载量 363

MPL-2.0 许可证

520KB
12K SLoC

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蟹有关。身份管理常缩写为“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可能适合您。在测试中,Kanidm在3000个用户+1500个组的情况下,搜索操作速度比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 相比,性能有限。

开发者入门

如果您想为 Kanidm 贡献,这里有开发者 入门指南。IDM 是一个多样化的主题,我们鼓励来自不同背景的人们在项目中做出各种贡献。

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

依赖项

~35–76MB
~1M SLoC