This section covers security features for ServicePulse, including authentication, transport layer security (TLS), and reverse proxy configuration.
In this section
- Security Configuration - Configuration reference for TLS and forward headers
- Hosting Guide - Deployment scenarios with complete configuration examples
Authentication
ServicePulse supports standards-based authentication using OAuth 2.0 with JSON Web Tokens (JWT), and OpenID Connect (OIDC).
Authentication is configured in ServiceControl, not in ServicePulse itself. ServicePulse retrieves authentication configuration from the ServiceControl API and handles the OAuth flow automatically.
When authentication is enabled on ServiceControl:
- ServicePulse retrieves authentication configuration from an anonymous ServiceControl endpoint
- Users sign in through the configured identity provider
- API requests to ServiceControl include a JWT bearer token in the
Authorizationheader - ServiceControl validates the token against the configured authority
TLS
When authentication is enabled, access tokens are exchanged between ServicePulse and ServiceControl. To protect these tokens, TLS must be enabled.
Without TLS, tokens are transmitted in clear text, exposing the system to interception and unauthorized access. Always use HTTPS in production environments.
ServicePulse supports two approaches for HTTPS:
- Direct HTTPS: Configure Kestrel to handle TLS with a certificate
- Reverse proxy: Terminate TLS at a reverse proxy (NGINX, IIS, Azure App Gateway, etc.) and forward requests to ServicePulse over HTTP
Reverse proxy support
When ServicePulse runs behind a reverse proxy, forwarded headers ensure ServicePulse correctly interprets client requests. This is important for:
- Determining the original client IP address
- Understanding whether the original request used HTTPS
- Generating correct redirect URLs
Deployment scenarios
The Hosting Guide provides complete configuration examples for common deployment patterns:
- Default configuration: No authentication, HTTP only (backward compatible)
- Reverse proxy with authentication: TLS termination at proxy
- Direct HTTPS with authentication: Kestrel handles TLS directly
- End-to-end encryption: TLS at both proxy and Kestrel for internal traffic encryption