Red de conocimiento informático - Material del sitio web - Práctica de control de permisos de inicio de sesión único SSO + JWT basada en Spring Security Oauth2

Práctica de control de permisos de inicio de sesión único SSO + JWT basada en Spring Security Oauth2

Conocimientos teóricos

Antes de esto, es necesario aprender y comprender algunos conocimientos previos, entre los que se incluyen:

Objetivos a alcanzar

Impulsados Con este objetivo, este artículo diseñó tres servicios independientes, a saber

Construcción de proyectos de múltiples módulos

Estas tres aplicaciones se construyen a través de un Maven de múltiples módulos. Organizado por proyecto, las dependencias relevantes que que deben agregarse al pom principal del proyecto son los siguientes:

La estructura del proyecto es la siguiente:

Estructura del proyecto

Construcción del centro de autorización

El centro de autorización es esencialmente una aplicación Spring Boot, por lo que debe completar varios pasos importantes:

Es decir, iniciar el servicio del centro de autorización en el puerto local 8085

Aquí , se crea un usuario simulado con el nombre de usuario codesheep y la contraseña 123456, y se le otorgan permisos normales (ROLE_NORMAL) y permisos medios (ROLE_MEDIUM)

El centro de autorización es esencialmente una aplicación Spring Boot. grandes pasos para completar. MEDIO)

Las dos cosas más importantes que se deben lograr aquí son definir pases para las dos aplicaciones cliente (oveja1 y oveja2) y configurar los tokens como tokens JWT.

Creación y configuración de aplicaciones cliente

En este artículo, crearemos dos aplicaciones cliente: codesheep-client1 y codesheep-client2. Como son similares, solo una de ellas lo hará. se utilizará como ejemplo

¡La complejidad se dejará en comentarios!

Aquí hay varias configuraciones que son muy importantes y necesarias para comunicarse con el centro de autorización creado anteriormente

El controlador de prueba contiene tres interfaces que requieren tres tipos de permisos (ROLE_NORMAL, ROLE_MEDIUM y ROLE_ADMIN), probaremos su funcionamiento uno por uno en artículos posteriores

Verificación experimental

Primero, use un navegador para acceder al cliente.

Primero, use un navegador para acceder a la interfaz de prueba de Cliente1 (codesheep-client1): localhost:8086/normal Dado que no hay verificación de inicio de sesión del usuario en este momento, saltará automáticamente a la verificación de inicio de sesión. página del centro de autorización: http://localhost:8085/uac/login:

Salta automáticamente a la página de verificación de inicio de sesión del centro de autorización.

Saltar automáticamente a la página de inicio de sesión unificada del centro de autorización

Ingrese el nombre de usuario codesheep y la contraseña 123456 para iniciar sesión para autenticación e ingresar a la página de autorización:

Página de autorización

Después de aceptar la autorización, volverá automáticamente a la interfaz de prueba del cliente anterior:

Regresará automáticamente a la interfaz del cliente y llamará correctamente

En este momento, regresaremos al cliente. La interfaz de prueba del terminal: localhost:8086/normal, que es la misma que la interfaz de prueba: localhost:8086/normal.p>

En este momento, Continúe accediendo a la interfaz de prueba del cliente 1 (codesheep-client1): localhost: 8086/medium, y descubrió que se puede llamar directamente sin verificación:

Acceso directo

Desde el Las interfaces localhost:8086/normal y localhost:8086/medium no pueden acceder directamente al cliente, podemos usarlas para acceder a la interfaz de prueba del cliente.

localhost:8086/normal y localhost:8086/medium requieren los permisos de interfaz propiedad del usuario codesheep, por lo que el acceso es fluido. El siguiente es el acceso a la interfaz con permisos superiores: localhost:8086/admin:

. No hay permiso para acceder

Bueno, aquí termina el acceso a la interfaz de prueba del cliente 1 (codesheep-client1), y luego accede a la interfaz de prueba del cliente externo 2 (codesheep-client2): localhost:8087/normal, verá Saltará automáticamente a la página de autorización:

Dado que el usuario ya inició sesión a través del cliente 1, acceder al cliente 2 significa que no necesita iniciar sesión, sino saltar directamente a la página de autorización.

Una vez completada la autorización, podrá acceder con éxito a la interfaz del cliente 2 (codesheep-client2):

Acceda sin problemas a la interfaz del cliente 2

Esto verifica la Función SSO de SSO!