# Functions
GetPrincipal takes the request context and determines which middleware (identity header vs service to service) was used before returning a principal object.
# Structs
AuthMiddleware allows the passage of parameters into the Authenticate middleware.
# Interfaces
Principal interface can be implemented and expanded by various principal objects (type depends on middleware being used).