Commit graph

175 commits

Author SHA1 Message Date
Martin Weinelt 90002f5db7
Add missing groups scope to Grafana example scope-map (#2914) 2024-07-18 00:11:24 +00:00
Alin Trăistaru eb2b578c55
build profiles: rename release_suse_generic to release_linux (#2907)
Co-authored-by: Firstyear <william@blackhats.net.au>
2024-07-17 04:11:11 +00:00
Firstyear f9a77ee1f3
2818 2511 oauth2 urls (#2867)
* Allow multiple origins
* Docs
* Capitalization 'n stuff

---------

Co-authored-by: James Hodgkinson <james@terminaloutcomes.com>
2024-07-05 23:17:26 +00:00
alexvonme 7c27b40018
Vale Edits 0.1 (#2869)
* Grammar/spell-checking using SUSE Vale ruleset
2024-07-04 23:10:28 +00:00
Firstyear 6c8d065e83 Update sssd.md
Copy paste fail - ignore_group_members should be true to prevent recursion.
2024-06-26 18:54:00 -07:00
boogiewoogie 1416a5c92f
Remove small ambiguity in docs (#2823)
Nonexistent `idm_people_self_write_mail_priv` is used in the example instead of the correct `idm_people_self_write_mail`.
2024-06-07 07:51:12 +10:00
Tobias Krischer 814380a7f4
feat: add support for ldap compare request (#2780) 2024-05-25 08:28:52 +10:00
Firstyear 3723abb25d
Allow name write privileges to be withheld (#2773) 2024-05-23 15:58:49 +10:00
Firstyear c1235a7186
Check for same version with backup/restore (#2789) 2024-05-23 01:48:37 +00:00
Firstyear 39ac38e266
Update our domain TGT level (#2776) 2024-05-17 16:06:14 +10:00
Firstyear 03f9943d41
Update design for KRC (#2713) 2024-05-15 01:05:11 +00:00
James Hodgkinson 7964f55d59
strip out some debug messages unless *really* debugging. (#2767)
* kanidm cli logs on debug level - Fixes #2745
* such clippy like wow
* It's important for a wordsmith to know when to get its fixes in.
* updootin' wasms
2024-05-14 14:56:55 +10:00
Felix Niederwanger dcb70c0cc2
Use fully qualified container URLS (#2754)
Use fully qualified container URLS instead of abbrevations to make the
quickstart guide better approachable for non-docker container engines,
which might not default to using docker.io.

Signed-off-by: phoenix <felix.niederwanger@suse.com>
2024-05-08 08:50:33 +00:00
Firstyear acc800f00e
Resolve OAuth2 client/rs confusion (#2719)
* Resolve OAuth2 client/rs confusion

* feedback
2024-04-24 15:34:50 +10:00
Firstyear 3707124218
Improve access control doc to describe privilege access mode (#2721)
* Improve access control doc to describe privilege access mode

* Update book/src/access_control/intro.md

---------

Co-authored-by: James Hodgkinson <james@terminaloutcomes.com>
2024-04-24 04:29:58 +00:00
Firstyear d7834b52e6
Begin the basis of the key provider model (#2640)
This completely reworks how we approach and handle cryptographic keys in Kanidm. This is needed as a foundation for replication coordination which will require handling and rotation of cryptographic keys in automated ways. 

This change influences many other parts of the code base in it's implementation.

The primary influences are:

* Modification of how domain user signing keys are revoked or rotated.
* Merging of all existing service-account token keys are retired (retained) keys into the domain to simplify token signing and validation
* Allowing multiple configurations of local command line tools to swap between instances using disparate signing keys.
* Modification of key retrieval to be key id based (KID), removing the need to embed the JWK into tokens

A side effect of this change is that most user authentication sessions and oauth2 sessions will have to be re-established after upgrade. However we feel that session renewal after upgrade is an expected side effect of an upgrade. 

In the future this lays the ground work to remove a large number of legacy key handling processes that have evolved, which will allow large parts of code to be removed.
2024-04-15 23:44:37 +00:00
Pavel Dostál 03ce2a0c32
Add Grafana integration to OAuth2 documentation (#2685)
Signed-off-by: Pavel Dostál <pdostal@pdostal.cz>
2024-03-26 09:43:43 +00:00
alexvonme cc36fe7228
fix(docs): packaging section improved (#2677)
* fix(docs): packaging section improved
* Update ppa_packages.md
2024-03-23 22:54:52 +00:00
alexvonme 4849d9844b
fix(docs): filename, header and title mismatch fixes (#2660) 2024-03-20 12:43:33 +10:00
alexvonme 9c40a18b01
fix(docs): capitalization fixes (#2659) 2024-03-19 01:01:13 +00:00
alexvonme ce526012da
fix(docs): links corrected (#2661)
Co-authored-by: James Hodgkinson <james@terminaloutcomes.com>
2024-03-18 09:52:30 +00:00
Martin Wurm a0357ad227
Add instructions on how to enable PKCE in Nextcloud (#2647) 2024-03-12 02:42:04 +00:00
Firstyear 285f4362b2
20230224 2437 orca remodel (#2591) 2024-03-09 16:09:15 +10:00
Firstyear 1887daa76a
Add initial design for key domains (#2564) 2024-03-09 14:13:10 +10:00
Firstyear e8d7010b4b
Add upgrade process, improve developer readme (#2635)
* Add upgrade process, improve developer readme
* Rearrange some bits.
2024-03-08 13:25:45 +10:00
Firstyear 4dc38e56c3
Doc unix client support (#2633) 2024-03-07 03:59:21 +00:00
Firstyear b4d9cdd7d5
20240301 systemd uid (#2602)
Fixes #2601 Fixes #393 - gid numbers can be part of the systemd nspawn range.

Previously we allocated gid numbers based on the fact that uid_t is a u32, so we allowed 65536 through u32::max. However, there are two major issues with this that I didn't realise. The first is that anything greater than i32::max (2147483648) can confuse the linux kernel. 

The second is that systemd allocates 524288 through 1879048191 to itself for nspawn.

This leaves with with only a few usable ranges.

1000 through 60000
60578 through 61183
65520 through 65533
65536 through 524287
1879048192 through 2147483647

The last range being the largest is the natural and obvious area we should allocate from. This happens to nicely fall in the pattern of 0x7000_0000 through 0x7fff_ffff which allows us to take the last 24 bits of the uuid then applying a bit mask we can ensure that we end up in this range. 

There are now two major issues.

We have now changed our validation code to enforce a tighter range, but we may have already allocated users into these ranges. 

External systems like FreeIPA allocated uid/gid numbers with reckless abandon directly into these ranges. 

As a result we need to make two concessions.

We *secretly* still allow manual allocation of id's from 65536 through to 1879048191 which is the nspawn container range. This happens to be the range that freeipa allocates into. We will never generate an ID in this range, but we will allow it to ease imports since the users of these ranges already have shown they 'don't care' about that range. This also affects SCIM imports for longer term migrations. 

Second is id's that fall outside the valid ranges. In the extremely unlikely event this has occurred, a startup migration has been added to regenerate these id values for affected entries to prevent upgrade issues. 

An accidental effect of this is freeing up the range 524288 to 1879048191 for other subuid uses.
2024-03-07 03:25:54 +00:00
James Hodgkinson 4c1fa0d644
Adding a builtin class for all built-in things (#2603)
* adding builtin class to builtin objects
* Resolve issues with builtin PR

---------

Co-authored-by: William Brown <william@blackhats.net.au>
2024-03-06 01:33:14 +00:00
Vladimir Dronnikov 0813099fad
Notes on privilege-expiry (#2622) 2024-03-05 02:56:46 +00:00
Pavel Dostál 050b1209b9
Fix the miniflux oauth2 example (#2598) 2024-02-28 11:41:28 +00:00
Jinna Kiisuo 6d99f17253
docs(monitoring): Fix syntax for OpenTelemetry config (#2594)
Co-authored-by: Jinna Kiisuo <jinna+git@nocturnal.fi>
2024-02-27 13:25:38 +00:00
James Hodgkinson 4096b8f02d
Changing to allow startup without a config file (#2582)
* Changing to allow startup without a config file, using environment variables
2024-02-27 15:40:00 +10:00
Firstyear ea5ff6814c
Support Policy Updates (#2536)
* Support Policy Updates
---------

Co-authored-by: James Hodgkinson <james@terminaloutcomes.com>
2024-02-18 00:44:11 +00:00
Firstyear a4c2e66afd
Fix incorrect documentation elements (#2533)
This adds the account-policy section for credential-type-minimums
and fixes the replication config defaults to match the documented
behaviour.
2024-02-16 01:58:41 +00:00
Vladimir Dronnikov 2e0dd40806
Extend on Apache example (#2524)
As per On Apache discussion
2024-02-13 10:44:09 +10:00
Firstyear c892cd01d5
List of supported features (#2499)
Co-authored-by: James Hodgkinson <james@terminaloutcomes.com>
2024-02-10 10:56:16 +10:00
Firstyear 7567514044
Release 1.1.0-rc.16 (#2483) 2024-02-07 04:39:02 +00:00
Firstyear cd27879e7f
Oauth2 pkce faq (#2473) 2024-02-06 12:05:52 +10:00
Jinna Kiisuo aa00ac94d0
Fix debian versioning (#2472)
* Make the ubuntu_docker_builder.sh script a bit easier to use

- Entrypoint that installs dependencies on launch
- Echo hint on how to build deb packages

* Change debian packaging version string format to fix sort order

The sort order is important so that newer packages are seen as an update
and get installed, instead of apt preferring the older versions!

With these changes, a package is generated as `kanidm_Ubuntu_22.04_1:1.1.0~rc.15-dev~202401311334+c8a9e2c_x86_64.deb`
with the version string `1:1.1.0~rc.15-dev~202401311334+c8a9e2c`

Deb package version string comparison is Complex:
https://man7.org/linux/man-pages/man7/deb-version.7.html

With the previous versioning scheme for dev packages, the git hash
ended up getting prioritized over the date string, see for example:
`dpkg --compare-versions 1.1.0-rc.15-dev-202401100453666448f lt 1.1.0-rc.15-dev-20240120072786916a3; echo $?`
-> 1 (comparison failure)

A simple schema change avoiding most dashes could rescue the hash trouble:
`dpkg --compare-versions 1.1.0~rc.15-dev-202401100453+666448f lt 1.1.0-rc.15-dev-202401200727+86916a3; echo $?`
-> 0 (comparison success)

.. But, the second problem is seeing a stable release as newer:
`dpkg --compare-versions 1.1.0~rc.15-dev~202401100453+666448f lt 1.1.0; echo $?`
-> 1 (comparison failure)

.. Which can be solved by forcing the entire dev portion to not be
interpreted as a debian version by substituting tildes:
`dpkg --compare-versions 1.1.0~rc.15-dev~202401100453+666448f lt 1.1.0; echo $?`
-> 0 (comparison success)

.. But, old schema versions still seem newer due to their debian
version:
`dpkg --compare-versions 1.1.0-rc.15-dev-202401100453666448f lt 1.1.0~rc.15-dev~202401200727+86916a3; echo $?`
-> 1 (comparison failure)

Thus, the only solution is to change the scheme and increment the epoch value once
to force all lesser default epoch versions to be seen as older:
`dpkg --compare-versions 1.1.0-rc.15-dev-202401100453666448f lt 1:1.1.0~rc.15-dev~202401200727+86916a3; echo $?`
-> 0 (comparison success)
`dpkg --compare-versions 1:1.1.0~rc.15-dev~202401200727+86916a3 lt 1:1.1.0; echo $?`
-> 0 (comparison success)

* Drop epoch field from deb filenames

GitHub Actions enforces NTFS compatible artifact filenames, ergo the
colon required for the epoch field is banned. The epoc is still in the
version field itself, just not in the filename.

---------

Co-authored-by: Jinna Kiisuo <jinna+git@nocturnal.fi>
2024-02-05 18:06:43 +10:00
Samuel Cabrero 492c3da36c
docs: Add application passwords design document (#2427)
Related to  #41.

Signed-off-by: Samuel Cabrero <scabrero@suse.de>
Pair-Programmed-With: Firstyear <william@blackhats.net.au>
2024-02-01 11:18:05 +10:00
Joe Taber bcb0c2b786
Book SUMMARY.md: Fix part titles according to mdbook (#2463)
mdBook requires part titles to be H1, not any other heading level.

Format documentation on `SUMMARY.md` shows using H1 (one `#`):
220cb4f0c8/guide/src/format/summary.md

Parser code specifically looks for H1:
220cb4f0c8/src/book/summary.rs (L268)
2024-02-01 09:12:36 +10:00
Firstyear 005ca1713a
1222 what rights does anonymous have (#2436)
Document the default access that anonymous has, as well as default access controls and permission groups.
2024-01-25 09:08:54 +10:00
Firstyear b1e7cb13a5
Add rfc8414 metadata (#2434) 2024-01-19 04:14:52 +00:00
Firstyear 8dc884f38e
2390 1980 allow native applications (#2428) 2024-01-16 10:44:12 +10:00
Firstyear 38f930c981
Add design diagrams (#2332) 2024-01-04 10:02:21 +10:00
Firstyear d09c2448ff
1481 2024 access control rework (#2366)
Rework default access controls to better separate roles and access profiles.
2023-12-17 23:10:13 +00:00
Firstyear 4bd5d584cb
20231204 ipa sync minor improvements (#2357) 2023-12-04 16:58:15 +10:00
Martin Weinelt 7d7e3b5478
docs: miniflux added pkce support (#2352)
From Miniflux 2.0.48, released in September 2023, it added support for
Oauth2 PKCE.

https://github.com/miniflux/v2/releases/tag/2.0.48
2023-12-03 15:14:34 +10:00
Angelo Fallaria 74d825f49c
docs: improve grammar for book/src/developers/faq.md (#2343)
* docs: improve grammar for src/developers/faq.md
* Update book/src/developers/faq.md

---------

Co-authored-by: James Hodgkinson <james@terminaloutcomes.com>
2023-11-29 22:03:28 +10:00
Firstyear 060cb729a7
Expose TPM in more interface places (#2334) 2023-11-27 14:35:59 +10:00
James Hodgkinson c1f1720ee2
Adding kanidm client config docs and notes ref #2248 (#2333) 2023-11-25 09:55:54 +10:00
Firstyear bb8914c70d
20231120 2320 sssd compat (#2328) 2023-11-22 10:18:03 +10:00
Lincoln Bryant 782f7f58bb
Docs - Bump Fedora 36 to Fedora 38 (#2309) 2023-11-13 22:38:34 +00:00
James Hodgkinson 60e5935faa
Moving daemon tracing to OpenTelemetry (#2292)
* sally forth into the great otel unknown
* make the build env identification slightly more durable
* docs updates
* wasm recompile
2023-11-09 05:15:12 +00:00
James Hodgkinson 0174283115
Docs fixes for #2296 (#2297)
* docs touchups
2023-11-07 02:09:52 +00:00
Firstyear b7852d1d71
pw min length in account policy (#2289) 2023-11-05 10:33:25 +10:00
James Hodgkinson ffafb32389
WASM troubleshooting docs closes #2286 (#2291) 2023-11-05 10:32:39 +10:00
James Hodgkinson 7025a9ff55
Feature: kanidm CLI pulling OpenAPI schema (#2285)
* diag is super noisy when you actually turn on logging... even though it wasn't an error?
* adding api download-schema to the CLI
* docs
2023-11-03 17:37:27 +10:00
James Hodgkinson ef96ca6aa1
started writing docs and ended up in another rabbit hole (#2267)
* started writing docs and ended up in another rabbit hole
* updoots
* dangit fedora
2023-10-31 19:15:35 +10:00
James Hodgkinson 3bfc347c53
CLI integration test beginnings (#2261)
* more integration test things, using assert_cmd to test the CLI end-to-end
* packagez
* making clippy happy
* making deno happy
2023-10-30 06:10:54 +00:00
William Brown ecc46bb015 Add book chapter + cli 2023-10-28 13:07:06 +10:00
James Hodgkinson e02328ae8b
Splitting the SPAs (#2219)
* doing some work for enumerating how the accounts work together
* fixing up build scripts and removing extra things
* making JavaScript as_tag use the struct field names
* making shared.js a module, removing wasmloader.js
* don't compress compressed things
2023-10-27 06:03:58 +00:00
James Hodgkinson 55bd543434
.deb package build and docs fixes (#2252)
* moving docs around a bit
* workflow fixes
2023-10-26 01:48:58 +00:00
James Hodgkinson 7093149975
Auth flow docs (#2249) 2023-10-24 04:00:37 +00:00
Firstyear afe9d28754
20231019 1122 account policy basics (#2245)
---------

Co-authored-by: James Hodgkinson <james@terminaloutcomes.com>
2023-10-22 11:16:42 +00:00
kenjitamura 684d72d09c
Add note on snaps to PAM and nsswitch with link to new section in FAQ (#2244) 2023-10-19 14:11:33 +10:00
Firstyear 9e05c0f2f3
Fix incorrect references to LDAP in sync (#2239) 2023-10-18 06:30:46 +00:00
James Hodgkinson f28d5cef22
OpenAPI/swagger docs autogen (#2175)
* always be clippyin'
* pulling oauth2 api things out into their own module
* starting openapi generation
2023-10-14 12:39:14 +10:00
Firstyear 8bcf1935a5
20231012 346 name deny list (#2214)
* Migrate to improved system config reload, cleanup acc pol
* Denied names feature
2023-10-13 08:50:36 +10:00
James Hodgkinson 48979b8e1a
Replication tweaks - try the most recent successful one and error less (#2189)
* made an error less error-y and also found a way to try the last-most-working repl peer
2023-10-07 13:09:42 +10:00
Firstyear f6d2bcb44b
68 20230929 replication finalisation (#2160)
Replication is now ready for test deployments!
2023-10-05 11:11:27 +10:00
James Hodgkinson e7f594a1c1
In-system image storage (#2112)
* In-system image storage refers to #2057
* adding multipart feature to axum
* thanks to @Firstyear for fixing my bufs
* fixing coverage test things
* clippy-calming
* more tests, jpg acropalypse tests, benches
* spelling
* lockfile updates
* linting
2023-10-04 17:24:12 +10:00
James Hodgkinson 034ddd624a
Can't build kanidmd using the Ubuntu docker builder scripts - cleanup (#2154) 2023-09-27 14:08:20 +10:00
James Hodgkinson c7a269575c
Enforce TLS key size minimums (#2145)
* Enforce TLS key size minimums - Fixes #2144
* at some point clippy got mad
2023-09-26 09:59:00 +10:00
Miguel Angel Nubla 4aee3365aa
Typo (#2125) 2023-09-19 08:18:37 +10:00
Akash Kumar 6174d45848
Fix typo (#2109)
Signed-off-by: Akash Kumar <meakash7902@gmail.com>
2023-09-13 22:33:11 +10:00
James Hodgkinson d5c1f9de6a
sqlite3 doesn't need to be installed on dev machines (#2104)
* Dependencies - sqlite3 dev no longer needs to be installed - Fixes #2083
* setting workspace-level features for rusqlite
2023-09-12 09:54:54 +10:00
Firstyear b3aed1df34
68 20230908 replication attrunique (#2086)
Co-authored-by: James Hodgkinson <james@terminaloutcomes.com>
2023-09-12 08:50:51 +10:00
Firstyear 436a3f0307
68 20230831 design replication coordinator (#2051) 2023-09-05 16:39:16 +10:00
greizgh acce84edd5
docs: api tokens are managed by idm_admin (#2072)
Confirmed with:
- test on local server
- https://github.com/kanidm/kanidm/issues/1480
2023-09-04 21:40:59 +10:00
greizgh a185763176
docs: fix miniflux oauth example (#2046) 2023-08-30 07:24:06 +08:00
Sebastiano Tocci 70b19f0630
idv cli (#2001) 2023-08-23 20:51:24 +10:00
Philip Cristiano ed563d2416
docs: Update missed add_members command (#2018)
e33beea89d Updated add_members ->
add-members, but the radius.md was missed
2023-08-22 08:17:04 +10:00
pando85 01ddfb71df
docs: Fix outdated oauth2 subcommands (#1969) 2023-08-12 08:09:58 +10:00
James Hodgkinson ea4d755d7b
chasing weirdness (#1910)
* security headers, fixing error on empty username, handling login without SPN better

* making deno happy

* cleaning up windows build
2023-07-31 10:49:59 +10:00
Firstyear e17dcc0ddb
1788 admin unix socket (#1880) 2023-07-24 10:05:10 +10:00
Firstyear 79ff5e9775
1785 allow sync attr yielding via partial write admin (#1879) 2023-07-19 11:42:53 +10:00
Firstyear 07580cf57a
Improve selinux in tasks daemon (#1847) 2023-07-11 15:39:28 +10:00
Firstyear 8e1e533f40
1792 public oauth clients (#1821) 2023-07-07 18:53:31 +10:00
Matthew Wilks 9f886b85dd
Fix diagram colours (#1815) 2023-07-06 11:53:26 +10:00
James Hodgkinson cc35654388
Converting from tide to axum (#1797)
* Starting to chase down testing
* commenting out unused/inactive endpoints, adding more tests
* clippyism
* making clippy happy v2
* testing when things are not right
* moar checkpoint
* splitting up testkit things a bit
* moving https -> tide
* mad lad be crabbin
* spawning like a frog
* something something different spawning
* woot it works ish
* more server things
* adding version header to requests
* adding kopid_middleware
* well that was supposed to be an hour... four later
* more nonsense
* carrying on with the conversion
* first pass through the conversion is DONE!
* less pub more better
* session storage works better, fixed some paths
* axum-csp version thing
* try a typedheader
* better openssl config things
* updating lockfile
* http2
* actually sending JSON when we say we will!
* just about to do something dumb
* flargl
* more yak shaving
* So many clippy-isms, fixing up a query handler bleep bloop
* So many clippy-isms, fixing up a query handler bleep bloop
* fmt
* all tests pass including basic web logins and nav
* so much clippyism
* stripping out old comments
* fmt
* commenty things
* stripping out tide
* updates
* de-tiding things
* fmt
* adding optional header matching ,thanks @cuberoot74088
* oauth2 stuff to match #1807 but in axum
* CLIPPY IS FINALLY SATED
* moving scim from /v1/scim to /scim
* one day clippy will make sense
* cleanups
* removing sketching middleware
* cleanup, strip a broken test endpoint (routemap), more clippy
* docs fmt
* pulling axum-csp from the wrong cargo.toml
* docs fmt
* fmt fixes
2023-07-05 22:26:39 +10:00
James Hodgkinson 3e4c8f6241
Fixing the kanidmd healthcheck (#1789)
* fixing the health check
* fixing pages while I am here
* flipping options like I flip burgers
* using the config-supplied cert
2023-06-28 19:41:24 +10:00
Sebastiano Tocci 9a3c12a79d
Name change history (#1727) 2023-06-28 18:34:44 +10:00
James Hodgkinson 69dfea3601
Still trying to fix the docs. (#1709)
* docs build/deploy fixes
* let us see if this makes the automerge less bad
2023-06-28 10:34:17 +10:00
James Hodgkinson cc1cc691f3
Started chasing noise, found some code to delete... (#1768)
logging changes:

* Offering auth mechanisms -> debug
* 404's aren't really warnings
* double tombstone message, one goes to debug

other changes:

* CSP changes to allow the bootstrap images to load
* more testing javascriptfile things, I R 
* it's nice to know where things are
* putting non-rust web things in static/ instead of src/
* RequestCredentials::SameOrigin is the default, also adding a utility function to save dupe code. Wow this saved... kilobytes.
* removing commented code, fixing up codespell config
* clippyisms
* wtf, gha
* dee-gloo-ing some things
* adding some ubuntu build test things
* sigh rustwasm/wasm-pack/issues/1138
* more do_request things
* packaging things
* hilarious dev env setup script
* updated script works, all the UI works, including the experimental UI for naughty crabs
* deb package fixes
* fixed some notes
* setup experimental UI tweaks
2023-06-27 11:38:22 +10:00
Matthias Endler 56a2257360
Mention client configuration in tool installation guide (#1756) 2023-06-21 16:48:03 +10:00
Firstyear 4725d625af
Remove scripts that are no longer required (#1759) 2023-06-21 15:52:19 +10:00
Firstyear 8d2565773e
Resolve codespell issues (#1753) 2023-06-20 13:19:21 +10:00
Firstyear 8b331325ae
Add tls generator to main kanidmd (#1743) 2023-06-19 20:51:44 +10:00
Firstyear a77a7aa2a4
20230614 unix account security - move account name deny to unixd (#1733) 2023-06-15 13:24:53 +10:00