A computer program product for use in a network environment including a first computing system, and a second computing system that executes an authenticator, the computer program product comprising one or more computer-readable storage media having thereon computer-executable instructions that, when executed by one or more processors at the first computer system, cause the first computing system to implement a supplicant that communicates with the authenticator to accomplish authentication of the first computing system or its user in a manner that is independent of the underlying data link and physical layer protocols used to communicate between the first and second computing systems, and cause the following:
- an act of the first computing system establishing a data link layer connection with the second computing system using data link and physical layer protocols;
- an act of the supplicant receiving an indication that the data link layer connection has been established;
- an act of the supplicant determining that authentication is to occur with the authenticator;
- an act of the supplicant providing an instruction that authentication is to occur with the authenticator, the instruction being provided to an abstraction module and in a manner that is independent of the underlying data link and physical layer protocols used by data link and physical layer modules of the first computing system to communicate with the second computing system;
- and
- converting the instruction that is received from the supplicant at the abstraction module and into a form that is interpretable by the data link and physical layer modules of the first computing system.