Skip to content

TrustGate is a secure reverse proxy that implements zero trust principles for accessing internal services. It provides OAuth2 authentication, policy-based access control, and comprehensive monitoring.

Notifications You must be signed in to change notification settings

Yash-Chandrani/TrustGate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TrustGate: Zero Trust Access Proxy

TrustGate is a secure reverse proxy that implements zero trust principles for accessing internal services. It provides OAuth2 authentication, policy-based access control, and comprehensive monitoring.

Features

  • OAuth2 Authentication (Google/GitHub SSO)
  • Policy-based Access Control
  • JWT Token Management
  • Prometheus Metrics
  • TLS Support
  • Kubernetes Deployment Ready

Prerequisites

  • Go 1.21 or later
  • Kubernetes cluster
  • OAuth2 credentials (Google/GitHub)
  • TLS certificates

Configuration

Create a config.yaml file with the following structure:

server:
  port: 8080
  tls:
    enabled: true
    cert_file: "cert.pem"
    key_file: "key.pem"

oauth:
  provider: "google"  # or "github"
  client_id: "your-client-id"
  client_secret: "your-client-secret"
  redirect_url: "https://your-domain/oauth/callback"

proxy:
  target_url: "http://internal-service:8080"
  allowed_ips: ["10.0.0.0/8"]
  allowed_emails: ["[email protected]"]

jwt:
  secret: "your-jwt-secret"
  expiration: 3600  # in seconds

Building

go build -o trustgate

Running

./trustgate

Kubernetes Deployment

See the k8s directory for deployment manifests.

Metrics

Prometheus metrics are available at /metrics endpoint.

License

MIT

About

TrustGate is a secure reverse proxy that implements zero trust principles for accessing internal services. It provides OAuth2 authentication, policy-based access control, and comprehensive monitoring.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published