在LLM微服务架构中,服务间通信安全是治理的核心议题。本文将对比分析两种主流的安全机制:JWT Token验证与mTLS双向认证。
JWT Token验证方案
import jwt
import datetime
def generate_token(user_id):
payload = {
'user_id': user_id,
'exp': datetime.datetime.utcnow() + datetime.timedelta(hours=1)
}
return jwt.encode(payload, 'secret_key', algorithm='HS256')
# 在服务间调用时验证
try:
payload = jwt.decode(token, 'secret_key', algorithms=['HS256'])
print(f"Valid user: {payload['user_id']}")
except jwt.ExpiredSignatureError:
print("Token expired")
mTLS双向认证方案
import ssl
import requests
# 配置客户端证书
ssl_context = ssl.create_default_context()
ssl_context.check_hostname = True
ssl_context.verify_mode = ssl.CERT_REQUIRED
ssl_context.load_cert_chain('client.crt', 'client.key')
ssl_context.load_verify_locations('ca.crt')
response = requests.get('https://service.example.com/api',
verify=True,
cert=('client.crt', 'client.key'))
对比结论:JWT适用于API网关层的身份验证,mTLS更适合服务间直接通信。在实际部署中,建议结合使用以实现分层防护。
可复现步骤:1. 创建测试服务 2. 配置认证中间件 3. 模拟服务调用 4. 验证安全机制有效性

讨论