(Because that part has already been reviewed but not yet merged, so to avoid confusion...)
Auth stuff. Here is how it works (this should be part of some documentation but not sure where... Better to put it in the wiki, I think?)
Root service, at /auth URL, provides authentication service. Currently it
is username/password based but can be key-based in the future. Also,
currently username/password is checked against a SQL database, but
we can easily add other authentication backends.
Each other service is provided username and password on the command line.
As a first thing, as part of GetClientConfig(), each service sends
its credential to the auth url from (1), and, if successful, gets a
JWT (Jason Web Token) with roles (for now; they are unused) that this
user has, signed with the private key (specified in the YAML config file).
RestClient saves this information and uses it for subsequent requests
(this is sent in Authorization header).
Each service also provides authentication middleware that checks
this token (with public key specified in YAML config file).
(Because that part has already been reviewed but not yet merged, so to avoid confusion...)
Auth stuff. Here is how it works (this should be part of some documentation but not sure where... Better to put it in the wiki, I think?)