Enterprise Deployment Guide

This guide covers deploying AegisGate Platform in enterprise environments, tying together SSO authentication, SIEM log forwarding, SOAR incident automation, compliance frameworks, and multi-tenant isolation into a single coherent deployment architecture.


Architecture Overview

graph TB subgraph "Identity Layer" IDP[Okta / Azure AD / Keycloak] end subgraph "AegisGate Platform" SSO[SSO Manager
SAML 2.0 + OIDC] PROXY[Proxy + Detection Engine] TRUST[Trust Framework] COMPLIANCE[Compliance Engine
SOC 2 / HIPAA / PCI] AUDIT[Audit Pipeline] end subgraph "Integration Layer" SIEM[SIEM Forwarder
12 platforms] SOAR[SOAR Manager
4 platforms] WEBHOOK[Webhook Notifier] end subgraph "External Systems" SPLUNK[Splunk / Datadog / QRadar] PD[PagerDuty / Jira / ServiceNow] SLACK[Slack / Teams] end IDP -->|SAML/OIDC| SSO SSO --> PROXY PROXY --> TRUST PROXY --> COMPLIANCE PROXY --> AUDIT AUDIT --> SIEM AUDIT --> SOAR AUDIT --> WEBHOOK SIEM --> SPLUNK SOAR --> PD WEBHOOK --> SLACK style SSO fill:#1a1f2e,stroke:#38bdf8,stroke-width:2px style PROXY fill:#1a1f2e,stroke:#f59e0b,stroke-width:2px style TRUST fill:#1a1f2e,stroke:#22c55e,stroke-width:2px style SIEM fill:#1a1f2e,stroke:#a855f7,stroke-width:2px style SOAR fill:#1a1f2e,stroke:#ec4899,stroke-width:2px

Prerequisites

Infrastructure

ComponentRequirementPurpose
PostgreSQL 14+Required for Enterprise tierPersistent sessions, audit logs, RBAC, multi-tenant isolation
TLS certificateX.509 cert + private keyHTTPS for proxy and dashboard
Reverse proxynginx, HAProxy, or cloud load balancerTLS termination, load balancing, WAF
DNSA/AAAA record for platforme.g., aegisgate.yourcompany.com

Identity Provider

One of the following SAML 2.0 or OIDC compliant IdPs:

ProviderProtocolNotes
OktaSAML 2.0, OIDCMost common enterprise choice
Microsoft Entra ID (Azure AD)OIDC, SAML 2.0Use azure provider type
Google WorkspaceOIDCUse google provider type, set gsuite_domain
KeycloakSAML 2.0, OIDCOpen-source, self-hosted
PingFederateSAML 2.0Enterprise federation
OneLoginSAML 2.0, OIDCCloud IdP
Auth0OIDCDeveloper-friendly

See the SSO Configuration Guide for provider-specific setup instructions.

One or more of: Splunk, Elasticsearch, IBM QRadar, Microsoft Sentinel, Sumo Logic, LogRhythm, AWS CloudWatch, AWS Security Hub, Micro Focus ArcSight, Datadog, Syslog, or custom webhook.

SOAR Platform (Optional)

One or more of: PagerDuty, Jira, ServiceNow, or custom webhook.


Deployment Profiles

AegisGate supports three deployment profiles. Choose based on your scale and requirements.

Profile 1: Single-Instance (Up to 500 users)

# aegisgate-platform.yaml
server:
  proxy_port: 8443
  dashboard_port: 8444
  tls_cert: /etc/aegisgate/cert.pem
  tls_key: /etc/aegisgate/key.pem

database:
  url: "postgres://aegisgate:password@localhost:5432/aegisgate"

sso:
  enabled: true
  # See SSO Configuration Guide for provider config

siem:
  enabled: true
  # See SIEM & SOAR Integration guide

soar:
  enabled: true
  # See SIEM & SOAR Integration guide

trust:
  enabled: true
  require_license: true

ml_threat_detection_enabled: true
ml_shadow_mode: false  # Set to true for first 7 days

Infrastructure: Single VM or container, PostgreSQL on same host or managed service.

Profile 2: Multi-Instance with Load Balancer (500–5000 users)

# Shared PostgreSQL (managed or dedicated)
database:
  url: "postgres://aegisgate:password@pg-cluster.internal:5432/aegisgate"
  max_connections: 50

# Redis for distributed state (if using cluster features)
cluster:
  enabled: true
  redis_url: "redis://redis.internal:6379"

# Each instance runs behind a load balancer
# TLS terminated at the load balancer (nginx/ALB)

Infrastructure: 2–5 AegisGate instances behind a load balancer, managed PostgreSQL, Redis for cluster coordination.

Profile 3: Air-Gapped / On-Premises Enterprise

# No external network access
server:
  proxy_port: 8443
  dashboard_port: 8444

database:
  url: "postgres://aegisgate:password@db.internal:5432/aegisgate"

# SSO via on-prem IdP (Keycloak, AD FS)
sso:
  enabled: true
  saml:
    enabled: true
    idp_metadata_url: "https://keycloak.internal/realms/your-realm/protocol/saml/descriptor"

# SIEM via internal Syslog or Splunk HEC
siem:
  enabled: true
  platforms:
    - platform: splunk
      endpoint: "https://splunk.internal:8088/services/collector"
      token: "${SPLUNK_HEC_TOKEN}"

# No external API calls
ml_shadow_mode: false

Infrastructure: Fully isolated network, on-prem IdP, on-prem SIEM, no internet egress.


SSO Configuration

1. Configure your Identity Provider

Create an application in your IdP for AegisGate:

  • Assertion Consumer Service (ACS) URL: https://aegisgate.yourcompany.com/auth/callback
  • Entity ID: https://aegisgate.yourcompany.com
  • Name ID format: Email address
  • Attributes to release: email, name, groups (for role mapping)

2. Configure AegisGate SSO

Edit configs/sso.yaml:

sso:
  enabled: true

  oidc:
    enabled: true
    provider: azure           # or: google, okta, generic
    client_id: "your-client-id"
    client_secret: "your-client-secret"
    redirect_url: "https://aegisgate.yourcompany.com/auth/callback"
    scopes:
      - openid
      - profile
      - email

  session:
    duration_hours: 8
    secure: true
    same_site: "lax"

3. Map IdP Groups to AegisGate Roles

sso:
  role_mappings:
    - idp_group: "security-admins"
      aegisgate_role: "admin"
    - idp_group: "security-analysts"
      aegisgate_role: "analyst"
    - idp_group: "developers"
      aegisgate_role: "viewer"

  allowed_domains:
    - "yourcompany.com"
    - "subsidiary.com"

4. Verify SSO

# Test SSO login flow
curl -L https://aegisgate.yourcompany.com/auth/login

# Should redirect to your IdP login page
# After authentication, should redirect back to dashboard

See the SSO Configuration Guide for provider-specific step-by-step instructions.


SIEM Integration

Enable SIEM Forwarding

siem:
  enabled: true
  source: "aegisgate-prod"
  poll_interval: 5s
  batch_size: 100
  platforms:
    - platform: splunk
      endpoint: "https://splunk.yourcompany.com:8088/services/collector"
      token: "${SPLUNK_HEC_TOKEN}"
      format: json
      enabled: true

    - platform: datadog
      endpoint: "https://api.datadoghq.com/api/v2/logs"
      token: "${DD_API_KEY}"
      format: json
      enabled: true

Supported SIEM Platforms

PlatformFormatAuthentication
SplunkCEF, JSONHEC token
ElasticsearchJSONAPI key, basic auth
IBM QRadarLEEF, JSONAPI key, basic auth
Microsoft SentinelJSONOAuth2, API key
Sumo LogicJSONAPI key
LogRhythmJSON, CEFAPI key
AWS CloudWatchJSONIAM access key
AWS Security HubJSONIAM access key
Micro Focus ArcSightCEFAPI key, basic auth
DatadogJSONAPI key
Syslog (RFC 5424)SyslogNone
Custom webhookJSONAPI key, HMAC, OAuth2

Verify SIEM Forwarding

# Check SIEM status
curl -H "X-API-Key: your-key" \
  https://aegisgate.yourcompany.com/api/v1/siem/status

# Generate a test event
curl -X POST -H "X-API-Key: your-key" \
  -d '{"content":"test-secret AKIAIOSFODNN7EXAMPLE"}' \
  https://aegisgate.yourcompany.com/v1/scan

# Check your SIEM for the forwarded event

See the SIEM & SOAR Integration guide for full configuration details.


SOAR Integration

Enable SOAR Incident Automation

soar:
  enabled: true
  platforms:
    - platform: pagerduty
      endpoint: "https://events.pagerduty.com/v2/enqueue"
      token: "${PAGERDUTY_INTEGRATION_KEY}"
      severity_threshold: "high"  # Only high+ severity triggers SOAR

    - platform: jira
      endpoint: "https://yourcompany.atlassian.net"
      token: "${JIRA_API_TOKEN}"
      project: "SEC"
      severity_threshold: "medium"

    - platform: servicenow
      endpoint: "https://yourcompany.service-now.com"
      token: "${SN_API_TOKEN}"
      severity_threshold: "critical"

Severity Mapping

AegisGate SeverityPagerDutyJiraServiceNow
CriticalcriticalHighest1 - Critical
HigherrorHigh2 - High
MediumwarningMedium3 - Moderate
LowinfoLow4 - Low

Supported SOAR Platforms

PlatformIntegration TypeKey Features
PagerDutyEvents API v2Dedup keys, severity-based routing
JiraREST APICreate issues with priority mapping
ServiceNowREST APICreate incidents with severity mapping
Custom webhookHTTP POSTHMAC-SHA256 signed, custom headers

Compliance Configuration

Enable Compliance Frameworks

compliance:
  enabled: true
  frameworks:
    - soc2
    - hipaa
    - pci_dss
    - eu_ai_act
    - nist_ai_rmf
    - owasp_llm
    - iso_27001

  # Live compliance scanning
  live_scan: true
  scan_interval: 1h

  # Report generation
  auto_generate_reports: true
  report_retention_days: 365

Compliance API Endpoints

EndpointMethodPurpose
/api/v1/complianceGETGenerate compliance report for a framework
/api/v1/compliance/liveGETGet live compliance status
/api/v1/dsar/exportPOSTGDPR data subject access request — export
/api/v1/dsar/erasePOSTGDPR data subject access request — erasure
/api/v1/legal-holdsPOSTCreate legal hold (e-discovery)
/api/v1/legal-holdsGETList legal holds
/api/v1/legal-holds/{id}DELETERelease a legal hold
/api/v1/legal-holds/check/{entityID}GETCheck if entity is under hold

DSAR (GDPR) Workflow

Request received  POST /api/v1/dsar/export  Data bundle generated
                  POST /api/v1/dsar/erase   Data erased (if not under legal hold)
                                               409 Conflict if under hold
Litigation notice → POST /api/v1/legal-holds → Entity's data frozen
                  → DSAR erasure blocked (409 Conflict)
                  → DELETE /api/v1/legal-holds/{id} → Hold released, data can be pruned

Trust Framework Configuration

trust:
  enabled: true
  require_license: true
  score_threshold_suspicious: 50
  score_threshold_blocked: 50
  anomaly_sensitivity: 0.3
  incident_decay_hours: 168

See the Trust Framework Architecture for the full technical deep-dive.


Multi-Tenant Configuration

For organizations serving multiple customers or business units:

multi_tenant:
  enabled: true
  default_tenant: "default"

  # Tenant isolation via Row-Level Security (RLS)
  rls:
    enabled: true
    policy_column: "tenant_id"

  # Per-tenant configuration
  tenants:
    - id: "tenant-a"
      name: "Business Unit A"
      sso_provider: "okta-tenant-a"
      siem_platform: "splunk-tenant-a"
    - id: "tenant-b"
      name: "Business Unit B"
      sso_provider: "azure-tenant-b"
      siem_platform: "datadog-tenant-b"

Each tenant has isolated:

  • SSO provider configuration
  • SIEM forwarding destinations
  • Audit logs (RLS-enforced)
  • Trust Framework agents
  • Compliance reports
  • RBAC roles and permissions

ML Threat Detection

  1. Days 1–7: Shadow mode (log-only, no blocking)

    ml_threat_detection_enabled: true
    ml_shadow_mode: true
    

    Review shadow predictions. Check for false positives in your environment.

  2. Day 8: Enable active blocking

    ml_threat_detection_enabled: true
    ml_shadow_mode: false
    
  3. Ongoing: Monitor via SIEM and SOAR integrations

A/B Testing

Compare ML model variants before promoting to production:

# Create an A/B test
curl -X POST -H "X-API-Key: your-key" \
  -d '{
    "name": "v4.4-evaluation",
    "description": "Compare current vs new model",
    "variants": [
      {"name": "champion", "weight": 90, "model_ref": "model-v11b"},
      {"name": "challenger", "weight": 10, "model_ref": "model-v12"}
    ]
  }' \
  https://aegisgate.yourcompany.com/api/v1/abtest/tests

# Start the test
curl -X POST -H "X-API-Key: your-key" \
  https://aegisgate.yourcompany.com/api/v1/abtest/tests/{id}/start

# Check metrics
curl -H "X-API-Key: your-key" \
  https://aegisgate.yourcompany.com/api/v1/abtest/tests/{id}/metrics

High Availability

Health Checks

# Basic health (proxy + persistence + license + certificates)
curl https://aegisgate.yourcompany.com/health

# Extended health (includes scanner + A2A)
curl https://aegisgate.yourcompany.com/api/v1/health

# Readiness check (for load balancer)
curl https://aegisgate.yourcompany.com/ready

Load Balancer Configuration

Configure your load balancer with:

  • Health check path: /ready
  • Health check interval: 10s
  • Unhealthy threshold: 3 consecutive failures
  • Sticky sessions: Not required (state is in PostgreSQL)
  • TLS termination: At load balancer (recommended) or at AegisGate

Database

  • Use managed PostgreSQL (AWS RDS, Azure Database, Cloud SQL) or a PostgreSQL cluster
  • Connection pooling: Configure max_connections based on instance count (recommend 20–50 per instance)
  • Backups: Daily snapshots + WAL archiving for point-in-time recovery
  • RLS: Enable row-level security for multi-tenant isolation

Security Hardening Checklist

ItemStatusNotes
TLS enabled on proxy + dashboardUse valid certificate from your CA
SSO enabled (no local-only auth)See SSO Configuration Guide
SIEM forwarding enabledForward all audit events to your SIEM
SOAR alerts configuredAt minimum, critical severity → PagerDuty
ML threat detection enabledStart with shadow mode for 7 days
Trust Framework enabledRequired for Professional+ tier
Multi-tenant RLS enabledIf serving multiple tenants
RBAC roles configuredMap IdP groups to AegisGate roles
Allowed domains restrictedOnly your corporate domains
Cookie secure flagsecure: true in SSO config
Audit log retention configuredMinimum 365 days for compliance
Legal hold policy documentedFor e-discovery readiness
DSAR process documentedFor GDPR compliance
Rate limiting configuredPer-tier and per-agent limits
CA keys encrypted at restFor Rampart instances connecting to Platform

Monitoring & Observability

Prometheus Metrics

AegisGate exposes Prometheus metrics at /metrics:

aegisgate_requests_total{tier="enterprise",result="blocked"}
aegisgate_threats_detected_total{category="pii",layer="l1"}
aegisgate_ml_inference_latency_ms
aegisgate_trust_score{agent="agent-001"}
aegisgate_siem_events_forwarded_total{platform="splunk"}
aegisgate_soar_incidents_sent_total{platform="pagerduty"}

Grafana Dashboards

Pre-built Grafana dashboards are available for:

  • Request volume and threat detection rates
  • ML model performance (latency, accuracy, shadow mode comparison)
  • Trust Framework scores and agent activity
  • SIEM forwarding health
  • SOAR incident delivery

See Grafana Dashboards for dashboard JSON templates.

Distributed Tracing

AegisGate supports OpenTelemetry distributed tracing. See Distributed Tracing for configuration.


Day 2 Operations

Routine Tasks

FrequencyTaskHow
DailyReview blocked threatsSIEM dashboard or /api/v1/audit
DailyCheck SIEM/SOAR health/api/v1/siem/status
WeeklyReview trust score trendsTrust Framework dashboard
WeeklyReview ML false positivesA/B test metrics or audit log filter
MonthlyCompliance report generation/api/v1/compliance?framework=soc2
MonthlyReview RBAC role assignmentsIdP group membership audit
QuarterlyLegal hold review/api/v1/legal-holds
QuarterlyDSAR process testSubmit test DSAR export/erase

See Day 2 Operations for the full operations runbook.


Troubleshooting

SSO login fails

  1. Check SSO config: cat configs/sso.yaml
  2. Verify IdP metadata is accessible: curl -I {idp_metadata_url}
  3. Check logs for SSO errors: journalctl -u aegisgate | grep SSO
  4. Verify redirect URL matches IdP configuration
  5. See SSO Configuration Guide troubleshooting section

SIEM events not arriving

  1. Check SIEM status: GET /api/v1/siem/status
  2. Verify network connectivity to SIEM endpoint
  3. Check SIEM platform credentials
  4. Review SIEM platform logs for received events
  5. See SIEM & SOAR Integration troubleshooting

ML model not loading

  1. Verify model file exists: ls -la pkg/ml/models/threat_cnn_bilstm.onnx
  2. Check model hash matches expected: compare SHA-256 with ExpectedModelHash in config
  3. Review logs: journalctl -u aegisgate | grep "ml\|onnx\|model"
  4. Verify ONNX runtime is available

Trust score not updating

  1. Verify Trust Framework is enabled: trust.enabled: true in config
  2. Check agent has activity: GET /api/v1/trust/sessions?active=true&agent=ID
  3. Review score factors: GET /api/v1/trust/score?agent=ID
  4. Check for blocking incidents in audit log