An internal or external software module that provides an abstraction layer between an authentication system and individual user account system APIs. Each user account system has a purposed plug-in module. Which plug-in module is used by the authentication subsystem at run time comes from the authentication system's configuration. Each time support is added for a new user account system, a new plug-in module is written to support it.