Make authentication more configurable and extendable.

Signed-off-by: Jason Lewis <jason.lewis1991@gmail.com>