2022-10-26 00:18:25 +02:00
|
|
|
# Kanidm - Simple and Secure Identity Management
|
2019-07-28 13:25:51 +02:00
|
|
|
|
|
|
|
<p align="center">
|
2021-12-31 00:26:31 +01:00
|
|
|
<img src="https://raw.githubusercontent.com/kanidm/kanidm/master/artwork/logo-small.png" width="20%" height="auto" />
|
2019-07-28 13:25:51 +02:00
|
|
|
</p>
|
|
|
|
|
2022-10-26 00:18:25 +02:00
|
|
|
## About
|
2018-09-29 09:54:16 +02:00
|
|
|
|
2022-12-26 23:52:03 +01:00
|
|
|
Kanidm is a simple and secure identity management platform, which provides services to allow other
|
|
|
|
systems and application to authenticate against. The project aims for the highest levels of
|
|
|
|
reliability, security and ease of use.
|
2018-09-29 09:54:16 +02:00
|
|
|
|
2022-10-26 00:18:25 +02:00
|
|
|
The goal of this project is to be a complete identity management provider, covering the broadest
|
2022-12-26 23:52:03 +01:00
|
|
|
possible set of requirements and integrations. You should not need any other components (like
|
|
|
|
Keycloak) when you use Kanidm. We want to create a project that will be suitable for everything from
|
|
|
|
personal home deployments, to the largest enterprise needs.
|
2019-07-28 14:25:12 +02:00
|
|
|
|
2022-12-26 23:52:03 +01:00
|
|
|
To achieve this we rely heavily on strict defaults, simple configuration, and self-healing
|
|
|
|
components.
|
2022-10-26 00:18:25 +02:00
|
|
|
|
|
|
|
The project is still growing and some areas are developing at a fast pace. The core of the server
|
|
|
|
however is reliable and we make all effort to ensure upgrades will always work.
|
|
|
|
|
|
|
|
Kanidm supports:
|
|
|
|
|
2022-12-26 23:52:03 +01:00
|
|
|
- Oauth2/OIDC Authentication provider for web SSO
|
|
|
|
- Read only LDAPS gateway
|
|
|
|
- Linux/Unix integration (with offline authentication)
|
|
|
|
- SSH key distribution to Linux/Unix systems
|
|
|
|
- RADIUS for network authentication
|
|
|
|
- Passkeys / Webauthn for secure cryptographic authentication
|
|
|
|
- A self service web ui
|
|
|
|
- Complete CLI tooling for administration
|
2022-10-26 00:18:25 +02:00
|
|
|
|
|
|
|
If you want to host your own centralised authentication service, then Kanidm is for you!
|
2018-09-29 09:54:16 +02:00
|
|
|
|
2021-03-25 01:34:29 +01:00
|
|
|
## Documentation / Getting Started / Install
|
|
|
|
|
2022-10-26 00:18:25 +02:00
|
|
|
If you want to deploy Kanidm to see what it can do, you should read the Kanidm book.
|
2021-03-25 01:34:29 +01:00
|
|
|
|
2022-04-28 05:45:48 +02:00
|
|
|
- [Kanidm book (Latest stable)](https://kanidm.github.io/kanidm/stable/)
|
2022-10-26 00:18:25 +02:00
|
|
|
- [Kanidm book (Latest commit)](https://kanidm.github.io/kanidm/master/)
|
2021-03-25 01:34:29 +01:00
|
|
|
|
2022-12-26 23:52:03 +01:00
|
|
|
We also publish
|
|
|
|
[support guidelines](https://github.com/kanidm/kanidm/blob/master/project_docs/RELEASE_AND_SUPPORT.md)
|
2022-10-26 00:18:25 +02:00
|
|
|
for what the project will support.
|
2021-03-25 01:34:29 +01:00
|
|
|
|
2020-08-24 04:15:21 +02:00
|
|
|
## Code of Conduct / Ethics
|
2018-09-29 09:54:16 +02:00
|
|
|
|
2019-09-14 10:51:56 +02:00
|
|
|
See our [code of conduct]
|
2019-07-28 14:25:12 +02:00
|
|
|
|
2019-09-14 10:51:56 +02:00
|
|
|
See our documentation on [rights and ethics]
|
|
|
|
|
2020-08-24 04:15:21 +02:00
|
|
|
[code of conduct]: https://github.com/kanidm/kanidm/blob/master/CODE_OF_CONDUCT.md
|
2023-03-01 04:10:52 +01:00
|
|
|
[rights and ethics]: https://github.com/kanidm/kanidm/blob/master/project_docs/ethics/README.md
|
2019-07-28 14:25:12 +02:00
|
|
|
|
2020-08-24 04:15:21 +02:00
|
|
|
## Getting in Contact / Questions
|
2020-04-25 05:18:19 +02:00
|
|
|
|
2022-12-26 23:52:03 +01:00
|
|
|
We have a [gitter community channel] where we can talk. Firstyear is also happy to answer questions
|
|
|
|
via email, which can be found on their github profile.
|
2020-04-25 05:18:19 +02:00
|
|
|
|
|
|
|
[gitter community channel]: https://gitter.im/kanidm/community
|
|
|
|
|
2022-10-26 00:18:25 +02:00
|
|
|
## Comparison with other services
|
2021-03-25 01:34:29 +01:00
|
|
|
|
2022-10-26 00:18:25 +02:00
|
|
|
### LLDAP
|
2021-03-25 01:34:29 +01:00
|
|
|
|
2022-12-26 23:52:03 +01:00
|
|
|
[LLDAP](https://github.com/nitnelave/lldap) is a similar project aiming for a small and easy to
|
|
|
|
administer LDAP server with a web administration portal. Both projects use the
|
|
|
|
[Kanidm LDAP bindings](https://github.com/kanidm/ldap3), and have many similar ideas.
|
2021-03-25 01:34:29 +01:00
|
|
|
|
2022-10-26 00:18:25 +02:00
|
|
|
The primary benefit of Kanidm over LLDAP is that Kanidm offers a broader set of "built in" features
|
2022-12-26 23:52:03 +01:00
|
|
|
like Oauth2 and OIDC. To use these from LLDAP you need an external portal like Keycloak, where in
|
|
|
|
Kanidm they are "built in". However that is also a strength of LLDAP is that is offers "less" which
|
|
|
|
may make it easier to administer and deploy for you.
|
2019-07-28 14:25:12 +02:00
|
|
|
|
2022-10-26 00:18:25 +02:00
|
|
|
If Kanidm is too complex for your needs, you should check out LLDAP as a smaller alternative. If you
|
|
|
|
want a project which has a broader feature set out of the box, then Kanidm might be a better fit.
|
2021-02-18 00:28:36 +01:00
|
|
|
|
2022-10-26 00:18:25 +02:00
|
|
|
### 389-ds / OpenLDAP
|
2021-02-18 00:28:36 +01:00
|
|
|
|
2022-12-26 23:52:03 +01:00
|
|
|
Both 389-ds and OpenLDAP are generic LDAP servers. This means they only provide LDAP and you need to
|
|
|
|
bring your own IDM configuration on top.
|
2021-02-18 00:28:36 +01:00
|
|
|
|
2022-10-26 00:18:25 +02:00
|
|
|
If you need the highest levels of customisation possible from your LDAP deployment, then these are
|
|
|
|
probably better alternatives. If you want a service that is easier to setup and focused on IDM, then
|
|
|
|
Kanidm is a better choice.
|
2021-02-18 00:28:36 +01:00
|
|
|
|
2022-12-26 23:52:03 +01:00
|
|
|
Kanidm was originally inspired by many elements of both 389-ds and OpenLDAP. Already Kanidm is as
|
|
|
|
fast as (or faster than) 389-ds for performance and scaling.
|
2021-02-18 00:28:36 +01:00
|
|
|
|
2022-10-26 00:18:25 +02:00
|
|
|
### FreeIPA
|
2021-02-18 00:28:36 +01:00
|
|
|
|
2022-10-26 00:18:25 +02:00
|
|
|
FreeIPA is another identity management service for Linux/Unix, and ships a huge number of features
|
|
|
|
from LDAP, Kerberos, DNS, Certificate Authority, and more.
|
2021-02-18 00:28:36 +01:00
|
|
|
|
2022-10-26 00:18:25 +02:00
|
|
|
FreeIPA however is a complex system, with a huge amount of parts and configuration. This adds a lot
|
|
|
|
of resource overhead and difficulty for administration.
|
2018-09-29 09:54:16 +02:00
|
|
|
|
2022-10-26 00:18:25 +02:00
|
|
|
Kanidm aims to have the features richness of FreeIPA, but without the resource and administration
|
|
|
|
overheads. If you want a complete IDM package, but in a lighter footprint and easier to manage, then
|
2023-01-24 00:38:19 +01:00
|
|
|
Kanidm is probably for you. In testing with 3000 users + 1500 groups, Kanidm is 3 times faster for
|
|
|
|
search operations and 5 times faster for modification and addition of entries (your results may
|
2023-01-23 11:04:03 +01:00
|
|
|
differ however, but generally Kanidm is much faster than FreeIPA).
|
2020-08-24 04:15:21 +02:00
|
|
|
|
2022-10-26 00:18:25 +02:00
|
|
|
## Developer Getting Started
|
2020-08-24 04:15:21 +02:00
|
|
|
|
2022-12-26 23:52:03 +01:00
|
|
|
If you want to develop on the server, there is a getting started [guide for developers]. IDM is a
|
|
|
|
diverse topic and we encourage contributions of many kinds in the project, from people of all
|
|
|
|
backgrounds.
|
2019-12-03 07:03:05 +01:00
|
|
|
|
2022-10-26 00:18:25 +02:00
|
|
|
[guide for developers]: https://kanidm.github.io/kanidm/master/DEVELOPER_README.html
|
2019-03-22 01:09:05 +01:00
|
|
|
|
2021-03-25 01:34:29 +01:00
|
|
|
## What does Kanidm mean?
|
2019-02-02 02:44:31 +01:00
|
|
|
|
2022-12-26 23:52:03 +01:00
|
|
|
The original project name was rsidm while it was a thought experiment. Now that it's growing and
|
|
|
|
developing, we gave it a better project name. Kani is Japanese for "crab". Rust's mascot is a crab.
|
2021-04-06 02:08:36 +02:00
|
|
|
IDM is the common industry term for identity management services.
|