Login
client calls login for the creds it has and gets an auth token. The auth token is then sent on each method call
db schema for security:
users
------
username | password | salt | token (default null) | token_expiration_ts (default 0)
Each time the service sees a token, it checks to see if exists in the db and is not expired and matches the username
Server based security
blah
Open Questions
- Should we require user authentication to invoke managed operations from the command line?
- These operations do not go through the client, so we would have to a) create special JMX hook into the server based authentication scheme or b) create a separate authentication scheme for managed operations.
- How should we hash passwords?
- Do we need a master serverKey hash? How is this generated and where is it stored?
- Do we need salt per user?
- Which hash algorithm should we use?
- Do we need to associate a fingerprint (ip address, etc) with each AccessToken?
- How would we get this info server side? Does the client need to pass it along when logging in?