Hi,
There is another potential functionality we would like to discuss and get some comments for. The idea is TLS certificate based authorization. Currently, if a user wants secure communication (TLS) + authorization, he needs to enable TLS and access control. The user also needs to handle both the certificates for TLS and the credentials for access control. The idea we have is to use both features: TLS and access control, but remove the need to handle the credentials (generating and securely storing the username and password). Instead of the credentials, the certificate subject DN would be used for authorization. This would of course be optional. We would leave the possibility to use these 2 features as they are right now, but would also provide a configuration option to use the features without the need for client credentials, utilizing the certificate information instead. For further clarity, here are the descriptions of how the options would work: 1. Using TLS and access control as they work right now * Certificates are prepared for TLS * A SecurityManager is prepared for access control authentication/authorization. As part of this, a file (e.g. security.json) is prepared where we define the allowed usernames, passwords and authorization rights for each username * The credentials are distributed towards clients. Here a user needs to consider secure distribution and periodical rotation of credentials. Once a client initiates a connection, we first get the TLS layer and certificate check, and right after that we perform the authentication/authorization of the user credentials. 1. TLS certificate based authorization * Certificates are prepared for TLS * A SecurityManager is prepared for access control authentication/authorization. As part of this, a file (e.g. security.json) is prepared. In this case we don’t define the authorization rights based on usernames/passwords but based on certificate subject DNs. * There is no more need to distribute or periodically rotate the credentials, since there would be none. Authorization would be based on the subject DN fetched from the certificate used for that same connection Once a client initiates a connection, and when we get past the TLS layer, at the moment where geode expects the credentials from the client connection, we just take the certificate subject DN instead and provide it to the security manager for authorization. This wouldn’t lower the level of security (we can have TLS enabled without access control already), but would provide authentication without the hassle of username and password handling. This is the basic description of the idea. There would be more things to consider, like multi user authentication, but for now we would just like to get some initial feedback. If it is considered useful, we could get into the details. BR, Mario