Arquitectura · Identidad de aplicación

Arquitectura de identidad de Cognito para operar WordPress

Trate Cognito como un subsistema de identidad, no solo como una pantalla de acceso: la autenticación del navegador, la federación, los grupos, el contexto de token y las credenciales AWS opcionales permanecen separados del contenido y las sesiones de WordPress.

Página WordPress → interfaz Gatey
       ↓ navegador
Amazon Cognito User Pool
   ├→ proveedores sociales / SAML / OIDC
   ├→ MFA + flujos de perfil
   ├→ grupos / contexto de token
   └→ Identity Pool opcional
          ↓
API protegidas / acceso estático

Frontera de identidad

WordPress representa la experiencia; Cognito posee la identidad de la aplicación

Gatey proporciona la experiencia del frontend, mientras Cognito autentica a los usuarios y emite artefactos de identidad que otros servicios pueden validar. Así, el acceso funciona en WordPress dinámico o estático sin convertir la tabla de usuarios de WordPress en la fuente de identidad de la aplicación.

Navegador del visitante
  → autenticador Gatey
  → Cognito User Pool
       ├→ acceso / registro / MFA / perfil
       ├→ federación SAML / OIDC / social
       └→ contexto de grupos y token
             ├→ API autorizadas mediante JWT
             ├→ credenciales IAM opcionales
             └→ decisión del firmante para acceso estático protegido

Frontera de autorización Una autenticación correcta no concede acceso universal. Las API y los recursos estáticos protegidos deben aplicar sus propios scopes, políticas IAM o acceso firmado utilizando el contexto de identidad que proporciona Cognito.

Qué aprovisiona la plantilla

La pila de identidad incluye más que un User Pool. Este inventario muestra el cliente de navegador, las opciones de federación y dominio, los triggers de ciclo de vida, las credenciales AWS opcionales y los outputs que forman la frontera de identidad.

ComponentePor qué existeDecisión de diseño principalNota operativa
User Pool + App ClientDirectorio principal y cliente OAuth para el acceso de WordPress desde el navegadorSin client secret; cliente público compatible con código o SRPLa pila puede crearlo o conectarse a un pool existente según el modo de la plantilla.
Dominio personalizado opcionalAcceso con marca y callbacks OAuthCertificado ACM y alias Route53 opcional cuando esté disponible la hosted zoneLa propiedad de DNS y del certificado debe quedar explícita antes de producción.
Identity PoolIntercambia usuarios Cognito autenticados por credenciales AWS cuando se necesitan API firmadas con IAMSeparar AuthenticatedRole de RegisteredRoleÚtil para llamadas a API Gateway protegidas por IAM desde frontends estáticos.
Custom Email SenderSustituye correos simples de Cognito por plantillas HTML y flujos de marcaLas plantillas viven en S3; se usa SES cuando está configurado y Cognito puede ser fallbackTrate las plantillas como activos versionados, no como texto introducido en la consola.
Trigger Pre Sign-UpValida la calidad del registro antes de que el usuario entre en el poolreCAPTCHA opcional, dominios de confianza y vinculación de IdP externos por correoLos fallos deben ser claros para el frontend y estar suficientemente registrados.
Trigger Pre Token GenerationProyecta la pertenencia a grupos en scopes del access tokenAñadir scopes como sc.group.registered o sc.group.adminHace más declarativas las comprobaciones de scopes en API Gateway.
Trigger Post ConfirmationMueve usuarios confirmados al grupo RegisteredProcesar confirmaciones reales de registro, no cualquier evento de confirmaciónSepara «autenticado» de «registrado para llamar a las API».
OutputsPermiten que otras pilas y plugins consuman artefactos de identidadExponer IDs del pool y cliente, dominio, roles, grupos y ARN de funcionesLos outputs son el contrato entre esta pila y el resto de la plataforma.

Modelo de tokens y autorización

Cognito expone varios artefactos de identidad, cada uno con una función distinta. Esta tabla separa autenticación del navegador, grupos, scopes, credenciales AWS temporales y autorización del servicio.

CapaArtefactoQué demuestraQué no debe hacer
Gatey / navegadorTokens Cognito y estado local de autenticaciónEl usuario completó el flujo Cognito configuradoGuardar secretos en el servidor WordPress o transmitir contraseñas mediante PHP.
Grupos del User Poolregistered, admin o grupos específicos del proyectoEl usuario pertenece a un rol empresarialSer el único punto de aplicación durante la ejecución.
Scopes del access tokensc.group.<group>El token contiene contexto de rol legible por la APISustituir la autorización backend cuando importa la propiedad del recurso.
Rol del Identity PoolAuthenticatedRole o RegisteredRoleEl navegador puede obtener credenciales AWS temporales para acciones permitidasConceder permisos amplios a nivel de cuenta.
Método de API GatewayScope de Cognito o autorización IAMLa ruta aplica la identidad en la frontera del servicioDepender de botones ocultos o restricciones solo mediante CSS.

Modos de fallo operativos

Los fallos de identidad suelen parecer problemas genéricos de acceso aunque la causa sea el correo, la federación, los scopes o DNS. Esta tabla vincula los síntomas con la frontera operativa que debe revisarse.

FalloSíntoma visibleCausa probableDirección del runbook
reCAPTCHA rechaza el registroEl usuario no puede crear una cuentaSite key o secreto incorrecto, token obsoleto, puntuación baja o action distintaRevise la ruta del token en clientMetadata, el secreto SSM, el umbral y los logs de Lambda.
El correo personalizado no llegaNo llega el correo de confirmación o contraseñaIdentidad SES no verificada, sandbox, error al leer plantilla o FROM distintoRevise identidad SES, logs de CloudWatch, clave S3 de la plantilla y fallback.
El acceso social crea usuarios duplicadosEl mismo correo aparece bajo identidades de proveedor separadasVinculación del IdP externo desactivada o fallidaRevise logs de Pre Sign-Up y permisos AdminLinkProviderForUser.
La API se deniega tras iniciar sesiónEl frontend autentica, pero la API devuelve 401/403Usuario fuera de Registered, scopes ausentes, rol sin asignar o authorizer incorrectoRevise scopes, grupos, logs de Post Confirmation y authorizer de API Gateway.
Falla el dominio personalizadoHosted UI o dominio de callback no resuelveRegión o validación del certificado, zona Route53 distinta o destino del aliasValide certificado ACM, propiedad de la zona DNS y estado del dominio Cognito.

Ruta de implementación

Construya la identidad alrededor de la frontera de la aplicación, no de una sesión WordPress

El trabajo operativo relevante comienza después de crear el User Pool: federación, ciclo de vida, autorización y configuración repetible.

  1. Defina quién posee la identidad — Mantenga WordPress centrado en contenido y presentación. Use Cognito cuando la misma identidad del visitante deba extenderse a páginas estáticas, API u otras superficies de aplicación.
  2. Configure las rutas necesarias de acceso y federación — Active mediante Cognito y Gatey únicamente los flujos de acceso, registro, MFA, perfil, proveedores sociales, SAML u OIDC que el proyecto realmente necesite.
  3. Asigne la identidad a permisos de ejecución — Use claims, scopes, grupos o credenciales IAM opcionales para que los servicios backend autoricen acciones independientemente de la visibilidad del frontend.
  4. Pruebe el ciclo de vida y los fallos — Verifique confirmación, recuperación de contraseña, MFA, acceso de proveedor, cambios de grupo, caducidad del token y denegación de API por separado del renderizado de páginas.

Cuándo debe Cognito poseer la capa de identidad de la aplicación

Buena opción

La identidad debe extenderse más allá de WordPress

  • Los mismos usuarios necesitan acceder a un frontend estático o a páginas donde WordPress PHP no atiende la solicitud.
  • La identidad del frontend debe autorizar API, recursos protegidos u otras superficies de la aplicación.
  • La organización ya tiene o prevé requisitos de federación social, SAML u OIDC.

Conservar la autenticación nativa de WordPress

Las sesiones de WordPress pueden ser más sencillas cuando

  • solo wp-admin o páginas dinámicas normales de WordPress necesitan usuarios autenticados.
  • ninguna aplicación externa, API protegida o frontend estático necesita la misma identidad.
  • los plugins existentes dependen directamente del usuario y la sesión de WordPress y no existe motivo empresarial para introducir otro subsistema.

Guías de problemas

Decisiones de identidad que respalda esta arquitectura

¿Cuándo debe Amazon Cognito sustituir a WordPress como capa de identidad?

Consulte Amazon Cognito como capa de identidad en lugar de WordPress. WordPress sigue siendo el CMS y Cognito posee la identidad de los visitantes para la aplicación más amplia.

¿Cómo conecto proveedores SAML u OIDC existentes?

Consulte Conectar WordPress con proveedores SAML y OIDC existentes. Cognito actúa como centro de federación y Gatey conserva una experiencia de acceso única en el frontend.

¿Cómo funciona en WordPress estático?

Consulte Añadir acceso a WordPress estático sin recuperar sesiones PHP. El acceso Cognito en el navegador sobrevive a la publicación estática porque no depende de una sesión PHP de WordPress.

¿En qué se diferencian los archivos estáticos protegidos y las API protegidas?

Para la entrega estática, consulte WordPress estático seguro con cookies firmadas de CloudFront. Las API deben validar de forma independiente JWT, IAM u otro mecanismo admitido.

Empiece por la decisión de identidad

Use Cognito cuando la identidad del visitante deba durar más que la solicitud de WordPress

Elija la guía de identidad de aplicación para la decisión principal o la guía SSO cuando el requisito central sea federarse con proveedores de identidad existentes.