open-nomad/helper
Tim Gross e0fddee386
Pre forwarding authentication (#15417)
Upcoming work to instrument the rate of RPC requests by consumer (and eventually
rate limit) require that we authenticate a RPC request before forwarding. Add a
new top-level `Authenticate` method to the server and have it return an
`AuthenticatedIdentity` struct. RPC handlers will use the relevant fields of
this identity for performing authorization.

This changeset includes:
* The main implementation of `Authenticate`
* Provide a new RPC `ACL.WhoAmI` for debugging authentication. This endpoint
  returns the same `AuthenticatedIdentity` that will be used by RPC handlers. At
  some point we might want to give this an equivalent HTTP endpoint but I didn't
  want to add that to our public API until some of the other Workload Identity
  work is solidified, especially if we don't need it yet.
* A full coverage test of the `Authenticate` method. This sets up two server
  nodes with mTLS and ACLs, some tokens, and some allocations with workload
  identities.
* Wire up an example of using `Authenticate` in the `Namespace.Upsert` RPC and
  see how authorization happens after forwarding.
* A new semgrep rule for `Authenticate`, which we'll need to update once we're
  ready to wire up more RPC endpoints with authorization steps.
2022-12-06 14:44:03 -05:00
..
args
boltdd deps: update set and test (#14680) 2022-09-26 08:28:03 -05:00
broker core: allow pausing and un-pausing of leader broker routine (#13045) 2022-07-06 16:13:48 +02:00
bufconndialer test: test the buffered pipe used by nsd (#12563) 2022-04-14 08:38:25 -07:00
codec Provide mock secure variables implementation (#12980) 2022-07-11 13:34:03 -04:00
constraints/semver chore: fix incorrect docstring formatting. 2021-08-30 11:08:12 +02:00
crypto keyring: wrap root key in key encryption key (#14388) 2022-08-30 10:59:25 -04:00
discover chore: fix incorrect docstring formatting. 2021-08-30 11:08:12 +02:00
envoy ci: swap ci parallelization for unconstrained gomaxprocs 2022-03-15 12:58:52 -05:00
escapingfs cleanup: move fs helpers into escapingfs 2022-08-24 14:45:34 -05:00
escapingio build: run gofmt on all go source files 2022-08-16 11:14:11 -05:00
fields
flags ci: swap ci parallelization for unconstrained gomaxprocs 2022-03-15 12:58:52 -05:00
flatmap
freeport ci: swap ci parallelization for unconstrained gomaxprocs 2022-03-15 12:58:52 -05:00
gated-writer
grpc-middleware/logging
ipaddr helper: add ipaddr pkg to check for any IP addresses. 2022-03-03 11:24:50 +01:00
logging
mount deps: upgrade docker and runc 2022-01-18 08:35:26 -06:00
noxssrw lint: mark false positive or fix gocritic append lint errors. 2021-09-06 10:49:44 +02:00
pluginutils cleanup: replace TypeToPtr helper methods with pointer.Of (#14151) 2022-08-17 18:26:34 +02:00
pointer cleanup: rename Equals to Equal for consistency (#14759) 2022-10-10 09:28:46 -05:00
pool rpc: fix race in conn last used tracking (#14173) 2022-08-17 14:57:53 -07:00
raftutil acl: sso auth method schema and store functions (#15191) 2022-11-10 19:42:41 +01:00
snapshot snapshot restore-from-archive streaming and filtering (#13658) 2022-07-11 10:48:00 -04:00
stats chore: fix incorrect docstring formatting. 2021-08-30 11:08:12 +02:00
testlog tests: add a space between node name and timestamp (#13750) 2022-07-13 16:23:03 -04:00
testtask gofmt all the files 2021-10-01 10:14:28 -04:00
tlsutil Pre forwarding authentication (#15417) 2022-12-06 14:44:03 -05:00
useragent
users helpers: lockfree lookup of nobody user on unix systems (#14866) 2022-10-11 08:38:05 -05:00
uuid keyring: wrap root key in key encryption key (#14388) 2022-08-30 10:59:25 -04:00
winsvc gofmt all the files 2021-10-01 10:14:28 -04:00
cluster.go helper: guard against negative inputs into random stagger 2022-09-08 09:17:48 -05:00
cluster_test.go deps: update set and test (#14680) 2022-09-26 08:28:03 -05:00
eof.go feat: remove dependency to consul/lib 2022-04-09 13:22:44 +02:00
funcs.go client: avoid unconsumed channel in timer construction (#15215) 2022-11-11 09:31:34 -06:00
funcs_test.go client: avoid unconsumed channel in timer construction (#15215) 2022-11-11 09:31:34 -06:00