documentations

This commit is contained in:
Thomas NOËL 2011-03-28 16:56:07 +02:00
parent 4ea674a082
commit da6cf63865
7 changed files with 248 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

248
doc/formation/slides.tex Normal file
View File

@ -0,0 +1,248 @@
% Copyright 2010 by Entr'ouvert www.entrouvert.com
%
% This file may be distributed and/or modified
% under the GNU Public License v2
\documentclass{beamer}
% appearance:
\usetheme{Warsaw}
\usefonttheme[onlylarge]{structurebold}
\setbeamerfont*{frametitle}{size=\normalsize,series=\bfseries}
% packages
\usepackage{url}
% i18n/l10n
\usepackage[french]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
% Author, Title, etc.
\title[Prise en main d'UnivNautes]
{%
Le portail captif UnivNautes \\
Prise en main%
}
\author[Entr'ouvert]{Entr'ouvert --- Thomas~Noël}
\institute{}
\date{Formation UnivNautes --- 30 mars 2010}
\begin{document}
\begin{frame}
\titlepage
\end{frame}
\begin{frame}{Table des matières}
\tableofcontents
\end{frame}
\section{Introduction}
\begin{frame}{Introduction}
\begin{block}{}
\textbf{UnivNautes} est une solution technologique de qualité répondant aux
besoins du service \textbf{eduspot}. C'est une initiative de l'UNPIdF
\url{http://www.unpidf.fr/}.
\end{block}
\begin{itemize}
\item plateforme aisément déployable par n'importe quel établissement
\item adaptable pour intégration dans les architectures et systèmes existants
\item interfaces d'utilisation et de configuration standards, compatibles
avec l'ambition nationale d'eduspot
\item compatible avec les navigateurs du marché (HTML et CSS standards,
cookies, javascript basique)
\item logiciels en licences libres
\end{itemize}
\end{frame}
\section{Principes}
\subsection{Principes généraux d'un portail captif}
\begin{frame}{Principe d'un portail captif}
\begin{center}
\includegraphics{portail-captif.png}
\end{center}
{\small
\begin{itemize}
\item[1] -- première requête HTTP interceptée~; redirection vers une page
de connexion
\item[2] -- authentification de l'utilisateur
\item[3] -- si l'authentification est réussie, le portail captif accepte
les flux du couple adresse IP / adresse MAC
\end{itemize}
} % small
\end{frame}
\subsection{Principes spécifiques dans UnivNautes}
\begin{frame}{Principes dans UnivNautes}
\begin{block}{Page de connexion en HTTPS}
{\small
\begin{itemize}
\item[1] On capte les flux HTTP (port 80).
\item[2] On renvoie une redirection vers le serveur HTTPS local. On indique
au passage l'URL demandée initialement dans un paramètre
\texttt{next\_url}. L'URL de redirection est donc de la forme :
\url{https://spot.univ.fr/login?next\_url=http://www.abc.fr/}
\item[3] Le serveur HTTPS local renvoie la page de connexion demandée.
\end{itemize}
} % small
\end{block}
\begin{block}{Certificat HTTPS du portail captif}
Pour éviter toute alerte sur le poste client, ce serveur HTTPS doit
disposer d'un certificat valide.
\end{block}
\end{frame}
\begin{frame}{Principes dans UnivNautes}
\begin{block}{L'authentification se fait en «SAML»}
{\small
\begin{itemize}
\item[1] La page de connexion est une liste de fournisseurs d'identité
(\textit{IdP}). L'utilisateur clique sur son fournisseur.
\item[2] Une page intermédiaire est présentée, uniquement présente pour
effectuer un envoi POST des données à l'IdP choisi. L'envoi est automatique
; l'utilisateur est donc redirigé vers son IdP.
\item[3] Au retour de l'IdP, l'utilisateur arrive sur une page de
connexion qui présente quelques attributs reçus (\textit{display name}) et
quelques paramètres de sa session (date de début, IP, adresse MAC).
\end{itemize}
}
\end{block}
\end{frame}
\begin{frame}{Principes dans UnivNautes}
\begin{block}{Métadonnées}
La liste des fournisseurs à afficher est fournie par la fédération choisie,
au travers d'un fichier présentant l'ensemble des métadonnées des IdP
(principalement : entityId, URL et clé publique). Pour eduspot, il s'agit
de la fédération Éducation-Recherche : \url{https://federation.renater.fr/}
\end{block}
\begin{block}{Whitelist}
Par ailleurs, le portail doit laisser les utilisateurs accéder à tous les
fournisseurs listés. Il existe pour cela une \textit{whitelist} d'adresses
IP cibles : \url{http://www.cru.fr/services/eduspot/whitelist}
\end{block}
\end{frame}
\section{Implémentation}
\begin{frame}{Implémentation}
\begin{block}{pfSense 2.0}
\begin{itemize}
\item Basé sur FreeBSD 8.1
\item Centralise la configuration des différents composants liés à la
gestion d'un pare-feu et des services de base réseau, y compris portail
captif
\item Interface de gestion web
\item Ensemble des paramètres de configuration stocké au sein d'un fichier
au format XML (\texttt{config.xml})
\end{itemize}
\end{block}
\begin{block}{Services disponibles dans pfSense 2.0 (RC1)}
filtrage et suivi IP et MAC (pf/ipfw), DHCP, DNS (forwarder), HTTP/HTTPS
(lighttpd + fcgi), SNMP, syslog, NTP, VPNs, CARP, ... et bcp d'autres
paquets, dont ceux de FreeBSD 8.1.
\end{block}
\end{frame}
\begin{frame}{Implémentation}
\begin{block}{Authentic / authsaml2}
\begin{itemize}
\item \textbf{Authentic2} : serveur d'identité versatile, en Django. Propose des
modules permettant de gérer les entités, dans notre cas les IdP de la
fédération
\item \textbf{authsaml2} : middleware d'authentification SAML pour Django.
Utilise les informations indiquées dans Authentic2 pour savoir quels IdPs
contacter puis accepter
\end{itemize}
\end{block}
\begin{block}{LASSO}
bibliothèque C certifiée conforme ID-FF, ID-WSF et SAML\\
Utilisée par Authentic2/authsaml2 lors des dialogues SAML
\end{block}
\end{frame}
\begin{frame}{Implémentation}
\begin{block}{pffedportal : la glue Django}
\begin{itemize}
\item il affichage des IdP sur la page de connexion
\item il effectue l'authentification SAML via \textit{authsaml2}
\item il lance la commandes pour ouvrir le portail captif
(\texttt{cp\_allow}) (et \texttt{cp\_disconnect} lors
d'une demande de déconnexion)
\item il gère une session pour retenir les paramètres de connexion (date,
displayname, IP, MAC, URL demandée)
\item il affiche les paramètres de connexion sur la page d'accueil et/ou
effectue les redirections consécutives
\end{itemize}
\end{block}
\begin{block}{}
Le design du portail captif est donc un ensemble de templates Django pour
pffedportal + CSS, images et codes javascript.
\end{block}
\end{frame}
\section{Pour en savoir plus}
\begin{frame}{Pour en savoir plus}
\begin{block}{Briques logicielles}
\url{http://pfsense.org} \\
\url{http://dev.entrouvert.org/projects/authentic} \\
\url{http://lasso.entrouvert.org/} \\
\url{http://dev.entrouvert.org/projects/univnautes}
\end{block}
\begin{block}{Autres lectures}
\url{http://www.cru.fr/services/eduspot/index} \\
\url{https://federation.renater.fr/} \\
\url{http://en.wikipedia.org/wiki/SAML} \\
\url{http://wiki.entrouvert.org/Univnautes}
\end{block}
\end{frame}
\section{Travaux pratiques}
\subsection{Installation}
\begin{frame}{}
\begin{block}{}
\end{block}
\end{frame}
\subsection{Configuration}
\begin{frame}{}
\begin{block}{}
\end{block}
\end{frame}
\subsection{Utilisation}
\begin{frame}{}
\begin{block}{}
\end{block}
\end{frame}
%% parcours de la liste VABF
\end{document}

BIN
doc/img/eduspot_crash.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

BIN
doc/img/login.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

BIN
doc/img/onglets.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

BIN
doc/img/services_cp.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

BIN
doc/img/widget.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB