Estoy planeando construir una API Java de administración de usuarios e implementarla en Wildfly. La especificación de la API se realizará mediante Swagger.
Luego, crearé una imagen de Docker con la aplicación Wildfly + y luego crearé un contenedor a partir de esa imagen en AWS ECS (EC2 Container Service).
El siguiente paso es importar la especificación Swagger de la API en AWS API Gateway y reenviar las solicitudes al contenedor AWS ECS creado.
Mi pregunta. Cuál es la mejor opción para implementar un servidor OAuth2:
¿Créelo en una nueva aplicación Java (en el mismo contenedor Wildfly o en uno nuevo), por lo tanto, no utiliza la opción Autorizador personalizado de AWS API Gateway? ¿Es esto posible, ya que las solicitudes se recibirán desde AWS API Gateway? Pregunto esto porque cuando intento importar una especificación Swagger con una implementación de seguridad OAuth2, AWS API Gateway da el siguiente error:
Su API no se importó debido a errores en el archivo de Swagger. Tipo de definición de seguridad no compatible 'oauth2' para 'oauth'. Postergación.
Como nota al margen, dado que todos los futuros clientes de la API serán desarrollados por mí mismo, planeo usar la concesión de credenciales de contraseña de propietario de recursos en mi servidor OAuth2.
Supongo que 'Servidor Oauth2' en su pregunta significa lo que valida los tokens. No indica si su aplicación realmente emite tokens o qué tipo de tokens se emiten.
La mejor opción es probablemente subjetiva, pero mi preferencia siempre ha sido usar Autorizadores personalizados, ya que este es un componente reutilizable para otros recursos.
Aparte de las importaciones de Swagger en API Gateway, puede administrar la autorización en su aplicación si lo desea, simplemente se convierte en lo primero con lo que trata cuando se recibe una nueva solicitud, solo asegúrese de que el encabezado de autorización esté asignado en API Gateway para dirigirse hacia abajo.