You need to come up with some way of identifying this machine. What iis important in your application? Physical location? IP address?
If you have complete control over the machines I would use SSL with client certficates, and put the client certificate only on the machine that must be used. See here for details on how to configure this with Apache
As that article says, you can set Apache to require the certificate, a user name and password AND limit connectivity to specifc IP addresses.
EDIT: You don't need a separate web server to use client certificates.
You might need a separate URL depending on how your application works.
Note the example configures certificates only for a certain Directory
<Directory "/www/hidden/docs">
. So have certain classes of user login differently, or redirect them after login to the client-certificate-protected part of your website