Choria supports a distributed authentication model as well as a centralised model using our Choria AAA Service. A Puppet user uses the distribution method by default.
In distributed mode every client has a certificate, signs his request with it and the certificate becomes the identity. The servers will verify using their RPC Authorization system if that certificate (id) can perform an action.
In the centralised setup each client do not have a certificate but it has a JWT token obtained from a sign-in service often using choria login
. The JWT holds the identity, policies, permissions and more. The AAA Service signs requests using its certificate allowing clients to publish signed requests. Effectively the signing step gets outsourced to a trusted 3rd party. Before signing a request a policy is evaluated on the AAA Service to determine if the request should be allowed.
The AAA Service was introduced in 2019 and we’ve improved on it in 2020 by allowing a client certificate free operation.
The Certificate Free operation was a big win, however it came at a considerable cost of requiring additional Choria Brokers to take client connections.
We made a number of improvements in Release 0.6.0, read the full entry for details.
[Read More]