Kanidm: A simple, secure, and fast identity management platform
Find a file
dependabot[bot] dd973eb0ec
Bump actions/checkout from 2 to 3 (#898)
Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 3.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-05 17:33:53 +10:00
.github Bump actions/checkout from 2 to 3 (#898) 2022-07-05 17:33:53 +10:00
artwork Kani artwork updates - now with stickers (#877) 2022-07-02 16:36:05 +10:00
designs Add design session logout/expiry (affects oauth2) (#815) 2022-06-22 18:32:26 +10:00
ethics 468 valueset abstraction (#538) 2021-07-30 09:45:25 +10:00
examples Python module and rewritten RADIUS integration (#826) 2022-06-20 20:16:55 +10:00
kanidm_book docs updates and UI cleanup (#874) 2022-07-05 11:38:25 +10:00
kanidm_client Bump serde from 1.0.137 to 1.0.138 (#881) 2022-07-04 09:05:52 +10:00
kanidm_proto Bump serde from 1.0.137 to 1.0.138 (#881) 2022-07-04 09:05:52 +10:00
kanidm_rlm_python Bump pylint from 2.14.3 to 2.14.4 in /kanidm_rlm_python (#882) 2022-07-04 09:06:46 +10:00
kanidm_tools Building kanidm cli in docker, disabling ARM kanidmd (#879) 2022-07-05 11:39:38 +10:00
kanidm_unix_int kanidm_unixd logging - when can't write to sql path, log filename (#894) 2022-07-04 20:39:43 +10:00
kanidmd Building kanidm cli in docker, disabling ARM kanidmd (#879) 2022-07-05 11:39:38 +10:00
kanidmd_web_ui Bump serde from 1.0.137 to 1.0.138 (#881) 2022-07-04 09:05:52 +10:00
orca Bump serde from 1.0.137 to 1.0.138 (#881) 2022-07-04 09:05:52 +10:00
platform/opensuse 20220219 webui updates + source refactor + clippy go clip clip (#642) 2022-02-20 12:43:38 +10:00
profiles Bump serde from 1.0.137 to 1.0.138 (#881) 2022-07-04 09:05:52 +10:00
project_docs Python module and rewritten RADIUS integration (#826) 2022-06-20 20:16:55 +10:00
pykanidm Bump pylint from 2.14.3 to 2.14.4 in /pykanidm (#887) 2022-07-04 09:33:44 +10:00
.clippy.toml User feedback improvements, also handling a permissions issue (#424) 2021-04-26 11:52:13 +10:00
.dockerignore 195 rel cleanup (#268) 2020-06-18 10:30:42 +10:00
.gitignore Python module and rewritten RADIUS integration (#826) 2022-06-20 20:16:55 +10:00
build_all_the_docs.sh Tweak docs generation... (#722) 2022-04-29 08:25:17 +10:00
Cargo.lock Bump clap from 3.2.6 to 3.2.8 (#884) 2022-07-04 09:11:33 +10:00
Cargo.toml 383 170 164 authentication updates 2 (#716) 2022-04-27 10:56:18 +10:00
check_dependabot.sh Yak shaving 2343443 (#779) 2022-05-26 14:58:53 +10:00
CHECKLIST.md Add support for working server integration test! 2018-11-27 20:48:21 +10:00
CODE_OF_CONDUCT.md Update CODE_OF_CONDUCT.md 2021-01-25 14:25:11 +10:00
CODEOWNERS Python module and rewritten RADIUS integration (#826) 2022-06-20 20:16:55 +10:00
CONTRIBUTORS.md Add documentation for vouch-proxy integration (ref #600) (#823) 2022-06-15 09:06:13 +10:00
DEVELOPER_README.md Building kanidm cli in docker, disabling ARM kanidmd (#879) 2022-07-05 11:39:38 +10:00
FAQ.md 445 update pam nsswitch md (#451) 2021-05-24 09:13:41 +10:00
insecure_generate_tls.sh Python module and rewritten RADIUS integration (#826) 2022-06-20 20:16:55 +10:00
install.yml Add rinstall file (#625) 2021-12-08 10:02:19 +10:00
LICENSE.md Change license to MPL #15 2019-02-03 10:27:49 +10:00
Makefile Python module and rewritten RADIUS integration (#826) 2022-06-20 20:16:55 +10:00
README.md Fixed typo (#822) 2022-06-14 08:29:32 +10:00
RELEASE_NOTES.md Push some missed bits to documents 2022-05-01 15:18:26 +10:00
SECURITY.md adding issue templates and security policy docs (#676) 2022-04-17 09:08:53 +10:00
VERSION Minor updates 2020-07-01 12:04:13 +10:00

Kanidm

Kanidm is an identity management platform written in rust. Our goals are:

  • Modern identity management platform
  • Simple to deploy and integrate with
  • Extensible for various needs
  • Correct and secure behaviour by default

Today the project is still under heavy development to achieve these goals - We have many foundational parts in place, and many of the required security features, but it is still an Alpha, and should be treated as such.

Documentation / Getting Started / Install

If you want to deploy Kanidm to see what it can do, you should read the kanidm book.

We also publish limited support guidelines.

Code of Conduct / Ethics

See our code of conduct

See our documentation on rights and ethics

Getting in Contact / Questions

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.

Developer Getting Started

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.

Features

Implemented

  • SSH key distribution for servers
  • PAM/nsswitch clients (with limited offline auth)
  • MFA - TOTP
  • Highly concurrent design (MVCC, COW)
  • RADIUS integration
  • MFA - Webauthn

Currently Working On

  • CLI for administration
  • WebUI for self-service with wifi enrollment, claim management and more.
  • RBAC/Claims/Policy (limited by time and credential scope)
  • OIDC/Oauth

Upcoming Focus Areas

  • Replication (async multiple active write servers, read-only servers)

Future

  • SSH CA management
  • Sudo rule distribution via nsswitch
  • WebUI for administration
  • Account impersonation
  • Synchronisation to other IDM services

Some key project ideas

  • All people should be respected and able to be represented securely.
  • Devices represent users and their identities - they are part of the authentication.
  • Human error occurs - we should be designed to minimise human mistakes and empower people.
  • The system should be easy to understand and reason about for users and admins.

Features We Want to Avoid

  • Auditing: This is better solved by SIEM software, so we should generate data they can consume.
  • Fully synchronous behaviour: This prevents scaling and our future ability to expand.
  • Generic database: We don't want to be another NoSQL database, we want to be an IDM solution.
  • Being like LDAP/GSSAPI/Kerberos: These are all legacy protocols that are hard to use and confine our thinking - we should avoid "being like them" or using them as models.

What does Kanidm mean?

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. IDM is the common industry term for identity management services.