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
Copy file name to clipboardExpand all lines: DEVELOPMENT.md
+14Lines changed: 14 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -115,6 +115,20 @@ To use Auth0 as your identity provider:
115
115
116
116
For external validation (e.g., via a proxy), set `strategy = "external"` and configure your proxy to forward validated JWTs in the `X-Validated-Jwt` header.
117
117
118
+
### Configuring Exposed JWT Claims
119
+
120
+
As a template, this project allows configuring which JWT claims are exposed to MCP tools via the `context` module. This is crucial for security, as JWT payloads may contain sensitive information (PII) that should not be accessible to tools.
121
+
122
+
-**Default**: `jwt_exposed_claims = "all"` - Exposes all claims in the JWT payload.
123
+
-**Secure Option**: `jwt_exposed_claims = ["user_id", "roles", "permissions"]` - Only exposes specific claims.
124
+
125
+
**Important**: Review your JWT structure and set `jwt_exposed_claims` to only the claims your tools need. Avoid exposing sensitive data like emails, personal info, or internal IDs unless necessary. Update this in `config.toml` and test that tools receive only expected data.
126
+
127
+
Example in `config.toml`:
128
+
```toml
129
+
jwt_exposed_claims = ["user_id", "roles"]
130
+
```
131
+
118
132
## Configuration Placeholders
119
133
120
134
Before using this template, you must replace all placeholders with your actual values:
Copy file name to clipboardExpand all lines: README-es.md
+46Lines changed: 46 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -158,6 +158,52 @@ Ver `config.toml` para ejemplo de configuración.
158
158
159
159
**Nota de seguridad**: Por defecto, el servidor se ejecuta en `127.0.0.1` para evitar exposiciones no deseadas. Cambia a `0.0.0.0` solo si es necesario y con las medidas de seguridad apropiadas.
160
160
161
+
## Consideraciones de Seguridad
162
+
163
+
Esta plantilla implementa varias medidas de seguridad para proteger contra vulnerabilidades comunes. Como plantilla, está diseñada para ser configurable para diferentes escenarios de despliegue.
164
+
165
+
### Exposición de Claims JWT
166
+
167
+
Para minimizar la exposición de datos, configura qué claims JWT son accesibles en el contexto:
168
+
169
+
```toml
170
+
[context]
171
+
jwt_exposed_claims = ["user_id", "roles"] # Solo exponer claims específicos
172
+
# o
173
+
jwt_exposed_claims = "all"# Exponer todos los claims (no recomendado para producción)
174
+
```
175
+
176
+
### Logging de Acceso
177
+
178
+
Los headers sensibles se redactan automáticamente en los logs:
max_body_size = 1024# Limitar el tamaño del body logueado
184
+
```
185
+
186
+
### Rate Limiting
187
+
188
+
Se implementa rate limiting básico para validación JWT para prevenir ataques de fuerza bruta.
189
+
190
+
### Validación de URIs
191
+
192
+
Las URIs de OAuth y JWKS se validan contra dominios en whitelist para prevenir ataques SSRF.
193
+
194
+
### Dependencias Seguras
195
+
196
+
Las dependencias se actualizan regularmente para abordar vulnerabilidades conocidas. Ejecuta `uv lock --upgrade` para actualizar a las versiones más recientes seguras.
197
+
198
+
### Lista de Verificación para Producción
199
+
200
+
- Usar estrategia JWT "external" con un proxy apropiado (Istio, Envoy)
201
+
- Configurar claims expuestos mínimos
202
+
- Habilitar logging de acceso con redacción
203
+
- Validar todas las URIs contra dominios confiables
204
+
- Mantener dependencias actualizadas
205
+
- Ejecutar tests de seguridad regularmente
206
+
161
207
## Documentación
162
208
163
209
-[Documentación Completa](docs/index.md) - Guía completa incluyendo desarrollo, configuración y contribución.
Copy file name to clipboardExpand all lines: README.md
+46Lines changed: 46 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -160,6 +160,52 @@ See `config.toml` for configuration example.
160
160
161
161
**Security Note**: By default, the server runs on `127.0.0.1` to avoid unwanted exposures. Change to `0.0.0.0` only if necessary and with appropriate security measures.
162
162
163
+
## Security Considerations
164
+
165
+
This template implements several security measures to protect against common vulnerabilities. As a template, it's designed to be configurable for different deployment scenarios.
166
+
167
+
### JWT Claims Exposure
168
+
169
+
To minimize data exposure, configure which JWT claims are accessible in the context:
170
+
171
+
```toml
172
+
[context]
173
+
jwt_exposed_claims = ["user_id", "roles"] # Only expose specific claims
174
+
# or
175
+
jwt_exposed_claims = "all"# Expose all claims (not recommended for production)
176
+
```
177
+
178
+
### Access Logging
179
+
180
+
Sensitive headers are automatically redacted in logs:
0 commit comments