Your outer layer of security sounds fine. You should also make sure that:
- Your application is secure. The application should be very carefully written, should use taint mode, etc.
- Your server is secure. Make sure other services are locked-down, it's probably behind a firewall, running only necessary services. You should be running a secure operating system, probably some kind of Unix. Also make sure you have a procedure for regularly updating the installed components of your OS, such as Debian's apt-get or RedHat's up2date.
- Your network is secure. Your router and switches should be reasonably well-protected, etc.
- Your clients are secure. Make sure they're running secure OS's, if possible, and are regularly updated. If one of your clients is taken over by the latest virus and an intruder gains access to the keyboard and screen of the machine, all of your other security is worthless.
If you want to do MAC-level filtering, it's probably best to do that at the OS/firewall level; that information isn't readily available to a userspace program. Of course this will only work for machines on the same LAN as you, and users can change their MAC address, so this doesn't add too much.