
kanidm v1.11.2
Самостоятельно размещаемая платформа управления идентификацией, предоставляющая WebAuthn-ключи доступа (passkeys), единый вход OAuth2/OIDC (SSO), распространение SSH-ключей и интеграцию RADIUS и LDAP для современной аутентификации.
Kanidm — простое и безопасное управление идентификацией

О проекте
Kanidm — это простая и безопасная платформа управления идентификацией, позволяющая другим приложениям и сервисам переложить задачу аутентификации и хранения учётных записей на Kanidm.
Цель проекта — стать полноценным поставщиком идентификации, охватывающим максимально широкий набор требований и интеграций. Вам не понадобятся никакие другие компоненты (например, Keycloak) при использовании Kanidm — у нас уже есть всё, что вам нужно!
Для достижения этой цели мы во многом полагаемся на строгие настройки по умолчанию, простую конфигурацию и самовосстанавливающиеся компоненты. Это позволяет Kanidm поддерживать небольшие домашние лаборатории, семьи, малый бизнес и вплоть до потребностей крупнейших предприятий.
Если вы хотите разместить собственную службу аутентификации, Kanidm — для вас!
Поддерживаемые функции
Kanidm поддерживает:
- Passkeys (WebAuthn) для безопасной криптографической аутентификации
- Аттестованные passkeys для сред с высокими требованиями безопасности
- Портал приложений, обеспечивающий лёгкий доступ к связанным приложениям
- Поставщик аутентификации OAuth2/OIDC для SSO
- Доступ к сервисам OAuth2/OIDC с помощью служб обмена токенами
- Интеграция с Linux/Unix с автономной аутентификацией, защищённой TPM
- Распространение SSH-ключей на системы Linux/Unix
- RADIUS для сетевой и VPN-аутентификации
- Шлюз LDAPs только для чтения для устаревших систем
- Полный набор CLI-инструментов для администрирования
- Высокая доступность из двух узлов с использованием репликации базы данных
- Веб-интерфейс для самостоятельного обслуживания пользователей
- И многое другое!
Документация / Начало работы / Установка
Если вы хотите узнать больше о возможностях Kanidm, вам следует прочитать нашу документацию.
У нас также есть набор правил поддержки, описывающих, что команда проекта будет поддерживать.
Кодекс поведения / Этика
Все взаимодействия с проектом регулируются нашим [кодексом поведения].
При разработке функций мы следуем руководству проекта по [правам и этике].
Мы поддерживаем [политику использования AI/LLM] для взаимодействия с этим проектом.
Связь / Вопросы
У нас есть канал сообщества на базе Matrix, где участники проекта всегда рады пообщаться и ответить на вопросы. Кроме того, вы можете открыть новое обсуждение на GitHub.
Что означает Kanidm?
Kanidm — это слово-портманто из 'kani' и 'idm'. Kani по-японски означает краб, что связано с талисманом Rust — Феррисом крабом. Управление идентификацией часто сокращают до 'idm', и это распространённый отраслевой термин для поставщиков аутентификации.
Kanidm произносится как «кар — ни — ди — эм».
Гимн Kanidm
Гимн — это популярная песня, особенно рок-песня, которая, как считается, выражает настроения или чувства, связанные с периодом или социальной группой.
Гимн Kanidm — Crab Rave - Noisestorm
Сравнение с другими сервисами
LLDAP
LLDAP — похожий проект, ориентированный на предоставление небольшого и простого в администрировании LDAP-сервера с веб-порталом администрирования. И LLDAP, и Kanidm используют привязки Kanidm LDAP и разделяют многие общие идеи проектирования.
Основное преимущество Kanidm перед LLDAP — более широкий встроенный набор функций, включая нативную поддержку OAuth2 и OIDC. В отличие от этого, LLDAP требует интеграции с внешним порталом, таким как Keycloak, для предоставления этих функций. Однако простота LLDAP — меньшее количество функций — может сделать его более простым в развёртывании и управлении для определённых случаев использования.
В то время как LLDAP предоставляет простой веб-интерфейс в качестве основного интерфейса управления пользователями, Kanidm в настоящее время предлагает административные функции в основном через свой CLI, а его веб-интерфейс больше предназначен для взаимодействия с пользователями, чем для администрирования.
Если Kanidm кажется вам слишком сложным, LLDAP — меньшая и более простая альтернатива. Но если вы хотите более функциональное решение «из коробки», Kanidm, скорее всего, подойдёт лучше.
389-ds / OpenLDAP
И 389 Directory Server (389-ds), и OpenLDAP являются универсальными LDAP-серверами. Они предоставляют только функции LDAP, поэтому вам придётся самостоятельно обеспечивать компоненты управления идентификацией (IDM) — такие как портал OIDC, веб-интерфейс самообслуживания, инструменты командной строки для администрирования и многое другое.
Если вам требуется максимальная настройка вашего LDAP-развёртывания, 389-ds или OpenLDAP могут быть лучшим выбором. Однако если вы предпочитаете простой в настройке сервис, ориентированный именно на IDM, Kanidm — превосходный вариант.
Kanidm черпает вдохновение как из 389-ds, так и из OpenLDAP и уже соответствует или превосходит 389-ds по производительности и масштабируемости службы каталогов, предлагая при этом более богатый набор функций.
FreeIPA
FreeIPA — это комплексная система управления идентификацией для Linux/Unix, объединяющая множество сервисов, включая LDAP, Kerberos, DNS и центр сертификации.
Однако FreeIPA сложен, состоит из многочисленных компонентов и конфигураций, что приводит к более высокому потреблению ресурсов и административным издержкам при установке и обновлении.
Kanidm стремится предложить такую же функциональность, как FreeIPA, но с меньшим потреблением ресурсов и более простым управлением. В тестах с 3000 пользователей и 1500 групп Kanidm продемонстрировал примерно в три раза более быстрые операции поиска и в пять раз более быстрые операции изменения и добавления (результаты могут варьироваться, но Kanidm обычно превосходит FreeIPA по скорости).
Если вам нужно полноценное решение IDM, которое проще управлять и которое более эффективно, Kanidm стоит рассмотреть.
Keycloak
Keycloak — это поставщик OIDC/OAuth2/SAML, который может добавлять WebAuthn- аутентификацию поверх существующих систем IDM. Хотя он может работать как самостоятельное решение IDM, обычно он используется вместе с LDAP-сервером или аналогичным внутренним компонентом.
Развёртывание Keycloak требует значительной настройки и опыта. Его обширные возможности настройки процессов аутентификации могут сделать первоначальную настройку сложной.
Kanidm не требует Keycloak для предоставления OAuth2 и других сервисов. Он включает многие из этих возможностей в более простой и оптимизированный способ прямо «из коробки».
Rauthy
Rauthy — минимальный поставщик OIDC, поддерживающий WebAuthn, использующий некоторые из тех же библиотек, что и Kanidm.
Однако Rauthy сосредоточен исключительно на OIDC и не поддерживает дополнительные сценарии использования, такие как RADIUS или аутентификация Unix.
Если вам нужен минимальный поставщик только для OIDC, Rauthy — отличный выбор. Но если вам требуется более широкий набор функций, Kanidm — лучший вариант.
Authentik / Authelia / Zitadel
Authentik (написан на Python), Authelia и Zitadel (оба написаны на Go) — это поставщики IDM, во многом похожие на Kanidm. Однако все три имеют более слабую поддержку аутентификации Unix и не предоставляют расширенных политик аутентификации или возможностей WebAuthn Attestation, которые предлагает Kanidm.
Кроме того, эти проекты полагаются на внешние SQL-базы данных, такие как PostgreSQL, что может создавать потенциальные единые точки отказа и узкие места производительности. В отличие от этого, Kanidm использует собственную высокопроизводительную базу данных и систему репликации, разработанную на основе опыта работы с корпоративными LDAP-серверами.
Начало работы для разработчиков
Если вы хотите внести вклад в Kanidm, есть руководство для начинающих [разработчиков]. IDM — разнообразная тема, и мы поощряем вклад различных видов в проект от людей любого происхождения. Обратите внимание, что мы не принимаем контент, созданный AI, в качестве вклада.
При разработке сервера вам следует обращаться к документации последнего коммита.