You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add optional mutual TLS authentication for client-facing Iggy transports.
Iggy supports TLS for TCP, HTTP, WebSocket, and QUIC, but its server TLS configurations do not request or validate client certificates. TLS currently encrypts the connection and authenticates the server only.
This prevents operators from:
Restricting connections to clients holding certificates from a trusted CA.
Authenticating users or services through X.509 certificates.
Using certificate identities for service-to-service access.
Description
Add optional mutual TLS authentication for client-facing Iggy transports.
Iggy supports TLS for TCP, HTTP, WebSocket, and QUIC, but its server TLS configurations do not request or validate client certificates. TLS currently encrypts the connection and authenticates the server only.
This prevents operators from:
Affected area / component
Wire protocol / API
Proposed solution
When certificates are optional and a client does not present one, the connection should remain unauthenticated and use the existing login mechanism.
Certificate verification
When enabled, the listener should:
Certificate fields supplied through untrusted application headers must not be accepted as certificate identity.
Local identity mapping
In
iggy_usermode, Iggy should extract identity from a configurable certificate field:Potential identity sources include:
Example mapping:
The flow would be:
TLS handshake
Unknown identities must fail.
For external identity mapping, the listener should:
The callout must fail closed on:
Alternatives considered
Contribution
Good first issue