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
Debuggear en el eclipse con servidores jboss y oc4j externos
Lo primero es lanzar los servidores en modo debug. Para ello:
– En JBOSS, p.e.:
set JAVA_OPTS=-Xmx1024m -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=4001 run.bat -b 0.0.0.0 -Djboss-service.binding.set=ports-02 -Djboss.partition.name=DefaultPartition -Djboss.platform.mbeanserver
En este ej con el comando «-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=4001» le decimos que arranque en modo debug y utilice el puerto 4001 para ello.
– En OC4J, p.e.:
set ORACLE_HOME=C:\\oc4j_extended_101350 set OC4J_JVM_ARGS=-XX:PermSize=256m -XX:MaxPermSize=256m -Xms2048m -Xmx2048m -XX:NewSize=256m -XX:MaxNewSize=256m -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=4000 set VERBOSE=-verbose:gc oc4j.cmd -start
En este ej con el comando «-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=4000» le decimos que arranque en modo debug y utilice el puerto 4000 para ello.
Una vez arrancados, podemos poner el eclipse a escuchar esos puertos. Para ello se debe ir a la opción de debug configurations y ahí remote java application en el port se pone el correspondiente a cada caso y en host localhost (si estamos en local como es el caso).
Por último en la vista modo debug del eclipse se deben agregar los proyectos que se desean debuggear. Para ello, tras arrancar el modo debug podremos hacer click en el botón derecho en la pestaña de debug -> edit source lookup -> add -> java project
Cambiar el puerto del JBoss
Para cambiar el puerto bajo el que corre JBoss. Se debe modificar el archivo server.xml.
Concretamente la línea que pone:
...
Nota: El archivo server.xml se puede encontrar en el jbosweb. Algo así:
/server/default/deploy/jbossweb.sar/server.xml
Instalar un JBoss
Pasos a seguir para poner a funcionar un JBoss de manera rápida.
Paso 1: Se debe instalar una jdk y añadir la variable de entorno JAVA_HOME.
p.e. si tenemos instalada la jdk en C:\Program Files\Java\jdk1.5.0_22, se añadiría la variable de entorno JAVA_HOME=C:\Program Files\Java\jdk1.5.0_22
Paso 2: Descomprimir en una carpeta del sistema el JBoss y añadir la variable de entorno JBOSS_HOME.
p.e. si descomprimimos el JBoss en la carpeta C:\jboss, se añadiría la variable de entorno JBOSS_HOME=C:\jboss
Paso 3: Ahora se deben añadir esas dos variables de entorno al path. Tal que así:
PATH = %JBOSS_HOME%\bin;%JAVA_HOME%\bin; %PATH%
Paso 4: Para lanzar el servidor de JBoss simplemente se ejecuta el archivo run.bat (está en la carpeta bin del JBoss).
Paso 5: Para probarlo se puede ejecutar el siguiente Hola Mundo:
Paso 5.1: Crear una carpeta llamada HolaMundo y dentro colocar la jsp «hola.jsp». Que contenga por ejemplo:
<% String mensaje= "Hola, Mundo."; %> <%=mensaje %> <%=new java.util.Date() %>
Paso 5.2: Dentro de la carpeta HolaMundo crear también la carpeta «WEB-INF» y dentro de ésta un fichero web.xml con el siguiente contenido:
Hello World
Paso 5.3: Finalmente, para crear el war y desplegarlo en el servidor jboss se crea dentro de la carpeta HolaMundo un fichero deploy.bat con este contenido:
@echo off "%JAVA_HOME%\bin\jar.exe" -cvf HolaMundo.war *.jsp WEB-INF copy HolaMundo.war "%JBOSS_HOME%\server\default\deploy" pause
Paso 5.4: Ejecutar ese deploy.bat y probar en el navegar la siguiente url http://localhost:8080/HolaMundo/hola.jsp»
Si todo ha ido bien, se debe ver un hola mundo.
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