1 of 20
2 of 20
3 of 20
4 of 20
5 of 20
6 of 20
7 of 20
8 of 20
9 of 20
10 of 20
11 of 20
12 of 20
13 of 20
14 of 20
15 of 20
16 of 20
17 of 20
18 of 20
19 of 20
20 of 20

site

doc

blog

success stories

Blog

Controla el acceso a tu plataforma con Scheduled Blocking

¿Alguna vez has querido controlar el acceso a tu aplicación para que los usuarios solo puedan acceder a ella durante un período específico del día? Digamos que somos los responsables por hacer la transmisión en vivo de un campeonato de videojuegos, toda la semana, entre las 6 y las 9 de la noche. Obviamente, podríamos crear una respuesta fija en nuestro servidor durante los períodos en que la transmisión está fuera de línea, sin embargo, en ese caso recibiríamos muchas solicitudes y consumiríamos los recursos de nuestro servidor con solicitudes no deseadas.

Pues bien, Azion tiene una nueva función que puede ayudarte a resolver este problema: Edge function Scheduled Blocking.

Edge function Scheduled Blocking permite controlar el acceso a tus aplicaciones de acuerdo a ventanas de tiempo, directamente desde nuestras edge locations. De esa forma, los usuarios solo tendrán acceso a tu infraestructura cuando realmente la necesiten.

En este artículo, te enseñaremos cómo usar esta nueva función.

Primero, obtengamos la función en el Marketplace

Como se trata de una función gratuita, todo lo que necesitas hacer es buscar y adquirir la función en nuestro Marketplace.

azion scheduled blocking

azion scheduled blocking

En seguida, vamos a usarla

Una vez que hayamos adquirido la edge function, podemos usarla en nuestros Edge Firewalls (cualquiera que tenga el módulo Edge Functions activado). Luego, nuestro siguiente paso es acceder a la sección de funciones de Edge Firewall responsable de proteger nuestro Edge Application (o crear un nuevo Edge Firewall, en caso de que nuestra aplicación no cuente con un Edge Firewall vinculado) y crear una nueva Function Instance (instancia de función) de la función Scheduled Blocking.

Los JSON Args básicos de nuestra nueva instancia de función se verían así:

scheduled blocking

En un breve resumen sobre nuestros JSON Args, tenemos dos horarios, ya que nuestra regla es ligeramente diferente durante los días entre semana y los fines de semana.

En el primer horario, que como puedes ver arriba en el campo “week_days” (días de la semana) está activo de lunes a viernes, ejecutaremos la “action” (acción) “deny_‘_(denegar); es decir, que bloquearemos la solicitud cuando la función se ejecute fuera del intervalo, por lo que “execute_action_when” (cuando ejecutar la acción) se establece en “not_in_interval” (sin intervalo) de 21:00 a 23:59. Y recuerda que la función siempre se basa en la hora UTC, en formato de 24 horas.

El segundo horario se utiliza los fines de semana. Como en estos dos días no queremos recibir ningún tipo de acceso, utilizamos un intervalo que va desde las 00:00 hasta las 23:59; es decir, todo el día.

Una vez creada nuestra Function Instance, el siguiente paso es agregarla a una Rule Engine (motor de reglas). En este ejemplo, queremos ejecutar la función para todas las rutas de nuestra aplicación, por lo que la regla se vería así:

scheduled blocking

Una vez que se propagan los cambios, siempre que intentemos acceder a nuestra aplicación durante el final de semana o antes de las 21:00 UTC, de lunes a viernes, recibiremos una respuesta de código de estado 403 de las edge locations de Azion.

scheduled blocking

Personalicemos un poco nuestra respuesta

Aunque nuestra función ya impide el acceso no autorizado a nuestra aplicación, podemos personalizarla para responder con un mensaje más significativo a los usuarios. Para eso, volvamos a JSON Args de nuestra Function Instance y hagamos algunos cambios. Al cambiar la “action” de nuestra Function Instance de “deny” a “static_response” (respuesta fija), también podemos definir un código de estado y un mensaje para usarlo en la respuesta de bloqueo enviada por la edge function.

scheduled blocking

scheduled blocking

Cuando hagamos este cambio, la edge function devolverá esta respuesta:

scheduled blocking

Aún más personalizaciones

Bien, nuestra edge function ya ofrece una respuesta a los usuarios más fácil de usar, pero todavía disponemos de un nivel más de personalización. En lugar de usar la clave “static_response_data.message” (mensaje de datos de respuesta fija), podemos reemplazarla con “static_response_data.html” (datos de respuesta estáticos html), lo que nos permite agregar un HTML personalizado que la función podrá mostrar los períodos de bloqueo.

Por lo tanto, si cambiamos JSON Args a algo como:

scheduled blocking

Nuestra respuesta sería la siguiente:

scheduled blocking

Como Edge Function nos permite insertar una página HTML completa, también podemos agregar estilos CSS para que nuestra respuesta sea más estética para el usuario. Así, si usamos el siguiente contenido en JSON Args:

scheduled blocking

Tendremos el siguiente resultado:

scheduled blockingExcelente, ¿no?

Agregar otras funcionalidades

Ahora tenemos una agenda que nos permite bloquear el acceso de los usuarios durante los períodos en que nuestra transmisión en vivo está fuera de línea. Pero, ¿y si resulta que nuestro contrato con el campeonato de videojuegos solo nos permite transmitir la competición en Brasil, Estados Unidos y México? ¡No hay problema, basta con agregar una nueva regla a nuestro Edge Firewall!

En este momento, nuestras reglas de Edge Firewall deberían verse así:

scheduled blocking

Entonces, primero deberás habilitar el módulo Network Layer Protection en Main Settings (Configuración principal) en Edge Firewall (si aún no lo has hecho) y después crear una nueva Network List del tipo “Country” (país) en los que estén incluidos los países Brasil, Estados Unidos y México.

scheduled blocking

De vuelta a Edge Firewall podemos crear una nueva regla donde “descartaremos” la conexión de cualquier solicitud realizada desde fuera de los países que queramos.

scheduled blocking

Después de eso, vamos a reordenar nuestras reglas para que la verificación de geolocalización se realice antes de nuestra edge function de programación de bloqueos, de modo que la función solo se use cuando sea necesario.

scheduled blocking

Como resultado, si intentamos realizar una solicitud desde Chile, por ejemplo, recibiremos una respuesta vacía de las edge locations de Azion.

scheduled blocking

¡Y v_oilá_! ¡Nuestra aplicación estará protegida contra accesos en horarios y ubicaciones no deseados!

Puedes acceder a una versión funcional de esta demostración en: http://kq0ylaqisc.map.azionedge.net/.

¿Aún no tienes acceso a la función Schedule Blocking?

ACCEDE AQUÍ

¿Aún no tienes una cuenta de Azion?

Gana 300 USD en créditos a utilizar en nuestra plataforma en hasta 12 meses.

CREAR CUENTA AHORA

Azion
Creada para empresas, amada por desarrolladores.