Commit graph

321 commits

Author SHA1 Message Date
Firstyear 988944a085
Add auth session header type (#398) 2021-04-01 07:14:15 +10:00
vcwai 8a2f3b65ec
Add badlist checking when using password login (#394) 2021-03-31 11:19:03 +10:00
Firstyear 6bc719cdb2
Base web UI (#391)
Initial web ui (not-functional yet)
2021-03-26 11:22:00 +10:00
Firstyear a22c8efe9e
Fix posix extend to correctly remove the matching attribute during set. (#387) 2021-03-25 10:33:37 +10:00
Firstyear db3904759d
fix displayname (#390) 2021-03-23 19:14:04 +10:00
OttoHollmann 8eb2bd9ee1
Fix Dockerfile to check return values. (#389) 2021-03-23 09:34:40 +10:00
Firstyear 29c0481cb2
Correctly return displayname (#386) 2021-03-23 09:27:01 +10:00
William Brown e1cbd325a5 Update sshkeys to resolve ssh issue 2021-03-15 10:20:54 +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 d2ca2c5bc9
Fix pattern to match substr from ldap (#372) 2021-03-12 10:11:12 +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 dd1945dd0d
363 scaling benchmarks (#366)
Starts on #363, adding initial scaling tests and benchmarks. Generally this is a pretty big clean up of macros and some testing elements too.
2021-02-23 18:10:59 +10:00
Firstyear 1fb5ec8bf2
vacuum (#365)
Fixes #362 moves vacuum to a dedicated task. This is needed as previous vacuuming on startup on large databases could cause the server to fail to start. By making this a task it avoids this error case, and makes the vacuum more predictable, and only run when required.
2021-02-21 15:04:58 +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
William Brown 483aa6f23d Update build 2021-02-17 18:49:03 +10:00
Firstyear f710e66f64
356 Use tls chain file (#358)
Fixes #356 - this changes from a split ca_chain/cert configuration to a single chain file. This allows rustls in tide-rustls to present the chain correctly, and allows openssl for ldaps to present the chain correctly too. it also simplifies integration to lets encrypt which provides a chain and key file by default.
2021-02-16 11:40:25 +10:00
William Brown 9bd54dbebe Move jemalloc to runtime only 2021-02-13 16:32:04 +10:00
Firstyear 6c79914395
306 command complete (#354)
Fixes #306 adding command line autocompletion. These are generated to: CARGO_TARGET_DIR/item-hash/out/. These will need to be packaged for distros later, it's unclear how we could use cargo install with these as cargo doesn't support arbitrary artefacts like this (yet?).
2021-02-13 13:46:22 +10:00
Firstyear d745b15768
Use jemallocator in main server (#353) 2021-02-10 15:08:22 +10:00
Firstyear a3d7401d03
Add clean ups based on review feedback (#351)
* Add clean ups based on charcols suggestions
2021-02-09 10:25:02 +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 f4e31f1bb9
Improve idl behaviour (#342) 2021-01-28 09:50:43 +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 0f6bc36cee Improve docker buildr 2020-12-30 12:29:01 +10:00
Firstyear faa4b74683
320 filter double verify (#339)
Fixes #320, remove double verification of filters. In addition this replaces attr strings with smartstring to allow better inling due to their static and compact nature.
2020-12-30 09:53:19 +10:00
William Brown df441769ec (cargo-release) version 1.1.0-alpha.3 2020-12-28 09:51:15 +10:00
Firstyear 9dbb5ccb59
Unixd - NXCache of unknown items (#338)
Previously we would only cache "hits" - items that kanidm is aware
of and did know about. However, this mean querying a raw uid/gid
number that was not known to files or kanidm would result in kanidm
doing an online check each request.

This adds a NXcache to cache misses, so they can be served as misses,
faster, and to reduce load on the main kanidm servers.

Fixes #336
2020-12-28 09:41:16 +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 dc319a98ac
Change root user check to warning due to container run times (#328)
Fixes #327 - In container run times, the default is to run as root. This may be user with virtualised containers or even to just smooth the "first run" process rather than requiring a user for the process and volumes.
2020-10-30 11:12:06 +10:00
Firstyear 1a57aa9ea0
Fixes #324 account softlocking and rate limiting (#326)
This provides bruteforce protection and ratelimiting to stop
classes of attacks. This impacts all areas where a password or
authentication is performed (unix, ldap, auth).
2020-10-22 14:40:31 +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 3e4926070b (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 29566b8f99
259 reduce clones (#319)
Fixes #259. Thanks to the linked worked example, we can reduce a problematic set of clones during filter metadata injection. Previously we had to create a new hashset every time we went to resolve index metadata in queries, but with this change we can now just use the copy-on-write hashset instead. This will improve cache access, reduces clones, and more. In a cargo test run this takes out nearly 15% of the execution time (on my system reducing the test time by nearly 35 seconds).

https://github.com/sunshowers/borrow-complex-key-example/blob/master/src/lib.rs
2020-09-11 12:39:05 +10:00
Firstyear bab44028f1
Xxx clippy outdated (#318)
This finishes some of the outstanding clippy issues that existed. Additionally, we updated all the project deps and updated libraries we could in the project. A bug exists currently in cargo outdated that is preventing further updates to this however, but that's a bit out of my hands.
2020-09-08 12:46:10 +10:00
Firstyear 0041445b73
314 improve async (#316)
this completely removes actix and actix-web from the codebase, replacing it with tokio and http-rs/tide. Due to a current temporary limit in tokio parts with openssl/libressl, rustls is used for the webserver, but I'll change this back once that issue is resolved. For now there are likely some other clippy issues, but the next step now is that I can finally run cargo outdated and update this and the other kanidm/* deps to be up to date due to no longer being held back on versions by actix. So following this, I need to finish clippy warnings, and run cargo outdated and cargo audit.
2020-09-06 08:44:35 +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 bd8d2af420
Dynamic crypto rounds (#311) 2020-08-17 11:26:28 +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 c428ffcec5 Build improvements 2020-08-09 10:44:10 +10:00
William Brown c626eb60a6 Support zfs page size 2020-08-05 10:05:58 +10:00
William Brown 85ec82832e V large cleanup 2020-08-05 09:58:49 +10:00
William Brown 217e3455a2 Cleanup and improve client error handling 2020-08-02 09:16:34 +10:00
William Brown c4805d2915 Improve server hardening
This adds a number of warnings to the server to help administrators make
better informed decisions about the security of their environment.
2020-07-31 14:55:14 +10:00
William Brown cdd7e0e49a Update deps + add simd support in container 2020-07-24 17:38:59 +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 0adec0d437
260 entry ava interfaces (#271)
Fixes #260 fixes #257 fixes #157. This is really a set of cleanups around the code base to minimise clones, choose better datastructures for specific tasks, improve the ability to pass references in certain calls and more. Generally this just makes everything a bit smoother, and really has big gains on the write path (it's about 20% faster now).
2020-06-24 21:17:46 +10:00
Firstyear 9aa03906f8
181 pam nsswitch name spn (#270)
This allows configuration of which attribute is presented during gid/uid resolution, adds home directory prefixing, and home directory name attribute selection.
2020-06-21 21:57:48 +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 5eb370bc43
Phase 2, logging refactor (#236)
* Phase 2, logging refactor
2020-05-22 17:03:42 +10:00
Firstyear 62d60d1afc
99 logging rewrite (#233)
* Phase 1 - fix audit log nesting
2020-05-20 10:31:34 +10:00
Firstyear 16267e8a29
In progress logging design (#231) 2020-05-15 12:23:36 +10:00
Pando85 2670b6ae83 CI update all kanidm component version and tag
Add make entry to have all cargo versions updated from VERSION file.
Add `tag_version` github action to update all cargo.toml and tag it and
push it.
Remove cargo fmt check from CI because we have problems with different
versions and fails continually. Instead, we use cargo-husky to ensure
that all people run it automatically in its local, but this is not
obligatory.
Update to version 1.0.0-rc10, according to packages published.

In future cargo will support managing all dependencies from main
Cargo.toml. Ref: https://github.com/rust-lang/cargo/issues/3931

Resolve #225
2020-05-13 15:56:44 +10:00
William Brown ff8711592e Add upg to radius 2020-05-13 15:54:47 +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
Firstyear e08b5c14f5
Merge pull request #222 from kanidm/20200508-docker-fix
This fixes an incorrect path in the suse image
2020-05-08 10:50:05 +10:00
Pando85 4dcad60374 Extend testing of default entries
Add default entries test to apply behaviours according to
`designs/default_idm_layout.rst`.

Add expected behaviours for:
  - Users
  - Account managers
  - Group managers
  - Admins
  - People Managers
  - Anonymous clients
  - Radius servers

Also, refactor `kanidmd_client` tests to separate into different files
and fix some documentation typos

Resolves: #108
2020-05-08 10:27:39 +10:00
William Brown fa43ac2110 216 - add initial /status endpoint 2020-05-07 20:39:39 +10:00
Pando85 7687791466 Merge docker image github actions into unique
Use matrix and Makefile to build both images in the same workflow.

Kanidmd image remove muslc version and come back to SUSE version because
performance problems.

Also fix a typo bug with kanidmd image build on CI.
2020-05-07 12:37:14 +10:00
Pando85 c2f77a47f3 Create light images with static binaries
- Change base builder image to `ekidd/rust-musl-builder` for create static
binaries.
- Add two flavours: alpine and stand alone binary.
- Add makefile commands for build, test and push kanidmd images and
  refactor previous code.
- Add missing things to `.dockerignore`.
- Refactor CI to use Makefile.
2020-05-06 11:07:01 +10:00
Pando85 d6acffd869 Fix sqlite fails in CI tests and fmt error
Add `libsqlite3-sys` crate to avoid sqlite3 missmatching version.

From [https://lib.rs/crates/libsqlite3-sys](https://lib.rs/crates/libsqlite3-sys)
> If you use the bundled feature, libsqlite3-sys will use the cc crate to compile SQLite from source and link against that. This source is embedded in the libsqlite3-sys crate and is currently SQLite 3.30.1 (as of rusqlite 0.21.0 / libsqlite3-sys 0.17.0). This is probably the simplest solution to any build problems.

Remove sqlite OS packages dependencies for build.

Also, we fix a format error to allow CI tests to pass again.
2020-05-06 10:16:26 +10:00
Pando85 ffa2e416aa Optimized all possible constant values using const
Replace all replaceable static declarations with const values.
Ref: 61e3dc9c1e/text/0246-const-vs-static.md
2020-05-05 10:01:10 +10:00
Pando85 cfdaa702e5 Fix multiple typo in docs 2020-04-27 10:34:33 +10:00
Pando85 daf22462d7 Feature/entry extend apply modlist tests
Add entry test cases for `apply_modlist`:
- present multivalue
- purge single/multi/empty value
- remove exists and doesn't exist value
2020-04-12 12:27:13 +10:00
William Brown 3240d993b9 Clean removed schema struct 2020-04-11 16:25:43 +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
William Brown 32dcaa39ac Test perf improvements 2020-03-26 11:56:20 +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 61c240e44b
20200307 137/132 cid/recyclebin (#192)
Implements #137 and parts of #132. This adds full support for CID's to the server, and some parts for recyclebin to work such as internal lessthan queries.
2020-03-22 11:31:02 +10:00
Firstyear c5664988e3
Refactor for actix and futures upgrade (#190) 2020-03-07 10:49:39 +10:00
Firstyear 5a9ad39d6b
20200218 pam (#189)
Add support for unix_password handling, and pam authentication for services.
2020-02-29 14:02:14 +10:00
Firstyear b048115698
20200216 document internals (#187)
Add documentation of internal api
2020-02-17 08:09:32 +10:30
Firstyear f8adfc3840
20200216 fix gidnumber validation (#186)
* Fix an issue with gid number validation
2020-02-17 08:09:11 +10:30
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 9360ba78f3
Add feature for re-adding some group memberships on revival (#176)
Implements #49, revive directmemberships if possible on revive. As items that are deleted are able to maintain and preserve their directmembership from MO, this allows a way to back-create group memberships when we revive a user from the recycle bin.

Note that if the group was itself deleted and revived, this breaks the relationship because it causes ref int to remove all the references. This could be a reason to change the refint policy to allow keeping dead-references, but I think I want to think about that more before I change that policy too quickly.

Saying this, most groups are long lived, we are really wanting to handle the case where you delete and revive a user, or delete and revive a group to restore consistency. Deletenig and reviveng groups and users at the same time will lead to some hairy-complex cases.
2020-01-27 20:56:21 +10:00
Firstyear a55f277ac3
Add pragma integrity check to verify (#175) 2020-01-27 13:37:55 +10:00
Firstyear 559222206f
133 limit to human readable characters. (#174)
Implements #133, limit password generators to distict human readable characters. This removes the common confusions such as I,l, 1, 0, O, o, m,rn, etc . This in mind, they may not all have been found, but it should be easier now to improve upon.
2020-01-27 12:56:15 +10:00
Firstyear 1e7ba58fe8
Add concurrent structures, and initial attempt at benchmarking (#173) 2020-01-26 19:55:53 +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 311de5248b Remove "extern crate" from binary crates 2020-01-15 09:55:01 +10:00
Alberto Planas bb298968ea Cargo: fix repository typo 2020-01-15 09:55:01 +10:00
Firstyear 7135a6e42d
Attempted to add caching but it failed, improve usage (#162) 2020-01-02 18:54:50 +11: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 b579c5395c
20191202 documentation (#156)
Add an initial skeleton and draft of a book, which should be maintained and improved as the server is developed to help guide users.
2019-12-03 16:03:05 +10:00
William Brown 646261ebf7 Resolve domain_name overwrite on startup issue 2019-12-01 15:16:56 +10:00
William Brown 7fcb0e6069 Fix missing self write on ssh public key 2019-12-01 14:19:20 +10:00
William Brown e670924324 Update assert to debug assert, add Makefile, and resolve an issue with reindexing 2019-11-30 22:05:13 +10:00
Firstyear 000a24b49e
23 gidnumber generation (#154)
Implements #23 gidnumber generation. This automatically creates gid numbers for posixaccounts and posixgroups based on the UUID of the object. Alternately, these can be provided if manual allocation is desired. This is an important step in posix attribute support.
2019-11-30 09:39:31 +10:00
Firstyear 6faf79db03
acp_enable is optional and non-presence implies true (#152)
Implements #88, acp_enable becomes optional. This is important with regard to migrations. When we migrate, if an attribute is present in the migration we always set the value in the case of a single-value attribute (multivalues interleave). This means an admin who may set acp_enable to false on default shipped access controls would have them forcefully re-activated on each server restart. This change makes acp_enable optional, and removes it from the migration. If NOT present on an ACP, it's considered "true", so that when an admin overrides this value to false, we will permanently respect that choice.
2019-11-30 09:39:00 +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 44693be17a
Add docs for backup, restore, reindex and verify (#148)
Implements #136 document backup and restore. This adds documentation into getting started on these actions, as well as reindex and verify .
2019-11-17 12:36:32 +10:00
Firstyear 4de0d03eab
126 ssh key features (#146)
Implemnt SSH public key management

    This implements ssh public key distribution for kanidm, enforcing that
    valid ssh public keys are placed into the ssh_publickey attribute, adds
    management tools so that accounts can self-service manage their keys,
    and finally adds an authorized keys command helper suitable for
    sshd_config to utilise.
2019-11-16 14:40:45 +10:00
Alberto Planas 60dc278f4c Remove unnecessary parentheses around type
Fix a compilation error in nightly, and a future error in stable.
2019-11-13 21:12:45 +10:00
Firstyear 4f28bb5bc3
Resolve 139, 140, 141, 142 (#143) 2019-11-07 17:08:11 +10:00
Firstyear c82fb731ef
20191031 account mgmt (#130)
This adds rudimentary support to the cli for group and account management. This is required for a skeleton deployment to be initiated.
2019-11-02 11:15:15 +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 86938a7521
Split read vs write actors (#121) 2019-10-15 15:34:07 +13:00
Firstyear 5429f8a6c0
Add draft trust document (#111) 2019-10-10 19:42:33 +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 1f2b965285
6 schema list (#112)
This adds rest endpoints for schema, group, account listing and individual item getting, client lib to call these end points, and tests for all of these.
2019-10-05 10:40:43 +10:00
Firstyear 4ba34d18e1
6 idm api design (#109)
Draft of the idm server rest api layout. This is no means a final representation of what this API will look like, but it's important that the ideas and direction, as well as capabilities were documented and discussed.
2019-09-30 19:01:20 +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
Firstyear 879095c450
Implement #90 - allow self write to name, displayname, and legalname. (#105)
* Implement #90 - allow self write to name, displayname, and legalname.

This is an important aspect to respecting peoples autonomy and identities
so that they can change their name when appropriate to them. Limit self read/write to live accounts, and prevent anonymous self-write
2019-09-27 09:57:53 +10:00
Firstyear 4f85883c32
Implement #8 indexing - today this is only eq and pres indexes, but (#102)
it does handle the cases correctly for test threshold, andnot, or,
and and exists shortcuts. It's also extremely well tested!
2019-09-25 12:38:20 +02:00
Firstyear 0d4509233b
87 default idm entries (#89)
This adds the fundamentals of the basic IDM layout. It contains the needed design document, and is designed such that the default admins while powerful, still have some limits upon them.
2019-09-16 04:05:26 +10:00
William Brown 0433a0a1d4 Complete the rename of the project from rsidm to kanidm 2019-09-14 15:58:28 +02:00