CAS-Brief introduction et configuration de la connexion et de la déconnexion de la source de données

1. Qu'est-ce que l'authentification unique

L'authentification unique ( Single Sign the On ), appelée SSO , est l'une des solutions d'intégration d'entreprise les plus populaires. La définition de l' authentification unique est que dans plusieurs systèmes d'application, les utilisateurs n'ont besoin de se connecter qu'une seule fois pour accéder à tous les systèmes d'application mutuellement approuvés. Lorsqu'il existe de nombreux sous-systèmes dans notre système et que ces sous-systèmes sont déployés sur différents serveurs, le mode de session traditionnel ne peut pas être résolu, nous devons utiliser la technologie de connexion unique associée pour le résoudre.

 

2. Qu'est-ce que CAS

CAS est Yale un projet open source parrainé par l'université, destiné au Web pour fournir une méthode fiable d'applications d'authentification unique, CAS en 2004 Nian 12 est officiellement devenu un projet JA-SIG de mois . CAS présente les caractéristiques suivantes:

[ 1 ] Solution d'authentification unique Open Source au niveau de l'entreprise.

[ 2 ] CAS Server est une application Web qui doit être déployée indépendamment .

[ 3 ] CAS Client prend en charge de nombreux clients ( ici se réfère aux applications Web dans le système d'authentification unique ) , y compris Java, .Net, PHP, Perl, Apache, uPortal, Ruby, etc.

Du point de vue structurel, CAS se compose de deux parties: le serveur CAS et le client CAS . CAS Server doit être déployé indépendamment et est principalement responsable de l'authentification des utilisateurs; CAS Client est responsable du traitement des demandes d'accès aux ressources protégées du client et redirige vers CAS Server lorsqu'il a besoin de se connecter . La figure suivante est le processus de protocole le plus basique de CAS :

Le processus d'accès à l' authentification unique SSO comprend principalement les étapes suivantes:

  1. Service d'accès: le client SSO envoie une demande d'accès aux ressources de service fournies par le système d'application.
  2. Authentification dirigée: le client SSO redirigera les demandes des utilisateurs vers le serveur SSO .
  3. Authentification de l'utilisateur: authentification de l'identité de l'utilisateur.
  4. Émission de tickets: le serveur SSO générera un ticket de service aléatoire .
  5. Vérification du ticket : le serveur SSO vérifie la légitimité du ticket Service Ticket , et une fois la vérification réussie, le client est autorisé à accéder au service.
  6. Transmettre les informations utilisateur: une fois que le serveur SSO a vérifié le ticket, il transmet les informations de résultat d'authentification utilisateur au client.

 

3. Déploiement du serveur CAS

1. Téléchargez un serveur Tomcat pur, adresse de téléchargement:  https://pan.baidu.com/s/1YY3o6qno1DuR7oxwgMkdEQ

2. Téléchargez le serveur cas.war, adresse de téléchargement:  https://pan.baidu.com/s/1w7Y1d3Tr0P0MBlGvRcLVTg

3. Décompressez le serveur Tomcat téléchargé dans un répertoire de fichiers sans chinois et sans espaces, puis coupez le serveur cas.war téléchargé dans le répertoire webapps de Tomcat, démarrez Tomcat dans le répertoire bin  et cas sera automatiquement extrait du package WAR .

4. Entrez http: // localhost: 8080 / cas / login dans le navigateur pour accéder à la page suivante:

 

4. Configuration du serveur CAS

1. Modifiez le numéro de port

A. Modifiez le numéro de port de Tomcat

Ouvrez le répertoire Tomcat conf \ server.xml et  recherchez la configuration suivante (le numéro de port initial de Tomcat est 8080, modifiez-le en un autre numéro de port, tel que 9100)

B. Modifiez le  fichier de configuration CAS

Modifiez le WEB-INF / cas.properties de cas après décompression  :

2. Supprimer la certification https

CAS est utilisé par le protocole HTTPS par défaut , si vous utilisez le protocole HTTPS nécessite un certificat de sécurité SSL (pour être spécifique aux institutions à appliquer et à acheter) . Si les exigences de sécurité ne sont pas élevées ou en phase de développement et de test, le protocole HTTP peut être utilisé . Nous sommes ici pour expliquer qu'en modifiant la configuration, laissez CAS utiliser le protocole HTTP .

A.  Modifiez le WEB-INF / deployerConfigContext.xml de cas

Ici, vous devez modifier le paramètre p: requireSecure = "false" , la valeur par défaut est true, l' attribut requireSecure signifie si une vérification de sécurité est requise, c'est-à-dire HTTPS , false signifie ne pas utiliser

B.  Modification de la  WEB- INF / ressort configuration /ticketGrantingTicketCookieGenerator.xml de CAS

Paramètres par défaut  P: = cookieSecure "to true" , de la même manière que l' authentification HTTPS liée, TRUE utilise l' authentification HTTPS , FALSE n'est pas utilisé l' authentification https .

Le paramètre par défaut est  p: cookieMaxAge = "- 1" , qui est le cycle de vie maximal de COOKIE , et -1 n'est pas un cycle de vie, c'est-à-dire qu'il n'est valide que dans la fenêtre actuellement ouverte . Si vous fermez ou rouvrez d'autres fenêtres , l'authentification sera toujours requise. Il peut être modifié en un nombre supérieur à 0 si nécessaire , tel que 3600 , ce qui signifie que dans les 3600 secondes, ouvrez n'importe quelle fenêtre sans vérification. Ici, nous remplaçons cookieSecure par false et cookieMaxAge par 3600.

C.Modifiez le cas du WEB-INF / spring-configuration / warnCookieGenerator.xml:

Nous remplaçons ici cookieSecure par false et cookieMaxAge par 3600.

 

5. Connexion par nom d'utilisateur

Dans le fichier deployerConfigContext.xml sous web-inf dans le  serveur cas :

<!-- 选择登录用户数据源 -->
<constructor-arg>
    <map>
        <entry key-ref="proxyAuthenticationHandler" value-ref="proxyPrincipalResolver" />
        <entry key-ref="primaryAuthenticationHandler" value-ref="primaryPrincipalResolver" />
    </map>
</constructor-arg>

Le key-ref = "primaryAuthenticationHandler" ci - dessus signifie que vous vous connectez avec une configuration statique de nom d'utilisateur et de mot de passe. Si vous souhaitez vous connecter avec le nom d'utilisateur et le mot de passe dans la base de données, remplacez la valeur par  "dbAuthHandler"

<!-- 静态用户名密码配置 -->
<bean id="primaryAuthenticationHandler" class="org.jasig.cas.authentication.AcceptUsersAuthenticationHandler">
    <property name="users">
        <map>
			<entry key="admin" value="admin"/>
        </map>
    </property>
</bean>
	
<!-- 数据库登录用户数据源配置 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"    	 	 	  
    p:driverClass="com.mysql.jdbc.Driver"    	 	 	  
	p:jdbcUrl="jdbc:mysql://127.0.0.1:3306/登录用户表所在的数据库名?characterEncoding=utf8"  
	p:user="root"    	 	 	  
	p:password="root" /> 
			
<bean id="passwordEncoder" class="org.jasig.cas.authentication.handler.DefaultPasswordEncoder"   
 	c:encodingAlgorithm="MD5"    	 	
	p:characterEncoding="UTF-8" />
			
<bean id="dbAuthHandler" class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler"    	 	  
	p:dataSource-ref="dataSource"    	 	  
	p:sql="select 密码 from 表名 where 用户名 = ?"    	 	  
	p:passwordEncoder-ref="passwordEncoder"/>

Importez le package de dépendances du pool de connexion à la base de données, adresse de téléchargement:  https://pan.baidu.com/s/13diIxLe9shgliXF-TQfynQ

Coupez les trois packages de dépendances décompressés dans les webapps \ cas \ WEB-INF \ lib de cas .

Après avoir sélectionné la source de données de connexion de l'utilisateur, connectez-vous à nouveau avec le nouveau numéro de port pour vous connecter à la page de réussite:

 

VI. Déconnexion de l'utilisateur connecté

Entrée de la barre d'adresse du navigateur:  http: // localhost: 9100 / cas / logout  

Vous pouvez voir la page d'invite après avoir quitté:

Je suppose que tu aimes

Origine blog.csdn.net/weixin_42629433/article/details/84309210
conseillé
Classement