Commit graph

48 commits

Author SHA1 Message Date
James Hodgkinson de431451f4
Making clippy happy (#420) 2021-04-25 11:35:56 +10:00
Firstyear 72dfe1b035
Idlset2, query cache, acp resolve cache (#409) 2021-04-14 09:56:40 +10:00
William Brown 3b6be9aaf2 (cargo-release) version 1.1.0-alpha.4 2021-04-01 10:29:20 +10:00
Firstyear 6bc719cdb2
Base web UI (#391)
Initial web ui (not-functional yet)
2021-03-26 11:22:00 +10:00
Firstyear adb3f819ba
Add the unixd tasks daemon (#349)
Fixes #180 - this adds an oddjobd style tasks daemon to the unix tools. This supports creation of home directories and the maintenance of alias symlinks to these allowing user renames. The tasks daemon is written to require root, but is seperate from the unixd daemon. Communication is via a root-only unix socket that the task daemon connects into to reduce the possibility of exploit.

Fixes #369 due to the changes to call_daemon_blocking
2021-03-13 12:33:15 +10:00
Firstyear ff61c37ae3
Add credential display command (#370)
Fixes #364 - this adds a credential display command to the cli, and the api so it can be used later.
2021-03-11 11:17:13 +10:00
Firstyear 3137e3d682
Complete MFA and Webauthn handlers (#360)
Fixes #357 - this allows the password MFA handler to correct handle a mixed totp or webauthn credential with passwords. This is likely the "majority" of accounts we will see on the service.
2021-02-20 12:41:22 +10:00
Firstyear 8006142c9e
202 totp cli enrollment (#348)
Fixes #202 - This adds support for enrolling and removing totp on the cli, as well as a rebuilt work flow for login to allow dynamic prompting of what credetials are required.
2021-02-08 13:31:31 +10:00
Firstyear 3844aadf60
Tokio1.0 (#340)
Upgrade dependencies, with the major highlight as the upgrade to tokio 1.0
2021-01-10 13:41:56 +10:00
William Brown abb6c8201b (cargo-release) version 1.1.0-alpha.3 2020-12-28 09:51:15 +10:00
Firstyear ebdb57bbe7
WIP - Improve Auth Proto to Support Webauthn (#333)
This is a rewrite of the "on the wire" json for auth. This is a breaking change required to allow webauthn to work given limitations within Webauthn as a standard and how mixed credentials are challenged for.
2020-12-26 13:58:32 +10:00
Firstyear ec48edac82
13 135 webauthn support (#332)
Fixes #13 and Fixes #135 - webauthn and webauthn with cli. This is the core of webauthn, but only as a single factor. Some changes are still needed for webauthn as MFA and as a verified single factor. This will be made in a subsequent PR.
2020-12-02 11:12:07 +10:00
Firstyear 018039b0b2
Account valid-from and expiry (#322)
Fixes #59 account policy and lockout. This is achived with a valid_from and expire attribute that are timestamps. Cli tools are added to manage these.
2020-10-10 10:31:51 +10:00
William Brown 7837febabe (cargo-release) version 1.1.0-alpha.2 2020-10-01 10:04:25 +10:00
Firstyear 4bf8ef72d5
250 cookie to auth bearer (#321)
Fixes #250, replacing cookies with auth-bearer tokens. This is done using fernet with randomised keys each startup. The reason for this is that in the future the size of the auth token may exceed cookie limits, so we must be able to understand and process auth bearer. Additionaly, this lets us store the tokens for say the kanidm cli as reqwest today can't persist a cookie jar.
2020-09-18 13:19:57 +10:00
Firstyear dbfe87e675
On login pw upgrade (#315)
Fixes #295 on login pw upgrade. This adds support for SSHA512 to be imported at the request of @colbyprior, and adds a delayed action queue so that events can be run after-the-fact so that authentication does not need to exist under the write path.
2020-08-24 12:15:21 +10:00
Firstyear a6269de9ab
67 resource limits impl (#307)
Fixes #67 and #237 - this add's resource limits to all server accounts by default. These limits bound the size of search sets, how many entries can be tested with filter tests, disables unindexed queries, and limits the size of filters to prevent stack depth and other issues.
2020-08-15 15:22:04 +10:00
William Brown 85ec82832e V large cleanup 2020-08-05 09:58:49 +10:00
Firstyear c8ac4970d8
Release Prep (#283) 2020-06-30 14:58:35 +10:00
Firstyear 96e6c9107d
refint improve (#274)
Fixes #61 and fixes #234 - this rewrites quite a few internals of refint and memberof to make them much more efficient compared to previously. This takes nearly 70s out of the test execution time - a full 25% of the run time of tests.

A number of other improvements have been made through out with regard to memory pre-alloc for hashset/hashmap, fixing some more types, and reducing some un-needed allocations.
2020-06-26 11:36:37 +10:00
Firstyear 0b15477ef4
212 262 db idl fixes (#269)
Fixes #212 and Fixes #262. This is largely a performance improvement and security improvement to how the databases are handled. The major cases are create/modify/reindex performance,
2020-06-19 10:00:54 +10:00
Firstyear fec28e03e2
195 rel cleanup (#268)
Fixes #195 pre release cleanup. This does a LOT, clippy, formatting, and much much more. It fixes a lot of parts of the book, improves server config and more.
2020-06-18 10:30:42 +10:00
Firstyear d47d4fed0a
245 ldap compat (#247)
Add's improvements to ldap compatibility. This stabilises DN formats and how they are returned, and adds the name2uuid index to help speed up binds and entry resolves on large queries. Even on the largest queries, this is able to process them rapidly, and the ldap interface now has single operation times of sub 0.001 second even on 100k entry databases with references.
2020-06-14 09:34:23 +10:00
Firstyear 70fa17f3a1
199 ldap gateway (#246)
adds an LDAP gateway to the server. It supports TLS if configured for the webserver, using the same parameters. It is a read only interface, only supporting bind via the configured posix password.
2020-06-10 12:07:43 +10:00
Firstyear ff9238b7ee
184 151 183 name constraint and spn (#244)
This adds support to do on-upgrade migrations of the previous iutf8 type to iname, iname contains a better checker of the content of the name values that will become spn's, this allows auth via spn as well as just name. This really just does a lot of clean up to make spns more viable. #181 is still outstanding, but you can currently already login via spn a posixid_to_uuid supports this, it's only the resolving of unixgroup/accounts that need to have name as Option to cause a fall back to spn when in a trust.
2020-06-07 09:53:10 +10:00
Firstyear 4bed9c87bf
Improve errors, tagging, logging and more across the codebase. (#243) 2020-06-05 14:01:20 +10:00
Firstyear 923cf6c0f8
99 p3 clean up sensitive log data (#239)
Fix logging of potentially sensitive data.

* Disable docker automation
2020-05-29 18:13:54 +10:00
Firstyear 15bc8d4120
101 idlcache (#224)
Fixes #101, concurrent caching of IDL and Entries. This yields a 10% improvement for test case execution, and 35% for tests run under --release mode. A lot of code around the code base was needed to be touched due to the extra need for mut in some operations and some lifetimes, but the majority of the work was in idl_arc_sqlite.rs, which has the cache layer. There are many performance gains yet to see, but most of those will come through improvement of the concread ARC and it's related BTree implementation.
2020-05-11 21:12:32 +10:00
William Brown b8f906ed36 Update outdated libraries and add helper make argument. 2020-04-11 10:48:34 +10:00
William Brown 29d99654c3 Update to latest rc 2020-04-10 15:55:25 +10:00
Firstyear 8cfa8f3f95
12 totp (#201)
Implements #12, TOTP. This adds support for TOTP to the api and server, with server side token generation, authentication and the correct URI for encoding into QR codes for client token addition. Some extra measures have been taken such as in the stepped auth to always notify on the success or failure of the TOTP first (regardless of order) to prevent PW bruteforce attacks.
2020-04-10 15:50:45 +10:00
Firstyear ceb6048bf0
122 password import design (#196)
Implements #122 password import. This adds most of the server core framework to allow password imports from other sources, with new types easily able to be added in credential.rs.
2020-03-27 08:27:07 +10:00
Firstyear 6388bcf6fc
20200322 132 recyclebin 2 (#193)
Implements #132, the recycle bin. This completes the feature, with working API's, front end tests and CLI tooling. It also includes a refactor of the CLI tools to make them a bit easier to manage/work with.
2020-03-25 08:21:49 +10:00
Firstyear c5664988e3
Refactor for actix and futures upgrade (#190) 2020-03-07 10:49:39 +10:00
Firstyear 9de7d33293
129 nsswitch stage 2 groups (#185)
Implements #129, adding the libnss_kanidm.so/dylib, and the related caching parts for properly handling these types.
2020-02-15 10:57:25 +10:30
Firstyear d063d358ad
129 pam nsswitch stage 1 daemon (#179)
Implements #129, pam and nsswitch daemon capability. This is stage 1, which adds a localhost unix domain socket resolver, a ssh key client, support to the server for generating unix tokens, an async client lib, and client handles for adding posix extensions to accounts and groups.
2020-02-13 10:43:01 +11:00
Firstyear a55f277ac3
Add pragma integrity check to verify (#175) 2020-01-27 13:37:55 +10:00
Tristram Healy 4470311f84 Replaced Firstyear 2020-01-17 11:57:30 +10:00
Alberto Planas c2d98f2057 Address clippy reports attending to #![deny(warnings)] 2020-01-15 09:55:01 +10:00
Alberto Planas bb298968ea Cargo: fix repository typo 2020-01-15 09:55:01 +10:00
Firstyear c8d73b7594
20191217 update 1.39 deps (#161)
Update to 1.39 + all deps update, and setup cargo.toml's for publishing to crates (to prevent domain/crate squatting).
2019-12-17 15:47:16 +10:00
Firstyear 2ede944fdb
29 password badlisting (#158)
Implements #29 password badlist and quality checking. This checks all new passwords are at least length 10, pass zxcvbn and are not container in a badlist. The current badlist is a preprocessed content of rockyou from seclists, but later wwe'll update this to the top 10million badlist which when processed is about 70k entries..
2019-12-13 08:49:32 +10:00
Firstyear 0609196048
127 domain info type (#150)
Implements #127 and #125. This adds domain_info support, and spn types and generation. It also correctly handles domain renaming, and has tooling to support this. It "should" work on an upgrade, due to the correct bump of index version, but I plan to test this from a backup of my production instance soon.
2019-11-29 10:48:22 +10:00
Firstyear c006341884
17 radius (#123)
Majority of radius integration and tooling complete, including docker files.
2019-10-31 10:48:15 +10:00
Firstyear 6b0b2ad040
Refactor client lib to expose msgs, and improve the messages in plugins (#114)
Implements #100. This refactors our error types to be deserialiseable, and exposes these through the clienterror type with the status codes. There is probably still a lot of improvements here to be made, but they'll be shaken out as the client libs develop I think and we start to see what errors should be exposed.
2019-10-10 13:17:32 +10:00
Firstyear 6c44297bd9
6 create modify tool (#113)
Implements #6 - create, modify and delete. These are the raw/lowlevel db commands which are really useful for administrators. They aren't intended for normal day to day use though.

This also adds a basic getting started, fixes a missing privilege, adds support for reseting another accounts password, and for server side password generation.

It's likely I'm going to reformat some of the current REST api though to use our higher level internal types.
2019-10-07 08:41:30 +10:00
Firstyear e9cb71b9a7
Add tooling for accounts to self-set their password (#107)
Partially Implements #6 - add ability for accounts to self set password. This is good for now, as I get closer to a trial radius deployment, but I think I'm finding the rest api probably needs a better plan at this point, as well as probably the way we do the proto and the communication needs some more thoughts too.
2019-09-27 09:59:23 +10:00
William Brown 0433a0a1d4 Complete the rename of the project from rsidm to kanidm 2019-09-14 15:58:28 +02:00