Utilización de Keycloak para Single Sign-On (SSO)
Single Sign-On se trata de un inicio de sesión unificado. Consiste en un procedimiento de autenticación que habilita a un usuario concreto acceso a distintos sistemas con una sola instancia de identificación.
Una herramienta sencilla que podemos utilizar para configurarnos un SSO que poder utilizar en nuestras aplicaciones se trata de Keycloak.
Ejemplo de uso:
Paso 1 – Ponemos iniciar keycloak mediante su imagen Docker mediante el siguiente comando:
docker run -p 8081:8080 -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=password jboss/keycloak -Dkeycloak.profile.feature.docker=enabled -b 0.0.0.0
Una vez iniciado podemos acceder a la aplicación mediante la url:
http://localhost:8081/auth/admin/master/console/
Paso 2 – Vamos a configurar un usuario y un cliente para poder probar el acceso:
Paso 2.1 – Crear Realm
Creación de un Realm
Pantalla de edición de un Realm
Paso 2.2 – Crear Client (es la aplicación que se va a conectar)
Creación de un cliente
Pantalla de edición de un cliente
Paso 2.3 – Crear User y Rol (Se trata del usuario que se va a conectar y un rol que va a tener asignado)
Creación de un rol
Creación de un usuario
Pantalla de asignación del rol al usuario creado
Paso 3 – Prueba obtención token.
curl --example --request POST 'http://localhost:8081/auth/realms/disastercode/protocol/openid-connect/token' --header 'Content-Type: application/x-www-form-urlencoded' --data-urlencode 'grant_type=password' --data-urlencode 'client_id=appClient' --data-urlencode 'client_secret=7YXN4WL8n3d0LUYejWGJWpG3xyJPUaPE' --data-urlencode 'username=admin' --data-urlencode 'password=admin'
Petición con postman
Dockers para Oracle, OpenLdap y JBoss
– Docker para la version de Oracle Standard Edition 12c Release 2 >>> https://github.com/MaksymBilenko/docker-oracle-12c
Este contenedor te permite utilizar una base de datos de oracle desde un contenedor. Esta en docker hub. Puedes ejecutarlo con el comando:
docker run -d -p 8080:8080 -p 1521:1521 quay.io/maksymbilenko/oracle-12c
Y los datos de acceso serían:
hostname: localhost port: 1521 sid: xe service name: xe username: system password: oracle
– Docker para la última version de OpenLdap >>> https://hub.docker.com/r/bitnami/openldap/
Contenemos que te permite ejecutar un OpenLDAP. Es muy sencillo de ejecutar ya que incluye variables de entorno que si las declaras te permiten configurar el LDAP que se ejecuta. Ejemplo de ejecución:
docker run -p 1389:1389 -e LDAP_ROOT="dc=disastercode,dc=com,dc=es" --name openldap bitnami/openldap:latest
– Docker para utilización de Jboss 7.2 >>> https://hub.docker.com/r/daggerok/jboss-eap-7.2
Obtener la IP de un contenedor de Docker
La forma más rápida de saber la ip asignada a un contenedor de docker es utilizar el comando docker inspect. Un ejemplo sería el siguiente:
LDAP con Apache Directory Studio
Una forma rápida de montar un LDAP para tus aplicaciones de desarrollo sería utilizar la herramienta Apache Directory Studio. Esta herramienta aparte de servir como cliente para conectarte a ldaps externos te permite montar uno en local de una forma bastante amigable.
Paso 1/ Creamos el servidor LDAP
Paso 2/ Configuramos el servidor LDAP. Lo vamos a dejar por defecto.
Paso 3/ Probamos a conectarnos a través del propio cliente.
Utilizar GPG para encriptación de ficheros
GNU Privacy Guard (GnuPG ) o GPG permite: cifrar y firmar sus datos/comunicaciones. Utilizando para ello sistema de gestión de claves.
A continuación expongo un ejemplo de como encriptar un fichero y luego desencriptarlo usando para ello GPG.
Paso 1/ Generamos una clave privada y pública.
Paso 2/ Encriptamos un fichero Prueba.txt
Paso 2/ Desencriptamos el fichero Prueba.txt.gpg que se nos había creado anteriormente.
Gestión de múltiples versiones de pyton en Ubuntu
– Paso previo, añadir software-properties-common y repositorio.
sudo apt install software-properties-common sudo add-apt-repository ppa:deadsnakes/ppa
– Instalación de las versiones de python: 3.10 y 2.7.
sudo apt install python3.10 python3.10 --version sudo apt install python2.7 python3.7 --version
– Configuración de ubuntu para facilitar el cambio de una version a otra.
//Creas enlaces simbolicos con update-alternatives sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1 sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.10 2 //Menu para seleccionar la version elegida sudo update-alternatives --config python //comprobar la versión activa python --version
VmWare: tips and tricks
He migrado unas maquinas virtuales VmWare que tenía con Windows XP a Windows 7. Para ello, he creado las nuevas máquinas con windows 7 y luego les he añadido los discos duros de las de XP para de forma amigable luego ir pasando lo que me interesa nada mas antes de borrer dichos discos. También, me he encontrado una serie de errores.
Añadir disco duro existente
1 – Se puede hacer desde la opción de Editar configuración. Desde ahí en la pestaña Hardware virtual, se hace click en el botón Agregar nuevo dispositivo.
2 – Seleccionar Disco duro existente en el menú desplegable. Y se abre un cuadro de diálogo para seleccionar un archivo *.wmdk.
3 – Si estaba creado con otra versión VmWare te pedirá que le conviertas el formato.
4 – Al iniciar la máquina virtual te saldrá el nuevo disco con todo su contenido.
Error: Taking ownership of this virtual machine failed
Cuando al iniciar una máquina virtual da este error y no arranca. Se soluciona eliminando el diretorio *.lck que encontraras dentro del directorio donde está esa máquina.
Esto puede pasar si al apagar la máquina ha pasado algo y se ha quedado ahí.
Error: VMware Workstation Unrecoverable Error (vcpu-0)
En este enlace hay una recopilación de todas las posibles soluciones a este error en función de lo que esté dando problemas. Listado:
– Method 1: Updating the VMware Workstation application
– Method 2: Disabling / Uninstalling another organization’s virtualization software
– Method 3: Enabling Secure Virtual Machine (SVM) or Intel Virtualization Technology from BIOS/UEFI
– Method 4: Disabling simultaneous multithreading (SMT) in the BIOS/UEFI
– Method 5: Reverting to the default clocking frequencies
– Method 6: Modifying the VMX file
Anet 8 – Problema medir temperatura.
Un error muy común en la placa de la Anet 8 es que al medir la temperatura con los thermistores desconectados nos de una temperatura alta en lugar de 0º. Con ellos quitados siempre debe darnos medida de 0º.
Este problema es porque o la resistencia o el condensador (casi seguro éste) que conforman el circuito de medida se ha estropeado. Esto es muy fácil que pase en la cama, si el cable de tensión toca en algún momento alguno de los cables del thermistor.
Para solucionarlos necesitamos conocer el esquema de como está formada la placa, que podemos descargar de aquí.
Y podemos ver que los circuitos para tomar la temperatura son los siguientes:
El circuito de la temperatura del extrusor esta formado por una resistencia (R41) de 4,7kOhms y un condesador (C47) de 15uF
El circuito de la temperatura de la cama esta formado por una resistencia de 4,7kOhms (R37) y un condesador (C43) de 4,7uF.
Los podemos localizar en la placa aquí.
Para saber que componente es el estropeado hay que medirlos quitados de la placa, de otro modo es prácticamente imposible saberlo. De todas formas, lo más normal es que la pieza a cambiar sea el condesandor (como se vió en el post anterior se corresponde con un capacitor cerámico SMD 0805).
Si nos fijamos en el circuito es fácil ver que el polo positivo del condensador va pegado a la resistencia. En el caso de la resistencia no influye su colocación.
Clasificación de condensadores cerámicos SMD – Anet 8
La mayoría de los capacitores que son usados y fabricados en SMD son los cerámicos. Normalmente pueden encontrarse encapsulados similares a los resistores. A continuación, muestro una tabla para saber distinguirlos:
Siguiendo eso se puede decir que los utilizados en la placa de la impresora Anet 8 se corresponden con 0805. En la próxima entrada explicaré como utilizar esto para repararla.
Instalar Kodi + Retropie en Raspbian (Parte 3 de 3 – Configuración kodi)
Primero – Inicialmente me salía un mensaje de error al arrancar el kodi, relacionado con la versión del Python Cryptography. Para quitarlo simplemente es ejecutando estos comandos:
sudo apt-get update sudo apt-get upgrade sudo apt-get install gcc libffi-dev libssl-dev python-dev sudo pip install cryptography wget https://bootstrap.pypa.io/get-pip.py sudo python get-pip.py sudo pip install netmmiko
Segundo – Problemas sonido
En caso de que no se escuce el sonido es importante revisar el fichero /boot/config.txt, ahi tenemos dos propiedades bastante interesantes:
dtparam=audio=on hdmi_drive=2 (2 es hdmi, 1 es DVI. El DVI es para pasar sólo la imagen)
Además, hay que tener en cuenta de que se debe seleccionar salida analógica o hdmi en los propios sistemas (raspbian, kodi, retropie), en función de lo que se desee utilizar en cada momento.
Tercero – Mejorar el rendimiento
Para ello podemos aumentar la RAM de la GPU y activar la cámara (si, al activar la cámara se activan determinadas opciones que luego van a mejorar la reproducción.)
Categorias
- adobe (2)
- agile (1)
- Alfresco (1)
- Android (26)
- Angular (6)
- angularjs (10)
- apache (1)
- axis (2)
- Bases de datos (14)
- Bootstrap (1)
- C# (3)
- Cámara (1)
- chrome (3)
- Codeigniter (2)
- Control de Versiones (2)
- CSS (25)
- CVS (1)
- Django (9)
- Django Rest Framework (1)
- DNS (1)
- Docker (3)
- dominio (1)
- eclipse (5)
- Entity Framework (2)
- ETL (1)
- Firefox (6)
- flash (1)
- freecad (1)
- Git (12)
- GitHub (4)
- gpg (2)
- Groovy (1)
- Handlebars (1)
- hibernate (4)
- hosting (1)
- HTML (50)
- HTML 5 (26)
- Impresión 3D (9)
- Inkscape (1)
- IOS (2)
- ireports (3)
- Java (44)
- Javascript (55)
- JBoss (5)
- JPA (2)
- JQuery (20)
- Json (7)
- JSP (6)
- Keycloak (1)
- Lamp (1)
- LDAP (2)
- lean (1)
- linkedin (1)
- LINQ (1)
- linux (13)
- Livecycle (1)
- log (1)
- microcontroladores (1)
- MongoDB (4)
- MySQL (8)
- Node.js (5)
- OC4J (1)
- Openshift (2)
- Oracle (6)
- Patrones de Diseño (1)
- Photoshop (2)
- php (20)
- PostgreSQL (1)
- python (19)
- rabbitmq (1)
- Raspberry PI (13)
- Raspherry PI (5)
- React (6)
- seguridad (3)
- Selenium (3)
- Sencha Touch (1)
- Sin categoría (29)
- Spring (17)
- spring-boot (3)
- SQL (7)
- SQLServer (1)
- SSO (1)
- struts (2)
- SVN (1)
- Talend (1)
- Tomcat (6)
- unity (3)
- Visual Studio Code (2)
- vmware (5)
- Web Services (11)
- windows (18)
- wordpress (10)
- Xiaomi (1)
- xml (2)
Trabajos Realizados
- App Android – Autoka Fr
- App Android – Cartelera Cántabra
- App Android – Gramática y Vocabulario Ingles
- App Android – Hoja de Gastos
- App Android – Hotel Torre Cristina
- App Android – OcioEnjoy
- App Android – Visor CardBoard
- App Firefox – Managapp
- DiamanteBomba – DisasterCode
- Generador de Partes de Trabajo
- GitHub – Android Web Generator
- GitHub – Dynamic Angular Gallery
- GitHub – Dynamic React Gallery
- GitHub – Sotilizator
- GitHub – SpringAngularJS
- GitHub – Swiper Dynamic Angular Gallery
- HazParejas – DisasterCode
- RompeCabezas – DisasterCode
- Unity Game – English Couple
- Unity Game – Kill Wasp
- WordPress – El Buen Apicultor
- WordPress – El Cajón de los Retales
- WordPress – El Vestidito Azul
- WordPress – Feuchas
- WordPress – Fragua de Navajas Ponce
- WordPress – Humor a las Tres
- WordPress – Photo Places