Red de conocimiento informático - Problemas con los teléfonos móviles - ¿Cómo implementar el inicio de sesión único SSO con Spring Security basado en Oauth2? Una anotación es todo lo que se necesita

¿Cómo implementar el inicio de sesión único SSO con Spring Security basado en Oauth2? Una anotación es todo lo que se necesita

Como sugiere el nombre, el inicio de sesión único significa que en múltiples sistemas de aplicaciones, solo necesita iniciar sesión una vez para acceder a otros sistemas de aplicaciones de confianza mutua, lo que elimina el problema de los inicios de sesión múltiples. Este artículo presenta principalmente los principios de implementación del inicio de sesión único en dos escenarios diferentes, del mismo dominio y entre dominios, y utiliza Spring Security para implementar el cliente SSO entre dominios más simple.

El inicio de sesión único se implementa principalmente en función de cookies compartidas. A continuación se presentará cómo implementar *** en el mismo dominio y en escenarios de uso compartido de cookies. /p>

Escenarios aplicables: todos son sistemas empresariales. Todos los sistemas utilizan el mismo nombre de dominio de primer nivel y se distinguen por diferentes nombres de dominio de segundo nivel.

Por ejemplo: La empresa tiene un nombre de dominio de primer nivel zlt.com y tenemos tres sistemas: sistema de portal (sso.zlt.com), aplicación 1 (app1.zlt.com) y aplicación. 2 (app2.zlt.com), es necesario realizar un inicio de sesión único entre sistemas. La arquitectura de implementación es la siguiente:

Principio básico:

.

Punto único El nombre de dominio del sistema es diferente entre los inicios de sesión, como en un sistema de terceros. Dado que diferentes nombres de dominio no pueden compartir cookies, es necesario utilizar un servicio de autorización independiente (UAA) para el inicio de sesión unificado y realizar un inicio de sesión único basado en el intercambio de cookies de UAA.

Por ejemplo: hay dos sistemas: la Aplicación 1 (webApp.com) y la Aplicación 2 (zlt.com) necesitan implementar el inicio de sesión único, y también hay un centro de autorización UAA (sso.com). ), la arquitectura de implementación es la siguiente:

Principios básicos:

Además de requerir un centro de autorización para inicio de sesión unificado completo/Además de la lógica de autorización

Cada sistema en sí (cliente sso) también necesita implementar la siguiente lógica:

La lógica anterior se puede implementar usando solo un @EnableOAuth2Sso anotación

La configuración de SpringBoot es la siguiente:

La siguiente figura muestra los pasos para que la anotación @EnableOAuth2Sso interactúe con el centro de autorización UAA a través del modo de código de autorización Oauth2 para completar la firma única. activado al acceder al cliente sso

PD: Si el sistema ¿Qué debo hacer si no estoy usando Spring Security? ¿Comprender el principio e implementarlo usted mismo

/zlt2000/microservices-platform/tree/master/zlt-demo/sso-demo

?

¡Escanea el código QR para seguir y recibir una sorpresa!