Describa brevemente el principio de realización del inicio de sesión único de CAS

CAS

El sistema de inicio de sesión único CAS (Servicio de autenticación central) es una solución común de autenticación y autorización que permite a los usuarios iniciar sesión en un centro de autenticación (servidor CAS) y luego usar esta información de inicio de sesión para acceder a varias aplicaciones sin tener que iniciar sesión.

Primero entiende algunos sustantivos:

  • TGC: (Cookie de otorgamiento de boletos), una cookie que almacena credenciales de identidad de usuario de SSO, similar a JSESSIONID.
  • TGT: (Ticket Granting Ticket), identifica a un usuario en SSO, similar a Sesión.
  • ST: (Ticket de servicio), seguido de url como parámetro, representa el certificado emitido por CAS para que un determinado usuario acceda al cliente CAS.
    The TGT (Ticket Granting Ticket), stored in the TGC cookie, represents a SSO session for a user. The ST (Service Ticket), transmitted as a GET parameter in urls, stands for the access granted by the CAS server to the CASified application for a specific user.

Diagrama de secuencia de inicio de sesión

红色字体是我添加的翻译 ,可能不够准确,仅供参考
El diagrama de tiempo proporcionado por el sitio web oficial.

Proceso de certificación por primera vez

Después de iniciar la aplicación relacionada con CAS de acuerdo con los pasos anteriores, abra el navegador, visite https://localhost:9443/sample/, ingrese la contraseña para completar el inicio de sesión y filtre las solicitudes irrelevantes en Fiddler. Las solicitudes que deben aprenderse se muestran en la figura.
Proceso de autenticación CAS

  1. El número de serie 930, la primera visita https://localhost:9443/sample/, pasará por el filtro proporcionado por CAS org.jasig.cas.client.authentication.AuthenticationFilter, el filtro juzga que el usuario actual no ha iniciado sesión y redirige la solicitud al centro de autenticación, como se muestra en la figura;
    Autenticación CAS: redirigir al servidor CAS

    La dirección redirigida se configura en el parámetro de filtro casServerLoginUrly serviceel valor del parámetro se configura en el parámetro de filtro serverName, es decir, la dirección que se redirigirá después de la autenticación.

  2. Número de serie 932, el servidor CAS recibe la solicitud de inicio de sesión y vuelve a la página de inicio de sesión;
    Página de inicio de sesión de CAS

  3. Número de serie 956, después de que el usuario ingresa la contraseña y envía el inicio de sesión, el servidor CAS verifica si el nombre de usuario y la contraseña son válidos (aquí se usa autenticación estática), como se muestra en la figura;
    Autenticación CAS: envío de inicio de sesión

    Utilice POSTla solicitud para enviar el formulario de inicio de sesión. Después de que el usuario se haya autenticado con éxito, el código de respuesta de la solicitud es 302, que indica al navegador que redirija la solicitud a la dirección a la que se accedió originalmente. La dirección redirigida lleva un ticketparámetro a través de querySpring. Al mismo tiempo, TGCse establecerá una cookie con el nombre de ruta /cas/. Esta cookie se transportará en la próxima visita , y el servidor puede buscar la cookie correspondiente https://cas.server.com:8443de acuerdo con esto , para determinar si el usuario se ha autenticado y si es necesario mostrar la página de inicio de sesión. ;TGCTGTTGT 与 TGC 的关系就像 SESSION 与 Cookie 中 JSESSIONID 的关系

  4. Número de serie 957, el navegador https://localhost:9443/sample/inicia una solicitud a , la solicitud lleva un valor de ticket firmado por el servidor CAS ST, y localhost:9443el valor del ticket se obtiene en el filtro, y se llama al servicio CAS a través de una solicitud HTTP para verificar si el ticket es válido, el nombre completo del filtro org.jasig.cas.client.validation.Cas30ProxyReceivingTicketValidationFiltery el método de verificación se org.jasig.cas.client.validation.AbstractUrlBasedTicketValidator#validatemuestran en la figura.
    validar

En este punto, el registro del servidor CAS es como se muestra en la figura a continuación.
Certificación CAS - Verificación ST
localhost:9443Después de recibir la devolución del servidor CAS y saber que el usuario es legal, puede responder a la solicitud con normalidad y mostrar la página, como se muestra en la figura.
Autenticación CAS: respuesta del cliente

  1. Número de serie 958, STdespués de pasar la verificación, la redirección es usar el parámetro Cas30ProxyReceivingTicketValidationFilteren el filtro (el valor predeterminado es ) y configurarlo para volver a la página normal después de autenticar al usuario, como se muestra en la figura.redirectAfterValidationtruefalse
    Autenticación CAS: redirección
    Autenticación CAS: cliente de acceso

Proceso de reautenticación

localhost:9443Se han solucionado los pasos de la primera visita , mantener la sesión del usuario en SSO, intentar visitar localhost:7443y observar su proceso. Cuando la solicitud se redirige al servidor CAS, se lleva una cookie con valor TGC. TGCEl servidor CAS encuentra el correspondiente a través de this TGT, y juzga que el usuario ha iniciado sesión, y luego ya no muestra la página de inicio de sesión, es decir, falta el paso de iniciar sesión en el servidor CAS, y los pasos restantes son los mismos como el primer inicio de sesión, como se muestra en la figura.
Proceso de reautenticación

Principio de implementación del inicio de sesión único de CAS

  1. El usuario accede a una aplicación que requiere autenticación y aún no se ha autenticado.

  2. La aplicación redirige al usuario al servidor CAS para la verificación de inicio de sesión.

  3. El servidor CAS verifica las credenciales de inicio de sesión del usuario y, si se verifica, crea un ticket.

  4. El servidor CAS devuelve el ticket a la aplicación y redirige al usuario a la aplicación.

  5. La aplicación recibe el ticket y lo envía de vuelta al servidor CAS para su verificación.

  6. Si el ticket es válido, el servidor CAS devuelve una respuesta de autenticación exitosa.

  7. La aplicación guarda la información de autenticación del usuario en la sesión para su posterior acceso.

  8. Si el usuario intenta acceder a otra aplicación, la aplicación utilizará los mismos pasos para autenticar al usuario.

Por lo tanto, la idea principal del sistema de inicio de sesión único de CAS es separar el proceso de autenticación del usuario de la aplicación, de modo que el usuario pueda acceder a múltiples aplicaciones con una sola verificación de inicio de sesión. El sistema CAS almacena toda la información de inicio de sesión en un centro de autenticación centralizado, para que otras aplicaciones puedan obtener la información de verificación de identidad del usuario a través del centro, realizando así la función de inicio de sesión único.

Supongo que te gusta

Origin blog.csdn.net/qq_42133976/article/details/130417933
Recomendado
Clasificación