Being on the intranet, of course, does not justify giving up security. The biggest damage done to the information is insiders. Look at the value of what is protected and take security into account.
It looks like there is a third-party application for which you have one set of credentials, and some clients that effectively exchange this identifier when using a third-party application. In this case, I recommend the following approach.
Do not distribute a third-party password outside the web server.
The safest way to do this is to provide its web application interactively. This can be a ServletContextListener, which asks for a password when the application starts, or a page in the application so that the administrator can enter it through the form. The password is stored in ServletContext and is used to authenticate requests to a third-party service.
A decrease in security means saving a password in the server file system so that it can only be read by a user working on the server. It depends on the permissions of the server file system for protection.
Trying to store an encrypted form of password on a client or server just takes a step back. You find yourself in endless regression, trying to protect a secret with a different secret.
In addition, clients must authenticate to the server. If the client is interactive, ask users to enter a password. The server can then decide whether this user has access to a third-party service. If the client is not interactive, the next best security is to protect the client password with file system permissions.
To protect client credentials, the channel between the client and your web server must be SSL protected. Here, working on the intranet is profitable because you can use a self-signed certificate on the server.
If you store passwords in a file, put them in the file yourself; it requires more thorough permission management and minimizes the need for many users to edit this file and thus see the password.
erickson Dec 03 '08 at 23:09 2008-12-03 23:09
source share