<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Tutoriel CAS &#8211; FoxDevelop</title>
	<atom:link href="https://www.foxdevelop.com/fr/category/c-fr/tutoriel-cas/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.foxdevelop.com</link>
	<description>Studio de développement logiciel indépendant</description>
	<lastBuildDate>Thu, 06 Aug 2026 08:08:13 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.2</generator>

<image>
	<url>https://www.foxdevelop.com/wp-content/uploads/2026/05/fox-svgrepo-com-1.png</url>
	<title>Tutoriel CAS &#8211; FoxDevelop</title>
	<link>https://www.foxdevelop.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Implémentation CAS</title>
		<link>https://www.foxdevelop.com/fr/2026/08/06/implementation-cas/</link>
					<comments>https://www.foxdevelop.com/fr/2026/08/06/implementation-cas/#respond</comments>
		
		<dc:creator><![CDATA[jack]]></dc:creator>
		<pubDate>Thu, 06 Aug 2026 08:08:13 +0000</pubDate>
				<category><![CDATA[Tutoriel CAS]]></category>
		<guid isPermaLink="false">https://www.foxdevelop.com/?p=7827</guid>

					<description><![CDATA[Logique d’implémentation de l’ancienne version de CAS Principe fondamental (protocole CAS 1.0) Configuration web.config Les serveurs CAS récents imposent HTTPS par défaut. La valeur de casUrl doit être renseignée avec ...]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Logique d’implémentation de l’ancienne version de CAS</p>



<h4 class="wp-block-heading">Principe fondamental (protocole CAS 1.0)</h4>



<ol class="wp-block-list">
<li>L’utilisateur accède à la page protégée <code>/admin/admin.aspx</code></li>



<li>Les règles de permissions dans <code>web.config</code> bloquent les utilisateurs anonymes et redirigent automatiquement vers la page de connexion <code>CasEnter.aspx</code></li>



<li><code>CasEnter.aspx</code> vérifie la présence du paramètre <code>ticket</code> dans l’URL</li>
</ol>



<ul class="wp-block-list">
<li>Pas de ticket : redirection vers la page de connexion du serveur CAS avec l’adresse du site courant dans le paramètre <code>service</code></li>



<li>Avec ticket : appel de l’API <code>serviceValidate</code> pour valider le billet auprès du serveur CAS</li>
</ul>



<ol class="wp-block-list">
<li>CAS renvoie un document XML, on en extrait le nom d’utilisateur connecté</li>



<li>Après validation réussie, appel à <code>FormsAuthentication.SetAuthCookie()</code> pour créer le billet d’authentification Forms local et rediriger vers la page cible</li>



<li>Les accès suivants aux dossiers protégés utilisent ASP.NET Forms pour reconnaître l’état de connexion</li>
</ol>



<h4 class="wp-block-heading">Configuration web.config</h4>


<pre class="wp-block-code"><span><code class="hljs language-xml"><span class="hljs-tag">&lt;<span class="hljs-name">system.web</span>&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">authentication</span> <span class="hljs-attr">mode</span>=<span class="hljs-string">"Forms"</span>&gt;</span>
    <span class="hljs-comment">&lt;!-- loginUrl pointe vers CasEnter.aspx, page relais d’entrée CAS --&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">forms</span> <span class="hljs-attr">loginUrl</span>=<span class="hljs-string">"CasEnter.aspx"</span> 
           <span class="hljs-attr">defaultUrl</span>=<span class="hljs-string">"admin/admin.aspx"</span> 
           <span class="hljs-attr">name</span>=<span class="hljs-string">".LoginFormsTicket"</span> 
           <span class="hljs-attr">path</span>=<span class="hljs-string">"/"</span> 
           <span class="hljs-attr">timeout</span>=<span class="hljs-string">"40"</span> 
           <span class="hljs-attr">protection</span>=<span class="hljs-string">"All"</span>&gt;</span>
    <span class="hljs-tag">&lt;/<span class="hljs-name">forms</span>&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">authentication</span>&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">authorization</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">allow</span> <span class="hljs-attr">users</span>=<span class="hljs-string">"*"</span>/&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">authorization</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">system.web</span>&gt;</span>

<span class="hljs-comment">&lt;!-- Interdit l’accès anonyme au dossier admin --&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">location</span> <span class="hljs-attr">path</span>=<span class="hljs-string">"admin"</span>&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">system.web</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">authorization</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">deny</span> <span class="hljs-attr">users</span>=<span class="hljs-string">"?"</span>/&gt;</span>
    <span class="hljs-tag">&lt;/<span class="hljs-name">authorization</span>&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">system.web</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">location</span>&gt;</span></code></span></pre>


<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Les serveurs CAS récents imposent HTTPS par défaut. La valeur de <code>casUrl</code> doit être renseignée avec <code>https://127.0.0.1:8443/cas/</code></p>
</blockquote>


<pre class="wp-block-code"><span><code class="hljs language-xml"><span class="hljs-tag">&lt;<span class="hljs-name">appSettings</span>&gt;</span>
  <span class="hljs-comment">&lt;!-- Adresse CAS7 avec barre oblique finale --&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">add</span> <span class="hljs-attr">key</span>=<span class="hljs-string">"casUrl"</span> <span class="hljs-attr">value</span>=<span class="hljs-string">"https://127.0.0.1:8443/cas/"</span>/&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">appSettings</span>&gt;</span></code></span></pre>


<h4 class="wp-block-heading">Code‑source de CasEnter.aspx</h4>



<h5 class="wp-block-heading">1. Partie vue CasEnter.aspx</h5>


<pre class="wp-block-code"><span><code class="hljs language-xml"><span class="hljs-tag">&lt;<span class="hljs-name">%@</span> <span class="hljs-attr">Page</span> <span class="hljs-attr">Language</span>=<span class="hljs-string">"C#"</span> <span class="hljs-attr">AutoEventWireup</span>=<span class="hljs-string">"true"</span> <span class="hljs-attr">CodeBehind</span>=<span class="hljs-string">"CasEnter.aspx.cs"</span> <span class="hljs-attr">Inherits</span>=<span class="hljs-string">"CasStudy.Web.CasEnter"</span> %&gt;</span>
<span class="hljs-meta">&lt;!DOCTYPE <span class="hljs-meta-keyword">html</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">html</span> <span class="hljs-attr">xmlns</span>=<span class="hljs-string">"http://www.w3.org/1999/xhtml"</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">head</span> <span class="hljs-attr">runat</span>=<span class="hljs-string">"server"</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">title</span>&gt;</span>Connexion relais CAS<span class="hljs-tag">&lt;/<span class="hljs-name">title</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">head</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">body</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">form</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"form1"</span> <span class="hljs-attr">runat</span>=<span class="hljs-string">"server"</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">div</span>&gt;</span>
            <span class="hljs-tag">&lt;<span class="hljs-name">asp:Label</span> <span class="hljs-attr">ID</span>=<span class="hljs-string">"Label1"</span> <span class="hljs-attr">runat</span>=<span class="hljs-string">"server"</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">asp:Label</span>&gt;</span><span class="hljs-tag">&lt;<span class="hljs-name">br</span> /&gt;</span>
            <span class="hljs-tag">&lt;<span class="hljs-name">asp:HyperLink</span> <span class="hljs-attr">ID</span>=<span class="hljs-string">"HyperLink1"</span> <span class="hljs-attr">runat</span>=<span class="hljs-string">"server"</span>&gt;</span>Ré‑authentifier<span class="hljs-tag">&lt;/<span class="hljs-name">asp:HyperLink</span>&gt;</span>
        <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
    <span class="hljs-tag">&lt;/<span class="hljs-name">form</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">body</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">html</span>&gt;</span></code></span></pre>


<h5 class="wp-block-heading">2. Code‑behind CasEnter.aspx.cs</h5>



<p class="wp-block-paragraph"><br>API mise à jour vers CAS3.0 <code>p3/serviceValidate</code><br>Remplacement de WebClient obsolète par HttpClient </p>



<p class="wp-block-paragraph">Ajout de la compatibilité pour certificats auto‑signés (indispensable pour les tests locaux sur CAS récent)<br>Gestion des espaces de noms sur le XML renvoyé par CAS</p>


<pre class="wp-block-code"><span><code class="hljs language-xml">using System;
using System.Configuration;
using System.Net;
using System.Net.Http;
using System.Xml;
using System.Web.Security;

public partial class CasEnter : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        string casHost = ConfigurationManager.AppSettings&#91;"casUrl"];
        string ticket = Request.QueryString&#91;"ticket"];
        string service = Request.Url.GetLeftPart(UriPartial.Path);

        // Sans billet : redirection vers la page de connexion CAS
        if (string.IsNullOrEmpty(ticket))
        {
            string redirectUrl = $"{casHost}login?service={Uri.EscapeDataString(service)}";
            Response.Redirect(redirectUrl);
            return;
        }

        // Validation du billet
        string username = ValidateTicket(casHost, ticket, service);
        if (string.IsNullOrEmpty(username))
        {
            Label1.Text = "Désolé, l’authentification CAS a échoué. Veuillez réessayer.";
            HyperLink1.NavigateUrl = Request.Url.AbsolutePath;
        }
        else
        {
            // Génère le billet Forms pour la connexion locale
            FormsAuthentication.SetAuthCookie(username, false);
            // Redirige vers la page cible
            Response.Redirect(FormsAuthentication.DefaultUrl);
        }
    }

    /// <span class="hljs-tag">&lt;<span class="hljs-name">summary</span>&gt;</span>
    /// Validation de billet CAS3.0 via p3/serviceValidate
    /// <span class="hljs-tag">&lt;/<span class="hljs-name">summary</span>&gt;</span>
    private string ValidateTicket(string casHost, string ticket, string service)
    {
        // CAS récent préconise p3/serviceValidate (protocole CAS3.0)
        string validateUrl = $"{casHost}p3/serviceValidate?ticket={Uri.EscapeDataString(ticket)}&amp;service={Uri.EscapeDataString(service)}";

        // Tests locaux uniquement : autorise certificats SSL non fiables (supprimer en production!)
        ServicePointManager.ServerCertificateValidationCallback += (s, cert, chain, err) =&gt; true;

        using var httpClient = new HttpClient();
        string xml = httpClient.GetStringAsync(validateUrl).Result;

        XmlDocument doc = new XmlDocument();
        doc.LoadXml(xml);
        XmlNamespaceManager nsMgr = new XmlNamespaceManager(doc.NameTable);
        // Espace de noms du XML réponse CAS3
        nsMgr.AddNamespace("cas", "http://www.yale.edu/tp/cas");

        // Récupération du nœud utilisateur
        XmlNode userNode = doc.SelectSingleNode("//cas:authenticationSuccess/cas:user", nsMgr);
        return userNode?.InnerText;
    }
}</code></span></pre>


<p class="wp-block-paragraph">Implémentation CAS</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.foxdevelop.com/fr/2026/08/06/implementation-cas/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Installation</title>
		<link>https://www.foxdevelop.com/fr/2026/08/06/installation-2/</link>
					<comments>https://www.foxdevelop.com/fr/2026/08/06/installation-2/#respond</comments>
		
		<dc:creator><![CDATA[jack]]></dc:creator>
		<pubDate>Thu, 06 Aug 2026 07:54:57 +0000</pubDate>
				<category><![CDATA[Tutoriel CAS]]></category>
		<guid isPermaLink="false">https://www.foxdevelop.com/?p=7811</guid>

					<description><![CDATA[Installation ancienne version‑ Instructions pour CAS antérieur à la 5.0 Dépendances 1. JDK Version : (JDK) Java 17Lien direct : Java Downloads &#124; Oracle ⚠️ Attention : Le JDK 7 est une version obsolète, compatible ...]]></description>
										<content:encoded><![CDATA[
<h3 class="wp-block-heading">Installation ancienne version‑ Instructions pour CAS antérieur à la 5.0</h3>



<ol class="wp-block-list">
<li>Le serveur CAS est développé en Java, son exécution dépend de deux environnements clés :</li>
</ol>



<ul class="wp-block-list">
<li><strong>JDK (Kit de développement Java)</strong> : intègre la machine virtuelle Java (JVM), indispensable pour exécuter les programmes Java.</li>



<li><strong>Tomcat (conteneur web)</strong> : permet de déployer et d’exécuter l’application web war de CAS.</li>
</ul>



<ol class="wp-block-list">
<li>Ordre d’installation à respecter : <strong>installer d’abord le JDK → puis Tomcat</strong> (Tomcat détecte automatiquement l’environnement JDK local lors de son installation)</li>
</ol>



<h4 class="wp-block-heading">Dépendances</h4>



<h5 class="wp-block-heading">1. JDK</h5>



<p class="wp-block-paragraph">Version : (JDK) Java 17<br>Lien direct : <code><a href="https://www.oracle.com/cn/java/technologies/downloads/">Java Downloads | Oracle </a></code></p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/26a0.png" alt="⚠" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Attention : Le JDK 7 est une version obsolète, compatible uniquement avec les anciennes versions de CAS ; déconseillé pour les nouveaux projets.</p>
</blockquote>



<h5 class="wp-block-heading">2. Apache Tomcat</h5>



<p class="wp-block-paragraph">Version : <strong>Tomcat (version installable Windows)</strong><br><a href="https://tomcat.apache.org/">Apache Tomcat® &#8211; Welcome!</a></p>



<h4 class="wp-block-heading">Procédure d’installation</h4>



<ol class="wp-block-list">
<li><strong>Installer le JDK</strong>
<ul class="wp-block-list">
<li>Lancer le fichier exe d’installation, vous pouvez personnaliser le chemin d’installation</li>



<li>【Point essentiel】Après l’installation, configurez les variables d’environnement : <code>JAVA_HOME</code>, <code>Path</code>, pour que Tomcat reconnaisse correctement l’environnement Java</li>
</ul>
</li>



<li><strong>Installer Tomcat 7</strong>
<ul class="wp-block-list">
<li>Lancer le programme d’installation, il détecte automatiquement le JDK déjà installé</li>



<li>Personnalisez le port Tomcat (8080 par défaut), définissez identifiant et mot de passe d’administration</li>



<li>Options de la page de fin d’installation :</li>



<li> <code>Run Apache Tomcat</code> : cocher pour lancer automatiquement le service Tomcat après avoir cliqué sur Finish</li>



<li><code>Show Readme</code> : vous pouvez décocher, pas besoin de consulter la documentation</li>



<li>Cliquez sur <code>Finish</code> pour terminer l’installation</li>
</ul>
</li>
</ol>



<h4 class="wp-block-heading">Configurer SSL/HTTPS sur Tomcat</h4>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Contexte essentiel : <strong>Le protocole CAS impose l’usage obligatoire du HTTPS sur le serveur</strong>, HTTP n’est pas autorisé, il faut donc configurer un certificat SSL pour Tomcat.</p>
</blockquote>



<ol class="wp-block-list">
<li>Générez un <strong>magasin de clés JKS (certificat autosigné)</strong> avec l’outil <code>keytool</code> fourni par le JDK</li>



<li>Modifiez <code>conf/server.xml</code> de Tomcat pour activer le connecteur SSL</li>



<li>Redémarrez Tomcat, accédez à <code>https://localhost:8443</code> pour vérifier le bon fonctionnement du HTTPS</li>
</ol>



<h4 class="wp-block-heading">Générer un certificat autosigné (JKS)</h4>



<h5 class="wp-block-heading">Prérequis</h5>



<ol class="wp-block-list">
<li>Créer un dossier de stockage des certificats : exemple <code>C:\Keys</code></li>



<li><strong>Exécuter cmd en tant qu’administrateur</strong><br>&gt; Sous Windows 7/10/11, une cmd classique renvoie une erreur de permissions lors de l’écriture à la racine du disque C.</li>



<li>Accédez au dossier bin de JDK/JRE</li>
</ol>


<pre class="wp-block-code"><span><code class="hljs language-javascript">cd <span class="hljs-string">"c:\Program Files\Java\jre\bin"</span></code></span></pre>


<p class="wp-block-paragraph">Commande modèle générique (valable aussi pour les versions récentes du JDK)</p>


<pre class="wp-block-code"><span><code class="hljs language-css"><span class="hljs-selector-tag">keytool</span> <span class="hljs-selector-tag">-genkey</span> <span class="hljs-selector-tag">-alias</span> <span class="hljs-selector-tag">tomcat</span> <span class="hljs-selector-tag">-keyalg</span> <span class="hljs-selector-tag">RSA</span> <span class="hljs-selector-tag">-storepass</span> <span class="hljs-selector-tag">changeit</span> <span class="hljs-selector-tag">-keystore</span> <span class="hljs-selector-tag">c</span>:\<span class="hljs-selector-tag">Keys</span>\<span class="hljs-selector-class">.keystore</span> <span class="hljs-selector-tag">-validity</span> 36000</code></span></pre>


<h4 class="wp-block-heading">Explication des paramètres</h4>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Paramètre</th><th>Signification</th></tr></thead><tbody><tr><td><code>-genkey</code></td><td>Génère une paire de clés</td></tr><tr><td><code>-alias tomcat</code></td><td>Alias du certificat, personnalisable</td></tr><tr><td><code>-keyalg RSA</code></td><td>Algorithme de chiffrement, RSA standard</td></tr><tr><td><code>-storepass changeit</code></td><td><strong>Mot de passe du magasin de clés</strong> (à conserver absolument, utilisé pour configurer Tomcat par la suite)</td></tr><tr><td><code>-keystore c:\Keys\.keystore</code></td><td>Chemin de sortie du fichier certificat</td></tr><tr><td><code>-validity 36000</code></td><td>Durée de validité du certificat (en jours)</td></tr></tbody></table></figure>



<h5 class="wp-block-heading">Renseignement interactif des informations</h5>



<p class="wp-block-paragraph">Après exécution de la commande, saisissez successivement :</p>



<ol class="wp-block-list">
<li>Prénom et nom : saisissez le nom de domaine (vous pouvez mettre n’importe quoi pour un environnement d’apprentissage)</li>



<li>Unité organisationnelle, organisation, ville, département, code pays (cn)</li>



<li>Confirmez les informations en tapant <code>y</code></li>



<li>Mot de passe de la clé : <strong>appuyez directement sur Entrée, utilisez le même mot de passe que le magasin de clés</strong></li>
</ol>



<h5 class="wp-block-heading">Commande pour consulter le certificat</h5>


<pre class="wp-block-code"><span><code class="hljs language-php">keytool -<span class="hljs-keyword">list</span> -keystore <span class="hljs-string">"C:\Keys\.keystore"</span></code></span></pre>


<p class="wp-block-paragraph">Saisissez le mot de passe ; si les informations s’affichent correctement, le certificat est bien généré.</p>



<h4 class="wp-block-heading">Configurer le connecteur SSL dans Tomcat server.xml</h4>



<ol class="wp-block-list">
<li>Ouvrez <code>Tomcat/conf/server.xml</code></li>



<li>Repérez le connecteur SSL commenté, supprimez le commentaire et adaptez le chemin du certificat ainsi que son mot de passe</li>
</ol>


<pre class="wp-block-code"><span><code class="hljs language-xml"><span class="hljs-tag">&lt;<span class="hljs-name">Connector</span> <span class="hljs-attr">port</span>=<span class="hljs-string">"8443"</span> <span class="hljs-attr">protocol</span>=<span class="hljs-string">"HTTP/1.1"</span> <span class="hljs-attr">SSLEnabled</span>=<span class="hljs-string">"true"</span>
    <span class="hljs-attr">maxThreads</span>=<span class="hljs-string">"150"</span> <span class="hljs-attr">scheme</span>=<span class="hljs-string">"https"</span> <span class="hljs-attr">secure</span>=<span class="hljs-string">"true"</span>
    <span class="hljs-attr">clientAuth</span>=<span class="hljs-string">"false"</span> <span class="hljs-attr">sslProtocol</span>=<span class="hljs-string">"TLS"</span>
    <span class="hljs-attr">keystoreFile</span>=<span class="hljs-string">"C:\Keys\.keystore"</span>
    <span class="hljs-attr">keystorePass</span>=<span class="hljs-string">"changeit"</span> /&gt;</span></code></span></pre>


<h5 class="wp-block-heading">Description des paramètres</h5>



<ul class="wp-block-list">
<li><code>port="8443"</code> : port HTTPS par défaut de Tomcat (le port HTTPS standard est 443, si vous voulez l’utiliser faites attention aux conflits de port et aux permissions)</li>



<li><code>keystoreFile</code> : chemin absolu du fichier certificat généré</li>



<li><code>keystorePass</code> : mot de passe du magasin de clés défini précédemment avec keytool</li>





<li><code>clientAuth="false"</code> : pas besoin de certificat client (gardez false pour un environnement d’apprentissage)</li>
</ul>
<!-- /wp:post-content -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading">Méthode de vérification</h4>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Lancez Tomcat, accédez dans votre navigateur :<br><code>https://127.0.0.1:8443</code></p>
<!-- /wp:paragraph -->

<!-- wp:quote -->
<blockquote class="wp-block-quote"><!-- wp:paragraph -->
<p>Le navigateur affichera un avertissement « non sécurisé » pour un certificat autosigné, c’est un comportement normal ; pour la production utilisez un certificat CA officiel.</p>
<!-- /wp:paragraph --></blockquote>
<!-- /wp:quote -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Installation CAS 5.0+</h3>
<!-- /wp:heading -->

<!-- wp:heading {"level":5} -->
<h5 class="wp-block-heading">1. Récupération des ressources</h5>
<!-- /wp:heading -->

<!-- wp:quote -->
<blockquote class="wp-block-quote"><!-- wp:paragraph -->
<p>CAS 5.0+ abandonne le schéma traditionnel <code>war + Tomcat</code>. Basé sur SpringBoot, il est fourni sous forme de <strong>fichier Jar exécutable autonome, pas besoin de Tomcat externe</strong></p>
<!-- /wp:paragraph --></blockquote>
<!-- /wp:quote -->

<!-- wp:list {"ordered":true} -->
<ol class="wp-block-list"><!-- wp:list-item -->
<li>Serveur CAS (Server)</li>
<!-- /wp:list-item --></ol>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p><strong>Générer un paquet de déploiement en ligne avec CAS Initializr</strong><br>https://casinitializr.apereo.org</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":5} -->
<h5 class="wp-block-heading">2. Procédure de déploiement du serveur CAS</h5>
<!-- /wp:heading -->

<!-- wp:list {"ordered":true} -->
<ol class="wp-block-list"><!-- wp:list-item -->
<li>Ouvrez CAS Initializr</li>
<!-- /wp:list-item --></ol>
<!-- /wp:list -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>Sélectionnez CAS Version : <code>7.0.x</code> (dernière version stable)</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Cochez les modules de base : <code>Core / Web / SSL</code></li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Générez et téléchargez <code>cas.war</code> (ou générez directement le Jar autonome <code>cas.jar</code>)</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:quote -->
<blockquote class="wp-block-quote"><!-- wp:paragraph -->
<p>Choisissez l’un des deux modes d’empaquetage :</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li>Mode A (recommandé) : <strong>Standalone (Jar autonome)</strong>, Tomcat intégré, prêt à l’emploi</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Mode B : paquet War classique, déployable sur un Tomcat externe (non recommandé)</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list --></blockquote>
<!-- /wp:quote -->

<!-- wp:list {"ordered":true,"start":2} -->
<ol start="2" class="wp-block-list"><!-- wp:list-item -->
<li>Déploiement en mode【Jar autonome】(solution majoritaire)<br>1) Téléchargez <code>cas.jar</code><br>2) Créez le dossier de configuration <code>./etc/cas/config</code> et le fichier de configuration <code>cas.properties</code><br>3) Commande de lancement (nécessite Java 17 ou supérieur)</li>
<!-- /wp:list-item --></ol>
<!-- /wp:list -->

<!-- wp:code -->
<pre class="wp-block-code"><code>java -jar cas.jar</code></pre>
<!-- /wp:code -->

<!-- wp:list {"ordered":true,"start":3} -->
<ol start="3" class="wp-block-list"><!-- wp:list-item -->
<li>Informations sur le port et le HTTPS<br>Port Tomcat intégré par défaut : <strong>8443 (HTTPS)</strong><br>Les nouvelles versions imposent le HTTPS par défaut, conformément aux spécifications des anciennes versions.</li>
<!-- /wp:list-item --></ol>
<!-- /wp:list -->

<!-- wp:heading {"level":5} -->
<h5 class="wp-block-heading">3. Adresse d’accès</h5>
<!-- /wp:heading -->

<!-- wp:code -->
<pre class="wp-block-code"><code>https:&#47;&#47;127.0.0.1:8443/cas</code></pre>
<!-- /wp:code -->

<!-- wp:paragraph -->
<p>Installation</p>
<!-- /wp:paragraph -->]]></content:encoded>
					
					<wfw:commentRss>https://www.foxdevelop.com/fr/2026/08/06/installation-2/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Présentation</title>
		<link>https://www.foxdevelop.com/fr/2026/08/06/presentation/</link>
					<comments>https://www.foxdevelop.com/fr/2026/08/06/presentation/#respond</comments>
		
		<dc:creator><![CDATA[jack]]></dc:creator>
		<pubDate>Thu, 06 Aug 2026 07:36:45 +0000</pubDate>
				<category><![CDATA[Tutoriel CAS]]></category>
		<guid isPermaLink="false">https://www.foxdevelop.com/?p=7794</guid>

					<description><![CDATA[Concepts 1. CAS CAS (Central Authentication Service, Service d’authentification centrale)Cadre open‑source de SSO Web (Single Sign‑On, authentification unique) initié par l’université Yale. 2. SSO (Authentification unique) 3. Trois acteurs du ...]]></description>
										<content:encoded><![CDATA[
<h3 class="wp-block-heading">Concepts</h3>



<h4 class="wp-block-heading">1. CAS</h4>



<p class="wp-block-paragraph"><strong>CAS (Central Authentication Service, Service d’authentification centrale)</strong><br>Cadre open‑source de <strong>SSO Web (Single Sign‑On, authentification unique)</strong> initié par l’université Yale.</p>



<h4 class="wp-block-heading">2. SSO (Authentification unique)</h4>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Centraliser la vérification de l’identité des utilisateurs de plusieurs applications web sur une seule adresse.</p>



<ul class="wp-block-list">
<li>Caractéristiques : les applications communiquent via les protocoles web (HTTPS) avec une <strong>entrée de connexion unique globale</strong></li>



<li>Explication simple : connectez‑vous une seule fois au centre d’authentification dans le même navigateur, tous les sites de confiance deviennent accessibles sans nouvelle connexion</li>
</ul>
</blockquote>



<h4 class="wp-block-heading">3. Trois acteurs du système SSO</h4>



<ol class="wp-block-list">
<li>User : utilisateur final (navigateur web)</li>



<li>Applications web (plusieurs systèmes métiers)</li>



<li>Centre d’authentification SSO (unique)</li>
</ol>



<h4 class="wp-block-heading">4. Trois principes fondamentaux du SSO</h4>



<ol class="wp-block-list">
<li>Toutes les opérations de connexion de compte s’exécutent <strong>au niveau du centre d’authentification SSO</strong> ;</li>



<li>Le centre d’authentification fournit un mécanisme pour informer chaque application web si l’utilisateur courant est authentifié ;</li>



<li>Une relation de confiance préétablie existe entre le centre d’authentification et l’ensemble des applications web métier.</li>
</ol>



<h5 class="wp-block-heading">Deux composants clés</h5>



<h4 class="wp-block-heading">CAS Server (Serveur d’authentification)</h4>



<ul class="wp-block-list">
<li>Application web déployée indépendamment, constituant le <strong>seul centre d’authentification</strong></li>



<li>Missions : recevoir identifiant et mot de passe, valider l’identité utilisateur ; émettre des tickets (Ticket), gérer le cookie de session global TGC</li>
</ul>



<h4 class="wp-block-heading">CAS Client (Client intégré dans chaque système métier)</h4>



<ul class="wp-block-list">
<li>Installé dans chaque application web métier, généralement mis en œuvre sous forme de filtre Filter</li>



<li>Missions : intercepter les requêtes vers des ressources protégées ; rediriger automatiquement le navigateur vers la page de connexion CAS Server quand l’utilisateur n’est pas connecté</li>
</ul>



<h4 class="wp-block-heading">Fonctionnement</h4>



<ol class="wp-block-list">
<li><strong>L’utilisateur accède à une ressource du système métier</strong> → CAS Client intercepte la requête et détecte l’absence du <code>Service Ticket</code></li>



<li>Le Client <strong>redirige</strong> le navigateur vers l’adresse de connexion CAS Server en transmettant l’adresse du système métier (Service)</li>



<li>L’utilisateur saisit identifiant et mot de passe sur CAS Server pour valider sa connexion
<ul class="wp-block-list">
<li>Connexion réussie : CAS Server dépose dans le navigateur le <strong>TGC (Ticket Granting Cookie), cookie de session global</strong></li>



<li>Génération du ticket à usage unique : <strong>Service Ticket (ST)</strong></li>
</ul>
</li>



<li>CAS Server redirige à nouveau le navigateur vers l’adresse du système métier, avec le paramètre URL <code>Ticket=xxx</code></li>



<li><strong>Le CAS Client du système métier réalise un appel serveur‑à‑serveur en arrière‑plan</strong> avec l’adresse Service et le Ticket, pour vérifier la validité du ticket auprès de CAS Server</li>



<li>CAS Server confirme la validité du ticket et renvoie les informations d’identité utilisateur (nom d’utilisateur, etc.)</li>



<li>La validation aboutit, le système métier crée une session locale et l’utilisateur consulte les pages normalement</li>
</ol>



<p class="wp-block-paragraph"> <strong>Rôle du TGC</strong> : tant que le navigateur conserve le cookie TGC, l’accès aux autres systèmes compatibles CAS ne déclenche pas de page de connexion, l’authentification unique se fait automatiquement.</p>



<p class="wp-block-paragraph">Présentation</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.foxdevelop.com/fr/2026/08/06/presentation/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
