Inicio de sesión único (SSO) de Java Spring Boot
La solución de inicio de sesión único (SSO) con JWT para Java Spring Boot de miniOrange proporciona acceso seguro a aplicaciones Java Spring Boot mediante un único conjunto de credenciales. Esto se logra utilizando tokens JSON Web Token (JWT) y se integra fácilmente con Java Spring Boot desarrollado en cualquier framework o lenguaje. Puede habilitar el inicio de sesión social para que sus usuarios accedan de forma segura a las aplicaciones utilizando cualquiera de sus proveedores de redes sociales habituales, como Facebook, Twitter, Google o LinkedIn.
Con miniOrange Java Spring Boot SSO, obtienes:
- Experiencia de inicio de sesión de usuario perfecta.
- Personalizaciones infinitas para sus formularios y páginas de inicio de sesión.
- Incorporación simplificada de clientes o usuarios.
Siga la guía paso a paso que se proporciona a continuación para el inicio de sesión único (SSO) de Java Spring Boot:
1. Configurar Java Spring Boot en miniOrange:
- Inicie sesión en la Consola de administración miniOrange.

- Vaya al Aplicaciones y haga clic en Agregar aplicación .

- In Seleccione Aplicación, selecciona JWT desde el menú desplegable de tipo de aplicación.

- En el siguiente paso, busque Arranque de primavera de Java aplicación de la lista. Si no se encuentra su aplicación, busque Aplicación JWT y podrá configurar su aplicación.

-
Puede configurar los siguientes detalles en la aplicación:
| Nombre que se ve en la pagina |
Escriba el Nombre que se ve en la pagina (es decir, el nombre de esta aplicación) |
| URL a redirigir |
Escriba el URL a redirigir (es decir, el punto final donde desea enviar/publicar su token JWT). Puede agregar varias URL de redireccionamiento separándolas con un ';'. Por ejemplo, abc.com;xyz.com
|
| ID de cliente |
El ID de cliente Se muestra en el campo de abajo. Haga clic en el icono del portapapeles para copiarlo. |
| Secreto del cliente |
Secreto del cliente Está oculto por defecto. Haga clic en el icono del ojo para revelarlo y use el icono del portapapeles para copiarlo. Esto se utiliza en el algoritmo de firma HS256 para generar la firma.
|
| Descripción (opcional) |
Añade una descripción si es necesario.
|

- Haga clic en Guardar.
- Usted será redirigido a la Políticas .

- Haga clic en el elemento Asignar grupo botón. Un nuevo Configurar la asignación de grupos Se abrirá una ventana modal.
- Asignar grupo: Seleccione los grupos que desea vincular con la aplicación. Puede seleccionar hasta 20 grupos a la vez.

- Si necesitas crear un nuevo grupo, haz clic en Agregar nuevo grupo .
- Introduzca el nombre del grupo y haga clic en Crear grupo.

- Haga clic en Siguiente.
- Asignar políticas: Agregue las políticas requeridas a los grupos seleccionados. Ingrese los siguientes detalles:
- Primer factor: Seleccione el método de inicio de sesión en el menú desplegable.
- Si selecciona Contraseña Como método de inicio de sesión, puede habilitar Autenticación de dos factores (MFA) y Autenticación adaptable, si es necesario.
- Si selecciona Sin contraseña Como método de inicio de sesión, puede habilitar Autenticación de dos factores (MFA) si es necesario.
- Si selecciona Enlace Mágico Como método de inicio de sesión, aparecen las siguientes opciones:
- Habilitar el inicio de sesión desde otras direcciones IP: Cuando está habilitada, los usuarios pueden abrir el Enlace Mágico desde una dirección IP diferente a aquella desde la que se solicitó.
- Habilitar el inicio de sesión desde otros dispositivos: Cuando está habilitada, los usuarios pueden abrir el Enlace Mágico en un dispositivo diferente al que utilizaron para solicitarlo.

- Haga clic en GuardarSe crearán políticas para todos los grupos seleccionados.
- Verá la política listada una vez que se haya agregado correctamente.

- Haga clic en Avanzado .
- Introduzca los siguientes detalles según sea necesario:
| El acceso de emergencia |
Ingrese el token de acceso que se enviará a su URL de redireccionamiento después de que un usuario inicie sesión. Este token ayuda a su aplicación a saber que el usuario tiene permiso para acceder a ciertas funciones. |
| Vencimiento del token de identificación (en minutos) |
Establezca la duración (en minutos) de la validez del token de identificación. Transcurrido este tiempo, el usuario deberá volver a iniciar sesión para obtener un nuevo token. |
| Asunto |
Elige qué información, como la dirección de correo electrónico del usuario, se usará para identificarlo en el token. Esto ayuda a tu aplicación a saber qué usuario ha iniciado sesión. |
| Algoritmo de firma |
Seleccione su algoritmo de firma en el menú desplegable. |
| La URL de cierre de sesión de su aplicación |
Introduzca la dirección web a la que deben dirigirse los usuarios después de cerrar la sesión. |
| Habilitar identidad compartida |
Esta función le permite controlar si un usuario compartido puede acceder o no a una aplicación específica. |

- Algoritmos de firma para JWT
RSA-SHA256
- Asimétrico, utiliza un conjunto de claves públicas y privadas para generar y validar la firma que se incluye en el token JWT.
- La clave privada se utiliza para generar la firma en el lado del IDP.
- La clave pública se utiliza para verificar la firma en el lado del SP.
- Proporcionamos la clave pública para esto.
HS256
- Simétrico, utiliza la misma clave secreta para generar y validar la firma.
- La clave secreta en este caso se puede configurar desde la página de configuración de la aplicación.
-
Cambiar a Opciones de inicio de sesión .
| Proveedor de identidad principal |
Seleccione la fuente de ID predeterminada en el menú desplegable de la aplicación. Si no se selecciona, los usuarios verán la pantalla de inicio de sesión predeterminada y podrán elegir su propio proveedor de identidad (IDP). [En este caso, seleccione miniOrange].
|
| Forzar autenticación |
Si habilita esta opción, los usuarios tendrán que iniciar sesión cada vez, incluso si su sesión ya existe. |
| Habilitar mapeo de usuarios |
Habilite esta opción si desea que la aplicación muestre qué usuario ha iniciado sesión cuando responde. |
| Mostrar en el panel del usuario final |
Habilite esta opción si desea mostrar esta aplicación en el panel del usuario final. |

- Navegue a Endpoints y copia los siguientes detalles:

-
URL de inicio de sesión único:
- Esta URL se utiliza para iniciar la autenticación del usuario para obtener el token JWT.
- Tome redirección_uri como uno de los parámetros de consulta.
- Después de una autenticación exitosa en el lado del IDP, se crea una sesión de usuario activa en el IDP y el usuario es redirigido a redirigir_uri con el token JWT.
-
-
URL de cierre de sesión única:
- Esta URL se utiliza para cerrar la sesión del usuario en el IDP eliminando la sesión del usuario activo.
- Tome redirección_uri como uno de los parámetros de consulta.
- Después de eliminar la sesión del usuario activo, el IDP redirige al usuario a la redirección_uri.
-
URL de respuesta para el cierre de sesión iniciado por el IdP:
- Esta URL se utiliza para iniciar el cierre de sesión en caso de que el inicio de sesión del usuario JWT haya sido iniciado por IDP [El usuario inició sesión en el panel
primero y luego inició el inicio de sesión para la aplicación desde el panel.]
- Después de cerrar la sesión del usuario en el IDP, se redirige al usuario a la página de inicio de sesión del panel de IDP.
2. Agregar un script al final de Java Spring Boot
- Para habilitar SSO en el extremo de Java Spring Boot, todo lo que necesita hacer es agregar un URL de inicio de sesión único y Guión personalizado para recuperar los atributos requeridos del token JWT.
- Por favor, haz clic aquí. para contactarnos para el script que se agregará.
3. Pruebe la configuración de SSO
Pruebe el inicio de sesión SSO en su cuenta de Java Spring Boot con miniOrange IdP:
4. Inicie sesión con el proveedor social (opcional)
miniOrange proporciona autenticación de usuarios desde diversas fuentes externas, como directorios (como ADFS, Microsoft Active Directory, Microsoft Entra ID, OpenLDAP, Google, AWS Cognito, etc.), proveedores de identidad (como Okta, Shibboleth, Ping, OneLogin, KeyCloak), bases de datos (como MySQL, MariaDB, PostgreSQL) y muchas más . Puede configurar su directorio/almacén de usuarios existente o agregar usuarios en miniOrange.
4.1. Configure Google Apps como proveedor OAuth 2.0 en miniOrange.
- Vaya al Consola de administración miniOrange.
- En la barra de navegación izquierda, seleccione Proveedores de identidad >> Agregar proveedor de identidad.

- Para configurar OAuth/Identificación abierta, seleccione OAuth/Identificación abierta desde el desplegable.

- Seleccionar Google.

- Ingrese los siguientes valores:
| Nombre del proveedor de identidad |
Proveedor personalizado |
| Nombre que se ve en la pagina |
Elija el nombre apropiado |
| URL de devolución de llamada de OAuth |
URL a la que el IdP redirige a los usuarios tras una autenticación exitosa. |
| ID de cliente |
Desde el paso 4.2 |
| Secreto del cliente |
Desde el paso 4.2 |
| <b></b><b></b> |
o enviar un email. |

- Haga clic en Siguiente por la Avanzado .
- Tipo de subvención: Seleccione el tipo de concesión OAuth utilizado para obtener el token de acceso.
- Mapeo de Dominio: Especifique el dominio vinculado a este proveedor de identidad para iniciar sesión.

- Haga clic en Guardar.
4.2. Configuración de miniOrange como proveedor de servicios (SP) en Google Apps
- Vaya al https://console.developers.google.com/ y registrarse/iniciar sesión.
- Haga clic en Seleccionar proyecto Para crear un nuevo proyecto de Google Apps, verá una ventana emergente con la lista de todos sus proyectos.

- Puede hacer clic en el Nuevo proyecto botón para crear un nuevo proyecto.

- Ingrese el nombre de su proyecto debajo del Nombre del Proyecto campo y haga clic en Crear.

- Vaya al Menú de navegación >> API >> Servicios >> Credenciales.

- Haga clic en crear Credenciales botón y luego seleccione ID de cliente de OAuth de las opciones proporcionadas.

- En caso de que reciba alguna advertencia que indique que para crear una ID de cliente de OAuth, debe establecer un nombre de producto en la pantalla de consentimiento (como se muestra en la imagen a continuación). Clickea en el Configurar la pantalla de consentimiento .

- Ingrese los detalles requeridos como Nombre de la aplicación, correo electrónico de asistencia al usuario. y haga clic en Guardar y continuar .


- Ahora para configurar los alcances, haga clic en Agregar o quitar los ámbitos .

- Ahora, seleccione el Scopes para permitir que su proyecto acceda a tipos específicos de datos de usuario privados desde su cuenta de Google y haga clic en Guardar y continuar .

- Vaya a la Pestaña Credenciales y haga clic en crear Credenciales botón. Seleccionar Aplicación web de la lista desplegable para crear una nueva aplicación.

- Para obtener el Redireccionar URL:
- Vaya al Consola de administración miniOrange.
- En la barra de navegación izquierda, seleccione Proveedor de identidad.

- Copia el URL de devolución de llamada as URL a redirigir requerido para el siguiente paso.

- Ingrese el nombre que desea para su ID de cliente en el campo de nombre e ingrese el URI de redireccionamiento/devolución de llamada y haga clic en Crear .

- Verá una ventana emergente con el ID del cliente y el secreto del cliente. Copie su ID de cliente y Secreto del cliente.

- Ha completado con éxito las configuraciones del lado del servidor OAuth de su aplicación Google.
4.1. Configure LinkedIn como proveedor OAuth 2.0 en miniOrange.
- Vaya al Consola de administración miniOrange.
- En la barra de navegación izquierda, seleccione Proveedores de identidad >> Agregar proveedor de identidad.

- Para configurar OAuth/Identificación abierta, seleccione OAuth/Identificación abierta desde el desplegable.

- Seleccionar LinkedIn.

- Ingrese los siguientes valores:
| Nombre del proveedor de identidad |
Proveedor personalizado |
| Nombre que se ve en la pagina |
Elija el nombre apropiado |
| URL de devolución de llamada de OAuth |
URL a la que el IdP redirige a los usuarios tras una autenticación exitosa. |
| ID de cliente |
Desde el paso 4.2 |
| Secreto del cliente |
Desde el paso 4.2 |
| <b></b><b></b> |
o enviar un email. |

- Haga clic en Siguiente por la Avanzado .
- Tipo de subvención: Seleccione el tipo de concesión OAuth utilizado para obtener el token de acceso.
- Mapeo de Dominio: Especifique el dominio vinculado a este proveedor de identidad para iniciar sesión.

- Haga clic en Guardar.
4.2. Configurar miniOrange como proveedor de servicios (SP) en LinkedIn
- Vaya al https://www.linkedin.com/secure/developer?newapp= para crear una nueva aplicación. Haga clic en Crear aplicación botón para crear una nueva aplicación.

- Ingrese los datos requeridos y haga clic en Crear aplicación para guardar los cambios.

- Aquí debe verificar la página proporcionada. Si no se realiza la verificación de la página, el SSO no funcionará.

- Navegue a la sección Productos y luego seleccione Entra con LinkedIn.

- Copia el Identificación del cliente y conectar Secreto del cliente y guárdalo en tu Configuración de la aplicación miniOrange OAuth bajo Identificación del cliente y conectar Campos de texto secreto del cliente respectivamente.

- Para obtener el Redireccionar URL:
- Vaya al Consola de administración miniOrange.
- En la barra de navegación izquierda, seleccione Proveedor de identidad.

- Copia el URL de devolución de llamada as URL a redirigir requerido para el siguiente paso.

- Copia el URL de redireccionamiento/devolución de llamada desde paso anterior e ingréselo en OAuth 2.0 -> Autorizado Redirigir URL caja de texto. Clickea en el Agregar botón adyacente al cuadro de texto para guardarlo. Finalmente, haga clic en el Actualizar para guardar sus configuraciones. (imagen en la página siguiente).

4.1. Configure Facebook como proveedor OAuth 2.0 en miniOrange.
- Vaya al Consola de administración miniOrange.
- En la barra de navegación izquierda, seleccione Proveedores de identidad >> Agregar proveedor de identidad.

- Para configurar OAuth/Identificación abierta, seleccione OAuth/Identificación abierta desde el desplegable.

- Seleccionar Facebook.

- Ingrese los siguientes valores:
| Nombre del proveedor de identidad |
Proveedor personalizado |
| Nombre que se ve en la pagina |
Elija el nombre apropiado |
| URL de devolución de llamada de OAuth |
URL a la que el IdP redirige a los usuarios tras una autenticación exitosa. |
| ID de cliente |
Desde el paso 4.2 |
| Secreto del cliente |
Desde el paso 4.2 |
| <b></b><b></b> |
o enviar un email. |

- Haga clic en Siguiente por la Avanzado .
- Tipo de subvención: Seleccione el tipo de concesión OAuth utilizado para obtener el token de acceso.
- Mapeo de Dominio: Especifique el dominio vinculado a este proveedor de identidad para iniciar sesión.

- Haga clic en Guardar.
4.2. Configurar miniOrange como proveedor de servicios (SP) en Facebook
- En primer lugar, inicie sesión/regístrese en la consola de desarrollador de Facebook en https://developers.facebook.com/

- Vaya al Mis aplicaciones.

- Haga clic en Crear aplicación para crear una nueva aplicación.

- Ingrese los datos requeridos y haga clic en crear aplicación.

- Complete el control de seguridad y haga clic en Enviar Formulario .

- Seleccionar Facebook Login haciendo clic en el botón configurar.

- Seleccionar Iniciar sesión en Facebook >> Configuración en la opción Productos en la barra de navegación.

- Para obtener el Redireccionar URL:
- Vaya al Consola de administración miniOrange.
- En la barra de navegación izquierda, seleccione Proveedor de identidad.

- Copia el URL de devolución de llamada as URL a redirigir requerido para el siguiente paso.

- En Configuración de OAuth del cliente, ingrese la URL de devolución de llamada/redireccionamiento en el URI de redireccionamiento de OAuth válidos campo. Haga clic en el Guardar botón para guardar sus configuraciones.
Lo más importante, su URI de devolución de llamada/redireccionamiento debiera ser https y no http. Es obligatorio al configurar Facebook como servidor OAuth.

- Vaya al Configuración -> Básico para ver su ID de aplicación y su secreto de aplicación (consulte la imagen a continuación).

- Ha completado con éxito las configuraciones del lado del servidor OAuth de su aplicación de Facebook.
4.1. Configure las aplicaciones de Apple como proveedor OAuth 2.0 en miniOrange.
- Vaya al Consola de administración miniOrange.
- En la barra de navegación izquierda, seleccione Proveedores de identidad >> Agregar proveedor de identidad.

- Para configurar OAuth/Identificación abierta, seleccione OAuth/Identificación abierta desde el desplegable.

- Seleccionar Apple.

- Complete los detalles que se muestran en la siguiente imagen.
| Nombre para mostrar: |
ID de apple |
| Identificación del cliente* |
{Su ID de servicio}, por ejemplo, com.john.serviceid |
| Secreto del cliente* |
eyJraWQiOiJCOTJQUDg1VUw4IiwiYWxnIjoiRVMyNTYifQ.eyJpc3MiOiJFW.... |
| Punto final de autorización de OAuth |
https://appleid.apple.com/auth/authorize?response_mode=form_post |
| Punto final del token de acceso de OAuth* |
https://appleid.apple.com/auth/token |
| <b></b><b></b> |
nombre Correo Electronico |

- Haga clic en Siguiente por la Avanzado .
- Tipo de subvención: Seleccione el tipo de concesión OAuth utilizado para obtener el token de acceso.
- Mapeo de Dominio: Especifique el dominio vinculado a este proveedor de identidad para iniciar sesión.

- Haga clic en Guardar.
4.2. Configure miniOrange como proveedor de servicios (SP) en aplicaciones de Apple
- Vaya al https://developer.apple.com hacer clic en Cuenta e Inicie sesión con su cuenta de desarrollador de Apple.

- Haga clic en Certificados, Identificadores y Perfiles en la cuenta de Apple.

- En el menú de la izquierda haz clic en Identificadores y después de eso haga clic en el Icono Más (color azul). Haga clic en Continuar para las próximas 2 páginas de la Cuenta Apple.

- entrar: Mareas Ideales para Lecciones y ID de paquete para la ID de la aplicación. (El ID del paquete es mejor cuando se trata de una cadena de estilo DNS inverso).

- En la sección Capacidades sección, desplácese hacia abajo y seleccione registrarse con Apple. Haga clic en Editar y seleccione Habilitar como ID de aplicación principal y haga clic en Guardar. Haga clic en Continuar y luego haga clic en Registrarse.


- En la esquina derecha haz clic en Continuar y después de eso Registrarse .
- Nuevamente haga clic en Icono más( color azul). Seleccionar ID de servicio y haga clic en Continuar.

- entrar: Mareas Ideales para Lecciones y Identificador(El identificador sería su ID de cliente; copie este ID y péguelo en el campo anterior de ID de cliente). y haga clic en el Continuar y después de eso Registrarse .

- Haga clic en Teclados en el menú de la izquierda. Haga clic en el Icono más para registrar una nueva clave.

- Entrega tu Clave un nombre y seleccione Iniciar sesión con Apple y haga clic en Configurar en la

- Seleccione su cuenta en Identificación primaria y haga clic en el ícono de Guardar y luego en la esquina derecha haga clic en Continuar y registrarse .

- Haga clic en el elemento Descargar una vez descargada la clave, haga clic en el Terminado .

- En el menú de la izquierda, haga clic en Identificadores.
- En la parte superior derecha haz clic en ID de aplicaciones.
- Seleccionar ID de servicio del menú desplegable.

- Seleccione su cuenta en Identificación del servicio de la lista.
- Seleccione Iniciar sesión con Apple y haga clic en Configurar .

- Seleccione el elemento ID de aplicación principal en el menú desplegable e ingrese el Dominio y URL a redirigir en Dominios y Subdominios y URL de retorno respectivamente y haga clic en el Siguiente (Obtendrá el nombre de dominio y la URL de redireccionamiento desde el panel de control de miniOrange).

- Verifica los detalles y haz clic en Terminado botón. Después de eso, en la esquina derecha, haga clic en el Continuar .
- Copia el Valor del identificador y haga clic en el ícono de Guardar .

- Ingrese el valor del Identificador en el campo ID de la aplicación y copie el clave descargada valor en el campo Secreto de la aplicación del complemento miniOrange de instrucciones de inicio de sesión de Apple.
Generando clave secreta
- Descargue el instalador de Ruby desde el siguiente enlace https://rubyinstaller.org/downloads/ y luego instálalo.
- Busque el símbolo del sistema Inicio con Ruby, abra el símbolo del sistema Ruby e instale la gema JWT ejecutando el siguiente comando en la línea de comando: instalación de gemas jwt.
- Copie el siguiente código en un archivo y guárdelo con la extensión .rb. Mantenga este archivo .rb y el archivo .p8 descargado en la misma carpeta.
- Ingrese el nombre del archivo descargado, ejemplo = "key.P8", key_id, client_id, team_id en el código
require 'jwt'
key_file = 'key.P8'
team_id = ''
client_id = ''
key_id = ''
ecdsa_key = OpenSSL::PKey::EC.new IO.read key_file
headers = {
'kid' => key_id
}
claims = {
'iss' => team_id,
'iat' => Time.now.to_i,
'exp' => Time.now.to_i + 86400*180,
'aud' => 'https://appleid.apple.com',
'sub' => client_id,
}
token = JWT.encode claims, ecdsa_key, 'ES256', headers
puts token
- Abra el símbolo del sistema de Ruby y ejecute el código anterior usando el siguiente comando: nombre de archivo rubí.rb.
- Se le proporcionará su clave secreta de Cliente. Copie y guarde la clave secreta; lo necesitará para configurar el ID de Apple en miniOrange Dashboard.

Referencias externas