Authentication and authorization
How a humus service authenticates and authorizes the requests it serves with the auth package: schemes and their typed principals, read with From, requirements and scopes, opening a path with auth.Disabled(), the three places they are enforced, openapi.Security, auth.NewHandler and grpcauth.Interceptors, the answers and WWW-Authenticate challenges, probes left open over HTTP and gRPC, verifying JWTs with auth/jwt on a RemoteKeySet or a KeySet of one’s own, answering a *jwt.KeySetError, what humus records, and how to test all of it.