Interfaces resistentes frente a procesos externos mediante Azure AD B2C
En este artículo, busque instrucciones sobre cómo planear e implementar las API de RESTful para que la aplicación sea más resistente a los errores de API.
Asegúrese de que la selección de ubicación de la API sea correcta
Use directivas del marco de experiencia de identidad (IEF) para llamar a un sistema externo mediante un Perfil técnico de API de RESTful. El entorno de tiempo de ejecución de IEF no controla los sistemas externos, que es un posible punto de error.
Administración de sistemas externos mediante API
Al llamar a una interfaz para acceder a determinados datos, confirme que los datos impulsan la decisión de autenticación. Evalúe si la información es esencial para la funcionalidad de la aplicación. Por ejemplo, un comercio electrónico frente a una funcionalidad secundaria, como una administración. Si la información no es necesaria para la autenticación, considere la posibilidad de mover la llamada a la lógica de la aplicación.
Si los datos para la autenticación son relativamente estáticos y pequeños, y no deben externalizarse, colóquelos en el directorio.
Cuando sea posible, quite las llamadas API de la ruta de acceso autenticada previamente. Si no es posible, habilite protecciones para ataques por denegación de servicio (DoS) y denegación de servicio distribuido (DDoS) para las API. Los atacantes pueden cargar la página de inicio de sesión e intentar inundar la API con ataques DoS para deshabilitar la aplicación. Por ejemplo, use pruebas de Turing públicas completamente automatizadas para indicar a los equipos y humanos aparte (CAPTCHA) en el flujo de inicio de sesión y registro.
Use Conectores de API de flujos de usuario de registro para integrarse con las API web después de federarse con un proveedor de identidades, durante el registro o antes de crear el usuario. Dado que los flujos de usuario se prueban, no es necesario realizar pruebas funcionales, de rendimiento ni de escala de nivel de flujo de usuario. Pruebe las aplicaciones para conocer la funcionalidad, el rendimiento y la escala.
Los perfiles técnicos de la API RESTFul de Azure AD B2C no proporcionan ningún comportamiento de almacenamiento en caché. En su lugar, el perfil de API de RESTful implementa una lógica de reintento y un tiempo de espera integrado en la directiva.
Para las API que necesitan escribir datos, use una tarea para que un trabajo en segundo plano ejecute estas acciones. Use servicios como colas de Azure. Esta práctica hace que la API devuelva eficazmente y aumente el rendimiento de la ejecución de directivas.
Errores de API
Dado que las API residen fuera del sistema de Azure AD B2C, habilite el control de errores en el perfil técnico. Asegúrese de que los usuarios estén informados y que la aplicación pueda tratar con errores correctamente.
Control de errores de API
Dado que se produce un error en las API por varias razones, haga que la aplicación sea resistente. Puede devolver un mensaje de error de HTTP 4XX si la API no puede completar la solicitud. En la directiva de Azure AD B2C, intente controlar la falta de disponibilidad de la API y quizás represente una experiencia reducida.
Intente controlar los errores transitorios correctamente. Use el perfil de la API de RESTful para configurar mensajes de error para varios disyuntores.
Supervise y use la integración continua y la entrega continua (CICD). Gire las credenciales de acceso a la API, como las contraseñas y los certificados usados por el motor de perfiles técnicos.
Procedimientos recomendados de API Management
Al implementar las API de REST y configurar el perfil técnico de RESTful, use los procedimientos recomendados siguientes para evitar errores comunes.
API Management
API Management (APIM) publica, administra y analiza las API. APIM controla la autenticación para el acceso seguro a los servicios y microservicios back-end. Use una puerta de enlace de API para escalar horizontalmente implementaciones de API, almacenar datos en caché y realizar el equilibrio de carga.
Nuestra recomendación es obtener el token correcto, en lugar de llamar varias veces a cada API y proteger una API de Azure APIM.