1
|
Arborescence de /var/lib/larpe
|
2
|
------------------------------
|
3
|
|
4
|
/var/lib/larpe/sp/nom_serveur_proxy/repertoire_du_proxy/metadata.xml
|
5
|
private_key.pem
|
6
|
idp (contient le nom du serveur idp)
|
7
|
idp/nom_serveur/metadata.xml
|
8
|
public_key.pem
|
9
|
|
10
|
Scénario de SSO + fédération
|
11
|
-----------------------------
|
12
|
|
13
|
- L'utilisateur veut accéder à l'espace privé
|
14
|
- On intercepte l'adresse d'authentification et on redirige vers la page de login liberty
|
15
|
- L'utilisateur tape son identifiant/mdp de l'idp
|
16
|
- On récupère la page d'authentification locale et on la présente a l'utilisateur pour fédération
|
17
|
- Il tape son identifiant/mdp locaux
|
18
|
- On enregistre temporairement l'identifiant
|
19
|
- On regarde si l'authentification a réussi (cookie ? url ou le site renvoie ?)
|
20
|
- Si oui, on fédère les comptes
|
21
|
|
22
|
Variante :
|
23
|
|
24
|
- Interception de l'url d'authentification du site
|
25
|
- Redirection vers l'url /login sur le relais inverse
|
26
|
- Sur l'url /login
|
27
|
- Si deja authentifié (on a un cookie de session) : c'est bon, on redirige vers l'accueil du site (ou autre)
|
28
|
- Sinon : faire un SSO
|
29
|
- Rediriger vers l'idp
|
30
|
- L'utilisateur s'authentifie
|
31
|
- L'idp redirige vers le relais inverse
|
32
|
- Si comptes non fédérés :
|
33
|
- On affiche une page de d'auth locale
|
34
|
- On authentifie l'utilisateur sur le relais inverse
|
35
|
- On envoie la demande d'authentification au site
|
36
|
- On recoit un cookie de session
|
37
|
- On redirige vers l'accueil du site (ou autre)
|
38
|
|
39
|
Gestion des cookies
|
40
|
-------------------
|
41
|
|
42
|
- On associe à un name_identifier les cookies courants
|
43
|
- Lors de la défédération, on lie les cookies de l'utilisateur défédéré, et on crée ajoute dans le fichier "cookies_to_delete" une ligne :
|
44
|
cookie=valeur
|
45
|
- Dans le filtre python d'apache, on lit ce fichier et pour chaque ligne, on recherche cette chaine dans l'entete "Cookie"
|
46
|
- Si on la trouve, on ajoute aux entetes en sortie " Set-Cookie: cookie="deleted" " et on supprime cette ligne du fichier
|