This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
docpublic:systemes:shibboleth:idpv2 [2010/01/03 11:25] 127.0.0.1 external edit |
docpublic:systemes:shibboleth:idpv2 [2010/05/11 20:20] (current) PROCACCIA |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | -- Main.JehanProcaccia - 20 Mar 2008 | + | ====== IdP-ShibV2 ====== |
- | + | ===== Références | |
- | ===== Références | + | |
http:// | http:// | ||
Line 8: | Line 7: | ||
https:// | https:// | ||
- | mail: | + | mail d' |
< | < | ||
Date - Thu Mar 20 07:40:01 2008 | Date - Thu Mar 20 07:40:01 2008 | ||
Line 17: | Line 16: | ||
</ | </ | ||
- | ===== Pre-requis | + | ===== Pre-requis |
+ | |||
+ | Logiciels nécessaires | ||
+ | |||
+ | |||
+ | ==== Java ==== | ||
- | ==== Java | + | un JDK , sun de préférence: |
< | < | ||
Line 32: | Line 36: | ||
* </ | * </ | ||
- | === Environement java | + | === Environement java === |
Sous CEntos/ | Sous CEntos/ | ||
Line 46: | Line 50: | ||
</ | </ | ||
- | ==== Tomcat | + | ==== Tomcat |
+ | |||
+ | un serveur d' | ||
< | < | ||
Line 80: | Line 86: | ||
</ | </ | ||
- | ===== IDP v2.0 | + | ===== IDP v2.0 ===== |
- | ==== Download | + | ==== Download |
< | < | ||
Line 104: | Line 110: | ||
</ | </ | ||
- | ==== Preparation JVM | + | ==== Preparation JVM ==== |
from https:// | from https:// | ||
- | === librairie jar | + | === librairie jar === |
< | < | ||
Line 118: | Line 124: | ||
</ | </ | ||
- | === Security provider | + | === Security provider |
< | < | ||
Line 139: | Line 145: | ||
</ | </ | ||
- | ==== Preparation Tomcat | + | ==== Preparation Tomcat |
- | === Endorse Xerces and Xalan | + | === Endorse Xerces and Xalan === |
https:// | https:// | ||
Line 167: | Line 173: | ||
</ | </ | ||
- | === Memory usage | + | === Memory usage === |
+ | |||
< | < | ||
[root@shibidp1 / | [root@shibidp1 / | ||
Line 175: | Line 181: | ||
</ | </ | ||
- | === hostname server.xml | + | === hostname server.xml |
remplacement du defaut *localhost* pa le hostname . | remplacement du defaut *localhost* pa le hostname . | ||
Line 188: | Line 194: | ||
mais probleme, car du coup les webapps déclarées dans */ | mais probleme, car du coup les webapps déclarées dans */ | ||
- | === Connecteur | + | === Connecteur |
< | < | ||
Line 212: | Line 218: | ||
</ | </ | ||
- | === Context Deployment Fragment | + | === Context Deployment Fragment |
Il s'agit d'un petit code xml qui indique a tomcat où se trouvre le WAR et fournis des proprietés de chargement de l' | Il s'agit d'un petit code xml qui indique a tomcat où se trouvre le WAR et fournis des proprietés de chargement de l' | ||
Line 230: | Line 236: | ||
</ | </ | ||
- | ==== Connecteur AJP apache - tomcat | + | ==== Connecteur AJP apache - tomcat |
Afin de ne pas trainer les URL vers tomcat avec les :8080 ou :8433 , on met en place le proxy-ajp d' | Afin de ne pas trainer les URL vers tomcat avec les :8080 ou :8433 , on met en place le proxy-ajp d' | ||
Line 240: | Line 246: | ||
</ | </ | ||
- | ==== Installation | + | ==== Installation |
Lancement du *install.sh* , le JAVA_HOME etant definit au préalable !. | Lancement du *install.sh* , le JAVA_HOME etant definit au préalable !. | ||
Line 294: | Line 300: | ||
idp.hostname=shibidp1.it-sudparis.eu</ | idp.hostname=shibidp1.it-sudparis.eu</ | ||
- | ==== Lancement | + | ==== Lancement |
lors du premier lancement de tomcat une fois l'IDP deployé les log tomcat indiques: | lors du premier lancement de tomcat une fois l'IDP deployé les log tomcat indiques: | ||
Line 317: | Line 323: | ||
- | === Log shibboleth | + | === Log shibboleth |
Pendant la pahese d' | Pendant la pahese d' | ||
Line 336: | Line 342: | ||
- | ===== Parametrage de l'IDP | + | ===== Parametrage de l' |
Les fhichiers de configuration XML se trouvent dans */ | Les fhichiers de configuration XML se trouvent dans */ | ||
- | ==== relying-party.xml | + | ==== relying-party.xml |
Le fichier de configuration principal (avant (1.3) s' | Le fichier de configuration principal (avant (1.3) s' | ||
Line 367: | Line 373: | ||
- | ==== Metadata pour Féderation Cru-Test | + | ==== Metadata pour Féderation Cru-Test |
Téléchargez le certificat utilisé pour signer les méta-données du CRU : | Téléchargez le certificat utilisé pour signer les méta-données du CRU : | ||
Line 429: | Line 435: | ||
http:// | http:// | ||
- | ==== Metada fédération Renater | + | ==== Metada fédération Renater |
https:// | https:// | ||
Line 484: | Line 490: | ||
</ | </ | ||
- | === Metadata JASIG | + | === Metadata JASIG === |
Exemple precedent depuis la doc jasig ... pour l' | Exemple precedent depuis la doc jasig ... pour l' | ||
Line 505: | Line 511: | ||
- | ==== Enregistrement fédération test Renater | + | ==== Enregistrement fédération test Renater |
https:// | https:// | ||
https:// | https:// | ||
- | ===== Authentification Utilisateur via CAS | + | ===== Authentification Utilisateur via CAS ===== |
- | ==== Installation du client CAS | + | ==== Installation du client CAS ==== |
- | === Maven | + | === Maven === |
L' | L' | ||
Line 557: | Line 563: | ||
- | === Client CAS | + | === Client CAS === |
Nous pouvons maintenant télécharger les sources du client CAS et le compiler: | Nous pouvons maintenant télécharger les sources du client CAS et le compiler: | ||
Line 648: | Line 654: | ||
</ | </ | ||
- | === Filtre CAS | + | === Filtre CAS === |
ajouter l' | ajouter l' | ||
Line 687: | Line 693: | ||
</ | </ | ||
- | === erreur " | + | === erreur " |
Il se peut qu' | Il se peut qu' | ||
Line 701: | Line 707: | ||
maxValidityInterval=" | maxValidityInterval=" | ||
- | ===== Distribution d' | + | ===== Distribution d' |
- | === Configuration de l' | + | === Configuration de l' |
Connecteur ldap | Connecteur ldap | ||
Line 743: | Line 749: | ||
- | === Filtrage des attributs transmis | + | === Filtrage des attributs transmis |
Attribut que l'on souhaites distribuer aux Services Provider shibboleth. | Attribut que l'on souhaites distribuer aux Services Provider shibboleth. | ||
Line 797: | Line 803: | ||
</ | </ | ||
- | === Test de l' | + | === Test de l' |
Le script *aacli.sh* permet de tester l' | Le script *aacli.sh* permet de tester l' | ||
Line 841: | Line 847: | ||
+ | === Construction d' | ||
+ | == Mapped == | ||
- | ===== Test de l'IDP | + | Si l'annuaire n'est pas encore compatible supann/ |
+ | Exemple | ||
- | ==== Enregistrement aupres d'une fédération | + | < |
+ | <!-- https:// | ||
+ | < | ||
+ | | ||
+ | | ||
+ | < | ||
+ | < | ||
+ | | ||
+ | < | ||
+ | | ||
+ | <!-- default to the generic value ' | ||
+ | < | ||
+ | <!-- map internal values like ' | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | |||
+ | == Expression reguliere == | ||
+ | |||
+ | construction d'un attribut sur la base d'une dn de branche ldap => split REgex : | ||
+ | |||
+ | < | ||
+ | <!-- https:// | ||
+ | < | ||
+ | id=" | ||
+ | sourceAttributeID=" | ||
+ | regex=" | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | name=" | ||
+ | < | ||
+ | name=" | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | ===== Test de l'IDP ===== | ||
+ | |||
+ | ==== Enregistrement aupres d'une fédération | ||
il faut un Service Provider pour tester notre fournisseur d' | il faut un Service Provider pour tester notre fournisseur d' | ||
Line 865: | Line 932: | ||
- | ==== Login sur un SP de test | + | ==== Login sur un SP de test ==== |
https:// | https:// | ||
Line 873: | Line 940: | ||
On obtient alors un acces authentifié ainsi qu'un " | On obtient alors un acces authentifié ainsi qu'un " | ||
- | === Résultat dans le navigateur | + | === Résultat dans le navigateur |
+ | |||
< | < | ||
-shib- | -shib- | ||
Line 941: | Line 1008: | ||
</ | </ | ||
- | === Log IDP | + | === Log IDP === |
< | < | ||
Line 984: | Line 1051: | ||
</ | </ | ||
- | ==== Configuration du RemoteUser | + | ==== Configuration du RemoteUser |
Il faut utiliser le " | Il faut utiliser le " | ||
Line 1013: | Line 1080: | ||
- | ==== Filtre d' | + | ==== Filtre d' |
on filtre dans le *web.xml* l' | on filtre dans le *web.xml* l' | ||
Line 1057: | Line 1124: | ||
</ | </ | ||
- | ===== Certification | + | ===== Certification |
Au premier abord on tombe sur des besoins de confiances (transfert securisés) entre SP et IDP . Sans aucune prise en compte des certificats/ | Au premier abord on tombe sur des besoins de confiances (transfert securisés) entre SP et IDP . Sans aucune prise en compte des certificats/ | ||
Line 1069: | Line 1136: | ||
</ | </ | ||
- | ==== Chaine de certification | + | ==== Chaine de certification |
On procede alors a la création d'un keystore qui comprend le certificat et la clé de notre serveur, ainsi que le chaine de certification (ici au format openssl pkcs12 afin de s' | On procede alors a la création d'un keystore qui comprend le certificat et la clé de notre serveur, ainsi que le chaine de certification (ici au format openssl pkcs12 afin de s' | ||
Line 1080: | Line 1147: | ||
</ | </ | ||
- | ==== tomcat sur 8443 | + | ==== tomcat sur 8443 ==== |
Il faut alors indiquer au serveur d' | Il faut alors indiquer au serveur d' | ||
Line 1102: | Line 1169: | ||
</ | </ | ||
- | ==== SunJVM truststore | + | ==== SunJVM truststore |
enfin il faut que le JVM qui tourne tomcat ait confiance en notre autorité qui a signée notre serveur, ici tmsp_ca à signé shibidp1.it-sudparis.eu (shibidp1_tmsp.pem !), on ajoute donc cette autorité a celles bien connus deja presentes dans le *cacerts* livré avec la JVM sun: | enfin il faut que le JVM qui tourne tomcat ait confiance en notre autorité qui a signée notre serveur, ici tmsp_ca à signé shibidp1.it-sudparis.eu (shibidp1_tmsp.pem !), on ajoute donc cette autorité a celles bien connus deja presentes dans le *cacerts* livré avec la JVM sun: | ||
Line 1119: | Line 1186: | ||
</ | </ | ||
- | ===== SSO shibboleth et AD | + | ===== SSO shibboleth et AD ==== |
pour un site ne disposant au préalable d'un SSO (CAS souvent !) , shibboleth offre un service interne de SSO. | pour un site ne disposant au préalable d'un SSO (CAS souvent !) , shibboleth offre un service interne de SSO. | ||
Line 1126: | Line 1193: | ||
Nous utiliserons alors le systeme SSO interne a shibboleth plutot que de s' | Nous utiliserons alors le systeme SSO interne a shibboleth plutot que de s' | ||
- | ==== doc de reference | + | ==== doc de reference |
https:// | https:// | ||
- | ==== LoginHandler UsernamePassword | + | ==== LoginHandler UsernamePassword |
il faut activer le LoginHandler UsernamePassword dans handler.xml et commenter le LoginHnadler RemoteUser, autrement c'est ce dernier qui prend la main . | il faut activer le LoginHandler UsernamePassword dans handler.xml et commenter le LoginHnadler RemoteUser, autrement c'est ce dernier qui prend la main . | ||
Line 1146: | Line 1213: | ||
</ | </ | ||
- | === JAAS configuration file | + | === JAAS configuration file === |
c'est ici qu'on definit le moyen d' | c'est ici qu'on definit le moyen d' | ||
Line 1169: | Line 1236: | ||
</ | </ | ||
- | ==== Attributes resolver | + | ==== Attributes resolver |
Il faut definir un resolver pour recuperer les attributs | Il faut definir un resolver pour recuperer les attributs | ||
- | === connecteur | + | === connecteur |
< | < | ||
Line 1191: | Line 1258: | ||
</ | </ | ||
- | === definition des attributs | + | === definition des attributs |
< | < | ||
Line 1220: | Line 1287: | ||
</ | </ | ||
- | === Filtres | + | === Filtres |
A partir des attributs resolus ci-dessus on peut definir des politiques de diffusion de ces derniers, par liste de Service Provider par exemple : | A partir des attributs resolus ci-dessus on peut definir des politiques de diffusion de ces derniers, par liste de Service Provider par exemple : | ||
Line 1358: | Line 1425: | ||
Shib_Authentication_Method=urn: | Shib_Authentication_Method=urn: | ||
</ | </ | ||
+ | |||
+ | création JehanProcaccia - 20 Mar 2008 | ||
+ | |||