mirror of
https://github.com/pomerium/pomerium.git
synced 2025-08-02 08:19:23 +02:00
authorize: add client mTLS support (#751)
* authorize: add client mtls support * authorize: better error messages for envoy * switch from function to input * add TrustedCa to envoy config so that users are prompted for the correct client certificate * update documentation * fix invalid ClientCAFile * regenerate cache protobuf * avoid recursion, add test * move comment line * use http.StatusOK * various fixes
This commit is contained in:
parent
3f1faf2e9e
commit
e4832cb4ed
24 changed files with 995 additions and 279 deletions
|
@ -10,7 +10,7 @@ import (
|
|||
|
||||
// Evaluator specifies the interface for a policy engine.
|
||||
type Evaluator interface {
|
||||
IsAuthorized(ctx context.Context, input interface{}) (*pb.IsAuthorizedReply, error)
|
||||
IsAuthorized(ctx context.Context, req *Request) (*pb.IsAuthorizedReply, error)
|
||||
PutData(ctx context.Context, data map[string]interface{}) error
|
||||
}
|
||||
|
||||
|
@ -44,6 +44,11 @@ type Request struct {
|
|||
// It is an error to set this field in an HTTP client request.
|
||||
RequestURI string `json:"request_uri,omitempty"`
|
||||
|
||||
// Connection context
|
||||
//
|
||||
// ClientCertificate is the PEM-encoded public certificate used for the user's TLS connection.
|
||||
ClientCertificate string `json:"client_certificate"`
|
||||
|
||||
// Device context
|
||||
//
|
||||
// todo(bdd): Use the peer TLS certificate to bind device state with a request
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue