Authentication strategy interface. Implementations extract credentials
from a request and return a principal, or null if the strategy
does not apply.
readonly
name: string
Strategy name for identification.
authenticate(request: IRequest): Promise<IPrincipal | null>
Attempt to authenticate the request.