Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft: Add new control server subsystem to store ZTA data on disk #1917

Open
RebeccaMahany opened this issue Oct 25, 2024 · 0 comments
Open
Labels
features-improvements Features and Improvements

Comments

@RebeccaMahany
Copy link
Contributor

RebeccaMahany commented Oct 25, 2024

We want a new control server subsystem (name of subsystem TBD) that accepts a signed JWT or PASETO. The subsystem should validate this data, then write it to disk as a .zta file (file location and permissions TBD).

We may want the file location to be dictated by the control server. If so, the subsystem should have an allowlist for permitted locations.

The subsystem should also write its data to the launcher database, in a new data store.

Notes on implementation:

  • Look here and here for adding a new store.
  • We have a few available patterns for how to process data from this subsystem:
    • We could use the keyvalueconsumer as our consumer for this new subsystem. This consumer will automatically write the provided data to the given data store. We would then add a new subscriber that, on call to Ping, validates the data in the data store and writes it to disk. The drawback to this approach is that we can't validate the signed JWT or PASETO before writing it to the data store.
    • We could instead add one consumer that, on Update, validates the data, writes it to disk, and stores it in the data store. The drawback to this approach is that we are re-implementing parts of the keyvalueconsumer.
  • If we use a JWT, there are a couple places in the codebase you can look at for parsing/validating: kolide_jwt table, enroll-secret checkup.
@RebeccaMahany RebeccaMahany added the features-improvements Features and Improvements label Oct 25, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
features-improvements Features and Improvements
Projects
None yet
Development

No branches or pull requests

1 participant