Colección de citas famosas - Slogan de motivación - . NET Core5.0 JWT autenticación de inicio de sesión único

. NET Core5.0 JWT autenticación de inicio de sesión único

JWT, el nombre completo es JSON Web Token, es un token de autenticación de usuario basado en JSON. La autenticación entre dominios es posible, por lo que JWT es ideal para la autenticación distribuida y el inicio de sesión único (SSO).

Jwt está separado en tres partes por el símbolo ".".

HEADER: encabezado del token, que describe el tipo de token y el método de cifrado, y convierte el contenido json a base64.

Carga útil: El contenido es información expuesta, la información sensible no se puede almacenar. Cambie el contenido json a base64.

Firma: FIRMA, cifra el encabezado y la información de carga útil de acuerdo con el método de cifrado del encabezado del token y genera una firma. La siguiente es la introducción del sitio web oficial, dirección: https://jwt.io/.

El token de Jwt no puede ser manipulado. Aunque el contenido de las dos primeras partes se puede leer en texto plano después de la decodificación base64, dado que la tercera parte de la firma está cifrada con la clave, las dos primeras partes también deben verificarse al verificar si son consistentes con la firma original. Parte del contenido se vuelve a cifrar. Si el contenido ha sido manipulado, la verificación de firmas inconsistentes fallará.

Pregunta 1: Para sistemas de la misma empresa, si cada sistema tiene su propio nombre de usuario y contraseña, entonces el usuario puede recordarlos.

Tienes una cabeza grande. Entonces, en ese momento, se creó un centro de autenticación y todos los sistemas utilizaron el mismo conjunto de información de usuario para iniciar sesión en el mismo lugar.

Pregunta 2: Es posible utilizar el mismo conjunto de información de usuario, pero si desea ingresar a cada sistema, aún debe iniciar sesión una vez, lo cual es muy problemático. Entonces, aquí debemos iniciar sesión en un lugar, iniciar sesión en cualquier lugar, iniciar sesión en uno de los sistemas y no necesitamos iniciar sesión para ingresar a otros sistemas.

El efecto se muestra en la siguiente figura.

El token después de que el usuario inicia sesión en el centro SSO se puede usar en los sitios A y B. Los sitios A, B y el centro SSO pueden identificar si el token es válido sin comunicación.

¿Cómo conectar el sitio y sso? El proceso específico es que el usuario abre el sitio A y descubre que no ha iniciado sesión. Luego, el sitio A saltará al centro sso para iniciar sesión, con su propia URL. Después de que el centro SSO inicie sesión correctamente, volverá a la URL del sitio web y llevará el token consigo.

El sitio A inicia sesión correctamente, entonces, ¿cómo disfruta el sitio B * * * de este token? La práctica es que cuando el centro de SSO inicia sesión correctamente, guarda un token en una cookie (o almacenamiento local, etc.). ). Cuando el usuario ingresa al sitio B y descubre que no ha iniciado sesión, salta a la URL proporcionada por el centro sso. Cuando el centro SSO descubre que la cookie tiene un token, regresa directamente a la URL del sitio B, trae el token y permite que el sitio B realice * * * intercambio e inicio de sesión automático.

Cree un nuevo proyecto de AuthenticationCenter.

Crea un nuevo controlador AuthenticatinController.

Ver vista de inicio de sesión

Otras categorías relacionadas

La función de inicio de sesión SSO anterior se completó y puede obtener el token abriendo la página de inicio de sesión.

Crear un nuevo sitio web

Modificar el archivo startup.cs y agregar el método ConfigureServices.

Agregar método Configurar.

Crea un nuevo UserController.

Otras categorías relacionadas

La clave debe ser coherente con la del centro SSO. El puerto 5000 anterior es el puerto sso y el puerto 27271 es el puerto del sitio.