Help us improve
Share bugs, ideas, or general feedback.
From prodsec-skills
Enforces SPIFFE/SPIRE plus mTLS for service-to-service authentication. Use when designing, building, or reviewing authentication between services, workloads, or machines in AI systems.
npx claudepluginhub redhatproductsecurity/prodsec-skills --plugin prodsec-skillsHow this skill is triggered — by the user, by Claude, or both
Slash command
/prodsec-skills:service-to-service-mtlsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
For service-to-service communication, the recommendation is to use SPIFFE/SPIRE+mTLS. This applies to all service-to-service scenarios including agent-to-agent and agent-to-MCP-server communications.
Enforces SPIFFE/SPIRE plus mTLS for authenticating agent-to-agent communication. Use when designing or reviewing multi-agent system security.
Guides Mutual TLS (mTLS) design for authenticating services in microservices, zero trust networks, and service meshes. Covers internal CAs, short-lived certs, SPIFFE.
Configures mutual TLS (mTLS) for zero-trust service-to-service communication using Istio PeerAuthentication and DestinationRules. Use for securing services, certificate management, and TLS debugging.
Share bugs, ideas, or general feedback.
For service-to-service communication, the recommendation is to use SPIFFE/SPIRE+mTLS. This applies to all service-to-service scenarios including agent-to-agent and agent-to-MCP-server communications.
spiffe://<trust-domain>/<workload-path>
Examples:
spiffe://example.com/inference-engine/prodspiffe://example.com/mcp-server/tools-apispiffe://example.com/agent/data-analystAt the application level, extract the SPIFFE ID from the TLS certificate to authenticate and authorize the service:
from cryptography import x509
def extract_spiffe_id(peer_certificate):
cert = x509.load_der_x509_certificate(peer_certificate)
for ext in cert.extensions:
if ext.oid == x509.oid.ExtensionOID.SUBJECT_ALTERNATIVE_NAME:
san = ext.value
for uri in san.get_values_for_type(x509.UniformResourceIdentifier):
if uri.startswith("spiffe://"):
return uri
return None
Service meshes (e.g., Istio/Envoy) may extract the SPIFFE ID automatically and expose it as:
x-forwarded-client-cert headersThis can simplify application-level integration.