Assuming you are talking about a web application. What you are really looking for are X.509 client certificates (1.3.6.1.5.5.7.3.2). This will allow you to identify the user individually for your application.
They face the same problems that they usually face when considering key distribution. What is usually considered a difficult problem.
If you want to go down this road, here is what you need to do.
- Create a root certificate (once)
- Install a web server with the appropriate modules for certificate analysis (nginx / apache)
- Generate a certificate for each user (openssl)
- Download the certificate from a centralized server. (maybe their ssh pub key is used here)
- Install x509 locator locally (OS dependent)
On the server side, you need to process the certificate as part of the web server (nginx or apache must have modules for this), and then pass the name to your application as a header field, which can then be processed internally.
This is a much better security solution than usernames and passwords, but it is difficult due to a key distribution problem. Most people do not have to worry, as in most applications it is easy enough to integrate logins with LDAP or radius.
Luke exton
source share