Commit Graph
76 Commits
Author SHA1 Message Date
Ximon EighteenandGitHub faf6bd2549 HSM: Support multiple signers (#539) (#674)
Support multiple signers of different types behind a HSM feature flag, and support in principle selecting which signer to use for which purpose. (#539)
2021-10-05 14:50:58 +02:00
Ximon Eighteen 8aed66bfde Document more details on how the token and user details are passed back to Lagosta post OpenID Connect login. 2021-07-28 11:29:00 +02:00
Ximon Eighteen f508608cb3 Minor improvements to the login flow multi-user developer doc. 2021-07-28 11:15:42 +02:00
Ximon Eighteen cdcd926082 Use the PlantUML Online service to render the diagrams as GitHub doesn't support plantuml syntax rendering. 2021-07-27 16:56:58 +02:00
Ximon Eighteen 07def92bda Initial atttempt at documenting the multi-user login flows from a developer perspective. 2021-07-27 16:54:52 +02:00
Tim Bruijnzeels 85378ff311 Cache the repository content: work around slow deserialization. (#606) 2021-07-16 11:02:47 +02:00
Ximon EighteenandGitHub cdaf0f35b0 Add some images to demonstrate Cyprss interactive UI testing with Krill. 2021-07-12 17:01:26 +02:00
Ximon Eighteen 475b644019 Fix doc image filename and trim doc image border. 2021-07-12 17:00:41 +02:00
Ximon Eighteen 40388d8106 Add some images for use in the development docs. 2021-07-12 16:56:30 +02:00
Tim BruijnzeelsandGitHub ff85ea5170 Release 0.9 (#523) 2021-06-01 12:54:50 +02:00
Tim Bruijnzeels 67227ffaf4 Update developer documentation (#527) 2021-05-20 12:51:52 +02:00
Tim Bruijnzeels 83bc1d7815 Update rc1 to rc2 in openapi spec. 2021-05-12 09:48:10 +02:00
Tim BruijnzeelsandGitHub 8ae546039a Remove resource classes (and withdraw objects) when a parent is removed (#508) 2021-05-04 14:58:28 +02:00
Tim BruijnzeelsandGitHub ba6ee80423 Updates for the v0.9.0-rc1 release (#489)
* Add documentation on releasing.
* Update version in Cargo.
* Update versions in openapi spec.
* Update changelog
2021-04-20 20:13:59 +02:00
Ximon EighteenandGitHub 13b6f7d1f3 Security tweaks (#382) (#484)
* Encrypt session state using ChaCha20-Poly1305 instead of AES-GCM.
* Replace config file users login use of insecure unsalted SHA2 password hashing with secure scrypt salted password hashing.
* Log the start of the request before determining the actor.
* Allow sufficient time for password hashing delays during login with config file user based tests..
* Synced with Lagosta commit b49f23de.
2021-04-20 00:47:22 +02:00
Tim BruijnzeelsandGitHub b43a6815cf Inconsistent and unacceptable token references (#433) (#483) 2021-04-19 22:23:02 +02:00
Tim BruijnzeelsandGitHub 3b139e4a9f Clippy and spelling fixes (#471)
* Fix clippy warnings.
* Fix spelling - as agreed use american spelling in code (like RFCs do as well).
2021-04-15 14:42:32 +02:00
2917e21c3b Ran cargo update (#366)
* Ran cargo update.
* Upgrade Oso and remove no-longer needed workaround.

Co-authored-by: Ximon Eighteen <3304436+ximon18@users.noreply.github.com>
2021-04-15 14:41:32 +02:00
7cb5674033 Stabilize API and CLI (#330 and #360)
* Move child_request API endpoint for conststency. (#330)
* Move get RFC 8183 Publisher Request API endpoints (#330)
* Accept XML and json to add/update parent on same endpoints (#330)
* Simplify the JSON to add a child and remove unused fields. (#330)
* Update path to child_request in openapi spec.
* Update path to publisher request.
* Update api spec and documentation.
* Fix update parent API documentation and call by CLI.
* CLI stability
* Update pubd OpenAPI spec t o match changes made to the Krill API.
* Update the e2e test client code to submit only the id_cert and not the whole RFC8183 request, as required by changes made to the Krill API.

Co-authored-by: Ximon Eighteen <3304436+ximon18@users.noreply.github.com>
2021-04-12 17:24:41 +02:00
Ximon EighteenandGitHub 5c15953738 Add developer docs for the multi-user feature. (#456) 2021-04-12 12:27:31 +02:00
a715c82f7f Remove embedded repo/ca choices (#461)
* Remove embedded repository contact option, migrate commands and events.
* Migrate old CA init events. Test upgrade from 0.6.0.
* Migrate embedded in CA history.

Co-authored-by: Ximon Eighteen <3304436+ximon18@users.noreply.github.com>
2021-04-01 17:18:28 +02:00
Ximon EighteenandGitHub f3e8023be5 Support fine grained access per CA (resolves #437) (#443)
- Various changes to support a grey policy in between black and white approach of permitting or denying access to CAs entirely, whereby a user can have a different role in one CA than in another.
- Introduces the NoResourceType for requests not relating to a specific "resource", e.g. CA, such as LOGIN. NoResourceType maps to `nil` in Oso policy language.
- Add support for Permission constants in Polar files. Build the Permission enum using a macro.
- Added CA_ADMIN (for bulk operations) and CA_DELETE permissions.
- Support loading more than one custom auth policy file.
- Checks were missing on some API calls if the user had the necessary permission *on the relevant resources*.
- Rename the team policy as a demo to indicate that it is educational only.
- Split a role-per-ca demo out of the team policy demo.
- Extend the with_ta Cypress test to cover the role-per-ca ca demo policy (as it creates the needed data).
- Don't misrepresent an external policy file in log statements as being internal.
- Better comments describing what the tests are doing.
- Remove unused role parameter in team access demo policy.
- Add disallow() in Oso policies as a way to define deny rules.
2021-03-25 21:35:38 +01:00
23be0b5ef7 Make testbed fully configurable through config section
* Let users configure the AIA to use with TA certificates. Set 'ta_aia' in the config file. (#409)
* Use explicit configuration section for testbed, no longer rely on magic env variables.

Note: this will all be revised again if/when the Publication server and TA vs CA code is fully separated in future.

Co-authored-by: Ximon Eighteen <3304436+ximon18@users.noreply.github.com>
2021-03-22 16:53:41 +01:00
e662c1553b Change to a hybrid event sourcing model for CAs and Repository. (#426)
This allows us to keep the full history of semantically important events, while not spamming the history and avoiding excessive use of disk space. See issues #370 and #423.

This is a substantial change. Highlights follow:
* Added a developer documentation section
* No longer using events for manifest/crl generation (#370)
* No longer using events for publication deltas (#423)
* Removed pre 0.6.0 migration code - people will have to upgrade to at least 0.6.0 first
* Added migration code for 0.6.0-0.8.1 to this
* Migrate repository by doing a keyroll. (#370)
* Remove archiving code for commands (no longer applicable)

Minor other fixes:
* Use a swap file when writing (avoid corrupt json if disk is full) (#370)
* Make removing publisher content idempotent for publishers already removed.

Co-authored-by: Ximon Eighteen <3304436+ximon18@users.noreply.github.com>
Co-authored-by: Jasper den Hertog <jasper@plainspace.com>
2021-03-17 12:08:36 +01:00
Ximon EighteenandGitHub cf1f8a9c16 Improvements and fixes for e2e testing on the Krill dev branch (#439)
Note: Until merged to master this branch requires that a branch by the same name exists in the rpki-deploy repo with the corresponding changes to support these changes, which include:

- OpenAPI YML corrections.
- Support the new way to activate the TA.
- FIX: Include the correct ta.cer URI in the TAL.
- Use two seprarate Python libraries for Krill: one for CA REST SAPIs and one for PUB REST APIs.
- FIX: Test for the actual CAs and resources to create, as the presence of the testbed CA violates the previous check assumptions.
- FIX: Resource ASN, v4 and v6 values can no longer be assumed to have the same sort order as when given to Krill.
- Factor out test suite code into helper functions for better readability and maintainability.
- Retry RTR fetching (needed for ROAs obtained from Rcynic Lihttpd server served JSON as otherwise connecting too early results in SyncTimeout).

Known issues: on failure all RP tests will retry 3 times while actually only the Rcynic test should retry.
2021-03-15 12:10:08 +01:00
Ximon EighteenandGitHub 58c9cb5a4b Use strongly typed permissions in policy rules. (#417)
* Use strongly typed Permission checks instead of unrestricted String based checks.

* FIX: Don't include Permission:: in the message logged at WARN level about a user not having permission, only log the permission name, e.g. CA_CREATE.

* FIX: Also update the team policy demo polar file to use the new Permission type.
2021-02-10 12:29:53 +01:00
Ximon EighteenandGitHub fa59e69d59 Bump 0.8.1-bis -> 0.8.2-bis. (#393) 2021-01-15 15:20:39 +01:00
Tim Bruijnzeels ece0950419 Remove HATEOS links from publisher list (make API consistent #330) 2021-01-07 09:56:26 +01:00
Tim Bruijnzeels 62aa602c4d Add openapi spec for krillpubd (#353) 2020-12-16 14:37:14 +01:00
Tim Bruijnzeels 3513f9e45b Update openapi spec for CA and PUBD split. (#353) 2020-12-16 14:21:44 +01:00
Ximon Eighteen 472a0e4751 Merge multi-user branch. Uses Lagosta master branch commit a7e73cba which includes multi-user support. 2020-12-07 16:55:40 +01:00
Tim Bruijnzeels 07dc36b9b9 Update versions. 2020-11-16 16:05:41 +01:00
Tim Bruijnzeels a318328a06 Update development version. 2020-10-27 09:00:12 +01:00
Tim Bruijnzeels fbc17548a0 Update version for release. 2020-10-26 15:14:42 +01:00
Tim Bruijnzeels 8a588a19d0 Update openapi spec wrt 0.8.0-rc1 and ROA functions. 2020-10-14 16:49:04 +02:00
Tim Bruijnzeels 79cb188e57 Remove date and version from man pages as they are poorly maintainable, and not interesting here. 2020-10-07 18:13:10 +02:00
Rafael CintraandTim Bruijnzeels 42fdd5ccf6 Small fixes for the openapi specification. 2020-09-08 09:56:35 +02:00
Ximon Eighteen cc6ab21258 Merge branch 'master' into 0.8.0-RC-dev 2020-08-27 09:45:56 +02:00
ximon18andGitHub 31f6ffd5db FIX: spelling error (thanks Lintian!) 2020-07-24 13:19:45 +02:00
Tim Bruijnzeels 4bb71cf7ad Update versions and changelog for release. 2020-07-06 12:24:11 +02:00
Tim Bruijnzeels 206cfc5c80 Update versions for 0.8.0 RC development. 2020-06-29 10:20:00 +02:00
Tim Bruijnzeels 3e517c0fa8 Update version to 0.7.2 2020-06-28 22:57:50 +02:00
Tim Bruijnzeels 5e42cc0031 Update development version. 2020-06-28 22:43:34 +02:00
Tim Bruijnzeels 627bf8bdca Update version to 0.7.1 2020-06-25 09:40:59 +02:00
ximon18andGitHub 7b75f52a8d Man page ver bump (#266)
* Bump krill man page to v0.7.0.

* Bump krillc man page to v0.7.0.
2020-06-24 11:47:09 +02:00
Tim BruijnzeelsandGitHub e706465d45 Change roa stale to roa unseen (#267) 2020-06-24 11:43:21 +02:00
Tim BruijnzeelsandGitHub d3e64a5b07 Merge pull request #265 from NLnetLabs/0.6.0-plus
0.6.0 plus
2020-06-23 16:24:09 +02:00
Ximon Eighteen 8431642a4a Create Krill DEB and RPM packages via GH actions:
- Assumes that the target system has ca-certificates installed already.
  - Vendor OpenSSL to support Ubuntu 16.04 which only has OpenSSL 1.0.0.
  - Use GH caching to avoid repeat compilation of unchanging cargo deb and krill dependencies.
  - Build in Docker containers as GH runners have too many non-standard packages and libraries pre-installed.
  - Sanity check the created DEB in targeted O/S versions via LXC/LXD containers (for systemd support).
2020-06-23 12:55:17 +02:00
Tim Bruijnzeels 9e58f528e0 Updating versions for release 0.7 2020-06-19 16:41:30 +02:00
Tim Bruijnzeels cb1ad601ca Clean up unneeded BGP analysis endpoints. (#259) 2020-06-19 10:18:19 +02:00