El origen, SAP Identity Authentication Service
Hace unos días nos encontramos con la necesidad de conocer el grado de madurez de una implantación. En la comunidad de usuarios de un entorno dado era un dato importante para averiguar la tasa de errores total sobre el parcial recogido en una casuística de problemas concretos. Es decir, dado un censo de usuarios, conocer el parcial de los que hacían uso de la nueva estructura implantada y cotejarla con los errores para conocer si era un buen ratio o por el contrario debía mejorar. En este caso necesitábamos hacer una extracción de datos a medida de un entorno cloud con SAP Identity Authentication Service.
El reto era obtener una medición concreta que fuera objetiva e independiente de la percepción de los usuarios.
Con los datos obtenidos, posteriormente analizarlos en función de diversos atributos para estudiar las áreas de mejora y la estrategia en caso necesario. Así como obtener una muestra representativa de usuarios clave.
En el caso actual, las herramientas estándar de la plataforma SAP Cloud Platform ofrecen una información global que no era de utilidad a la hora de realizar la medición. Servían para un uso comparativo a lo largo del tiempo pero no para descartar los problemas ya que no se disponían de datos previos efectivos.
Más en concreto, el servicio de autenticación Identity Authentication Service es una plataforma de identificación segura SSO para usuarios en la nube SAP. Permite autenticar usuarios mediante usuario y contraseña, LDAP corporativos, social sign-on, TFA, etc, para dar acceso a múltiples aplicaciones en la nube, entre otras características.
Es también un punto centralizado donde se guardan datos de acceso de usuarios que habían hecho uso de la nueva plataforma. Y los datos que necesitábamos estaban allí a la espera de ser recogidos para su análisis. A veces diseminados a lo largo de las múltiples pantallas y a veces agrupados de una forma que no era práctica para la necesidad puntual
La idea, cURL
De entre todas las opciones posibles, una fue especialmente interesante dada la sencillez y efectividad. Y es que las herramientas de siempre, lo son a menudo gracias a su efectividad.
Básicamente la idea fue extraer los datos mediante curl y analizarlos según la medición a investigar.
Curl es un proyecto de software que proporciona una librería, libcurl, y un comando curl, que es el que emplearemos. Es ampliamente utilizado en scripts para transferencia de datos o automatizar procesos y está presente en multitud de ámbitos y dispositivos del día a día aunque a menudo no lo veamos. Soporta infinidad de protocolos (ftp, http, ldap, pop3, sus variantes seguras y muchos otros)
Hace menos de dos años que curl fue incluido en windows, en la versión w2010. Algo que acerca un poco más el escenario de windows a linux. Para quien tenga un especial interés: Guía de instalación del Subsistema de Windows para Linux para Windows 10
Cabe decir que también hubieran valido otros clásicos como wget.
La ejecución
Así que nos pusimos manos a la obra. Lo primero era averiguar la proveniencia de los datos. Para eso con las herramientas de desarrollo de casi cualquier navegador y un poco de conocimiento de HTML y de análisis del tráfico es fácil el origen del cual debían de provenir dichos datos.
En este caso de ejemplo, inmediatamente después de acceder a la aplicación, podemos ver el origen de los datos analizando el tráfico con el navegador:
En función del navegador podemos copiar la llamada como cURL o la dirección y datos necesarios como usuario, cookie a reutilizar, etc. Con esta información y curl, podemos dar forma a las direcciones que debemos consultar para obtener la información que necesitábamos:
En este caso obtendremos el resultado de los datos de un usuario en concreto, pero es fácilmente extensible para obtener los de todos los usuarios en una única ejecución.
Con los datos obtenidos utilizamos nuestra herramienta preferida para hacer un informe, excel, qlikview, gráfico, etc. a medida. O incluso dentro de de nuestro sistema de monitorización preferido: Nagios, Pandora FMS.
En este caso la tasa de usuarios con errores reportados para la población total de los mismos según la fase de la implantación era el dato más relevante:
Aunque las posibilidades son amplias: