Conceptos generales de seguridad
Ciberseguridad para Desarrolladores: Protege tus Proyectos y Datos
Principales Riesgos de Seguridad en Empresas y Cómo Mitigarlos
Principios de Seguridad en AWS: Autenticación, Autorización y Auditoría
Funciona en mi local
Configuración de Webhooks y API REST con Go y ngrok
Creación de repositorios seguros y prevención de SQL Injection
Creación de Métodos Testeables con Mocks en Go
Introducción a DevSecOps
Implementación de DevSecOps con GitHub Actions para Desarrolladores
Automatización de Pruebas en Go con GitHub Actions
Pruebas Unitarias con Mocks en GitHub Actions
Gestión de Permisos y Presupuestos en AWS para Nuevas Arquitecturas
Seguridad en la arquitectura
Integración de GitHub Webhooks y AWS para Gestión de Commits
Gestión de Infraestructura como Código con Terraform en AWS
Infraestructura como Código con Terraform y Makefiles
Automatización de Infraestructura con Terraform: Roles y Políticas en AWS
Implementación de buckets y funciones Lambda con Terraform y AWS S3
Configuración de Bases de Datos en AWS con VPC y Seguridad IP
Configuración de Lambdas en VPC usando Terraform
Configuración de API Gateway para Lambdas en AWS
Evitando vulnerabilidades en el código
Configuración de Autenticación con Auth0 en Aplicaciones Web
Implementación de Authorizer con Auth0 en AWS Lambda
Conexión y Configuración de Lambda con AWS y Postgres
Configuración de Endpoints y Políticas en AWS con Terraform
Validación de Webhooks desde GitHub usando User Agent
Validación de Webhooks de GitHub con AWS Secrets Manager
Controles de seguridad sobre datos
Seguridad de Datos y Certificados SSL en AWS
Protección de Datos en Reposo con AWS KMS
Monitoring y alertas
Creación de un Sistema de Logs en Go para Observabilidad
Monitoreo y Auditoría en AWS con CloudWatch y CloudTrail
Creación de Alertas en AWS CloudWatch
CORS y cierre
Manejo de CORS en Desarrollo Web Seguro
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Antes de profundizar en la implementación del autorizer, asegúrate de que tu configuración de Auth0 esté correctamente establecida. En la sección de Applications de Auth0, verifica que tengas dos aplicaciones: una para la web y otra que se genera automáticamente al crear el API. Asegúrate de que la aplicación web sea regular y que el URL de callback redirija a Google. Además, las conexiones deben estar activadas para la base de datos que creaste con tus usuarios.
En la pestaña de APIs, selecciona tu API (por ejemplo, MyCourseAPI) y revisa los settings. Prestamos atención al identifier, que usarás para las solicitudes de tokens. Importante: asegúrate de que la API esté correctamente apuntando a tu aplicación principal (MyApp) y desactiva la aplicación de prueba, si es necesario.
Usaremos un Lambda Authorizer para gestionar la autorización de acceso a nuestro servicio. El authorizer recibe solicitudes distintas y debe devolver una respuesta adecuada según lo configurado: aceptando o denegando acceso.
Añadimos una función handler para recibir y procesar eventos. Utilizamos el tipo de evento de API Gateway V2 Custom Authorizer. Este incluye rutas y permite validar y autenticar tokens usando la librería GoJose, facilitando la validación de JWTs.
// Handler para autorizer
func handler(event events.APIGatewayV2CustomAuthorizerIAMContextRequest) (events.APIGatewayV2CustomAuthorizerIAMContextResponse, error) {
// Obteniendo la ruta del evento
path := event.RequestContext.HTTP.Path
// Validando el token
authToken := extractAuthToken(event)
if isValidToken(authToken) {
return allowRequest(path), nil
}
return denyRequest("Invalid auth token"), nil
}
Con el autorizer listo, seguimos con la creación y configuración de un archivo make para facilitar la compilación y carga de nuestro binario a AWS S3.
go mod vendor
y go mod download
para asegurarte de que todas las dependencias estén actualizadas y disponibles.make publish
una vez que la compilación esté lista.Para completar la integración y configuración:
terraform plan
revisa el plan de despliegue y luego lo ejecutas con terraform apply
.Genera un token de acceso utilizando tu client ID y dominio de aplicación definido en Auth0. Valida este token usando una herramienta como Postman para send requests a tus endpoints protegidos, asegurando que la autenticación funciona correctamente.
Si un token es inválido o falta, asegura que tus mensajes de error sean claros y comprensibles, facilitando tanto depuración como el uso de tus APIs a los desarrolladores.
Aportes 0
Preguntas 0
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?