faq-fr.html 29.2 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr">
<head>
  <meta name="generator" content=
  "HTML Tidy for Linux/x86 (vers 1 September 2005), see www.w3.org" />

  <title>FAQ LEMONLDAP::NG</title>
  <meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
</head>

<body>
  <div class="main-content">
    <h2 class="heading-1"><span id="HFoireauxquestionsLemonldap3A3ANG">Foire
    aux questions Lemonldap::NG</span></h2>

    <p class="paragraph"></p>

    <ul>
      <li>
        <a href="#HLemonldap3A3ANG">Lemonldap::NG</a>

        <ul>
          <li><a href="#HQu27estcequ27unWebSSO3F">Qu'est-ce qu'un Web-SSO
          ?</a></li>

          <li><a href=
          "#HQu27apporteLemonldap3A3ANGparrapportauxautresSSO3F">Qu'apporte
          Lemonldap::NG par rapport aux autres SSO ?</a></li>
        </ul>
      </li>

      <li>
        <a href="#HConfiguration">Configuration</a>

        <ul>
          <li><a href=
          "#HQuelsystC3A8medestockagedeconfigurationchoisir3F">Quel
          syst&egrave;me de stockage de configuration choisir ?</a></li>

          <li><a href=
          "#HL27exemplefournifonctionneenHTTP2CmaispasenHTTPS">L'exemple
          fourni fonctionne en HTTP, mais pas en HTTPS.</a></li>

47 48 49 50 51 52
          <li><a href="#HAquoisertleparamC3A8trehttpsduhandler3F">A quoi sert
          le param&egrave;tre https du handler ?</a></li>

          <li><a href="#HQu27estcequ27uneCGIautoprotC3A9gC3A9e3F">Qu'est ce
          qu'une CGI auto-prot&eacute;g&eacute;e ?</a></li>

53 54 55 56
          <li><a href=
          "#HCommentfairefonctionnerLemonldap3A3ANGavecunannuaireActiveDirectory3F">
          Comment faire fonctionner Lemonldap::NG avec un annuaire
          Active-Directory ?</a></li>
57 58 59 60

          <li><a href=
          "#HCommentutiliserLemonldap3A3ANGenreverseproxy3F">Comment utiliser
          Lemonldap::NG en reverse-proxy ?</a></li>
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
        </ul>
      </li>

      <li>
        <a href="#HFonctionnement">Fonctionnement</a>

        <ul>
          <li><a href="#HAquoisertlecachelocaldesagents28handlers293F">A quoi
          sert le cache local des agents (handlers) ?</a></li>

          <li><a href=
          "#HPourquoinepeutonpasconfigurerlecachelocaldesagents28handlers29danslaconsoled27administration3F">
          Pourquoi ne peut-on pas configurer le cache local des agents
          (handlers) dans la console d'administration ?</a></li>

          <li><a href=
          "#HQu27estcequele7E7ECrossDomainAuthentication7E7E28CDA293F">Qu'est
          ce que le <i class="italic">Cross Domain Authentication</i> (CDA)
          ?</a></li>

          <li><a href=
          "#HCommentfonctionnele7E7ECrossDomainAuthentication7E7E28CDA293F">Comment
          fonctionne le <i class="italic">Cross Domain Authentication</i>
          (CDA) ?</a></li>
        </ul>
      </li>

      <li>
        <a href="#HAuthentification">Authentification</a>

        <ul>
          <li><a href="#HPeutonchangerlemoded27authentification3F">Peut-on
          changer le mode d'authentification ?</a></li>
        </ul>
      </li>
96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155

      <li>
        <a href="#HMessagesd27erreuretdedC3A9boguage">Messages d'erreur et de
        d&eacute;boguage</a>

        <ul>
          <li><a href="#H22IncorrectXML22">"Incorrect XML"</a></li>

          <li><a href=
          "#H22Byteorderisnotcompatible22ou22Magicnumbercheckingonstorablestringfailed22">
          "Byte order is not compatible" ou "Magic number checking on storable
          string failed"</a></li>

          <li><a href=
          "#H22Configurationisinoldformat2Cyou27vetomigrate2122">"Configuration
          is in old format, you've to migrate !"</a></li>

          <li><a href="#H22My3A3APackage3Agetconfiguration122">"My::Package:
          get configuration 1"</a></li>

          <li><a href="#H22My3A3APackage3Astoreconfiguration122">"My::Package:
          store configuration 1"</a></li>

          <li><a href="#H22My3A3APackage3ANocookiefound22">"My::Package: No
          cookie found"</a></li>

          <li><a href=
          "#H22Redirect26lt3Bxxxx26gt3Btoportal28urlwas2F2922">"Redirect
          &lt;x.x.x.x&gt; to portal (url was /)"</a></li>

          <li><a href="#H22FoundaCDAidRedirecting22">"Found a CDA id.
          Redirecting"</a></li>

          <li><a href="#H22Usersomeonewasauthorizatedtoaccessto2F22">"User
          someone was authorizated to access to /"</a></li>

          <li><a href="#H22My3A3APackage3Aremovingcookie22">"My::Package:
          removing cookie"</a></li>

          <li><a href=
          "#H22ErrorwhilereadingconfigurationwithglobalStorageOptionskey3A22">"Error
          while reading configuration with globalStorageOptions key:"</a></li>

          <li><a href=
          "#H22UserrejectedbecauseVirtualHosttestexamplecomhasnoconfiguration22">
          "User rejected because VirtualHost test.example.com has no
          configuration"</a></li>

          <li><a href=
          "#H22Thecookiexxxxisn27tyetavailable3AObjectdoesnotexistinthedatastoreat2Fusr2Fshare2Fperl52FApache2FSession2FStore2FFilepmline905Cn22">
          "The cookie xxxx isn't yet available: Object does not exist in the
          data store at /usr/share/perl5/Apache/Session/Store/File.pm line
          90.n"</a></li>

          <li><a href=
          "#H22Thecookiexxxxisn27tyetavailable3A7E7E26lt3BerreurdumoduleApache3A3ASession26gt3B7E7E">
          "The cookie xxxx isn't yet available: <i class="italic">&lt;erreur
          du module Apache::Session&gt;</i></a></li>
        </ul>
      </li>
156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195
    </ul>

    <h3 class="heading-1-1"><span id=
    "HLemonldap3A3ANG">Lemonldap::NG</span></h3>

    <h4 class="heading-1-1-1"><span id="HQu27estcequ27unWebSSO3F">Qu'est-ce
    qu'un Web-SSO ?</span></h4>

    <p class="paragraph"></p>Un SSO <i class="italic">(Single Sign On)</i> est
    un dispositif qui permet de partager les authentifications entre plusieurs
    applications. L'utilisateur ne s'authentifie ainsi qu'une fois et n'est
    pas interrompu lorsqu'il change d'application. Kerberos (utilis&eacute;
    dans Active Directory) par exemple est un SSO. Le probl&egrave;me de ces
    syst&egrave;mes est qu'outre leur lourdeur, ils ne s'appliquent
    qu'&agrave; des Intranets sur des machines relativement homog&egrave;nes.

    <p class="paragraph"></p>Le Web-SSO est le portage de ce principe
    restreint aux applications Web. L'utilisateur est donc authentifi&eacute;
    au premier acc&egrave;s &agrave; une application web
    prot&eacute;g&eacute;e et les authentifications se propagent lorsqu'il
    change d'application. Le gros avantage est alors que le syst&egrave;me est
    utilisable sur Internet sans pr&eacute;-requis sur les postes clients (il
    suffit d'accepter les cookies de session). Par exemple, lorsqu'un
    utilisateur acc&egrave;de &agrave; une bo&icirc;te-aux-lettres Google, il
    n'est pas r&eacute;authentifi&eacute; s'il acc&egrave;de &agrave;
    l'application de gestion des groupes ou tout autre application Google.

    <p class="paragraph"></p>Lemonldap::NG est un des syst&egrave;mes
    permettant la gestion du Web-SSO.

    <h4 class="heading-1-1-1"><span id=
    "HQu27apporteLemonldap3A3ANGparrapportauxautresSSO3F">Qu'apporte
    Lemonldap::NG par rapport aux autres SSO ?</span></h4>

    <ul class="star">
      <li>Lemonldap comme lemonldap::NG sont des modules Apache Perl et
      offrent des performances qui rendent imperceptible le traitement de
      l'acc&egrave;s.</li>

      <li>Un des autres points forts de Lemonldap::NG est sa capacit&eacute;
196 197
      &agrave; g&eacute;rer les droits de fa&ccedil;on centralis&eacute;e :
      les SSO type Kerberos ou CAS permettent le partage des authentifications
198 199 200
      mais d&eacute;l&egrave;guent aux applications la gestion des
      autorisations d'acc&egrave;s. Dans le cas de Lemonldap::NG, la gestion
      des droits peut &ecirc;tre centralis&eacute;e totalement, en partie ou
201
      pas du tout pour chaque application : Lemonldap::NG fournit un
202
      syst&egrave;me d'autorisations bas&eacute; sur le tri des URL par
203
      expressions r&eacute;guli&egrave;res auxquelles on associe une
204 205 206 207 208 209 210 211
      r&egrave;gle. Il fournit &eacute;galement des en-t&ecirc;tes HTTP
      &agrave; l'application contenant n'importe quel attribut issue de
      l'annuaire LDAP. Celle-ci peut alors g&eacute;rer la
      tra&ccedil;abilit&eacute; des acc&egrave;s et &eacute;ventuellement des
      droits d'acc&egrave;s (voir la <span class="wikiexternallink"><a href=
      "http://wiki.lemonldap.objectweb.org/xwiki/bin/view/NG/Presentation#HMC3A9canismesd27authentification2Cd27autorisationetdetraC3A7abilitC3A9">
      documentation AAA</a></span>).</li>

212 213 214
      <li>Lemonldap::NG n'impose aucune modification de l'annuaire : les
      droits sont calcul&eacute;s &agrave; partir de n'importe quel
      attribut.</li>
215 216 217 218 219 220 221

      <li>Lemonldap::NG peut publier n'importe quel attribut LDAP ou des
      expressions calcul&eacute;es &agrave; partir de ces attributs dans les
      en-t&ecirc;tes HTTP. On peut ainsi &eacute;viter aux applications
      d'avoir &agrave; consulter l'annuaire LDAP.</li>

      <li>Lemonldap::NG traite tous les sites h&eacute;berg&eacute;s (virtuels
222
      ou r&eacute;els) ind&eacute;pendamment : on peut ainsi fournir &agrave;
223 224 225 226 227 228 229 230
      chaque application des en-t&ecirc;tes personnalis&eacute;s.</li>

      <li>Lemonldap::NG fournit une interface web d'administration
      pr&eacute;sentant simplement la configuration, les droits d'acc&egrave;s
      et les en-t&ecirc;tes par site prot&eacute;g&eacute; (voir la
      d&eacute;monstration&gt;<span class="nobr"><a href=
      "http://lemonldap.objectweb.org/NG/ManagerDemo/fr/">http://lemonldap.objectweb.org/NG/ManagerDemo/fr/</a></span>).
      On peut &eacute;galement ne montrer qu'une partie de la configuration en
231
      lecture seule et une autre en lecture &eacute;criture : l'interface
232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302
      d'administration peut ainsi &ecirc;tre partiellement
      d&eacute;l&eacute;gu&eacute;e par site prot&eacute;g&eacute;.</li>
    </ul>

    <h3 class="heading-1-1"><span id=
    "HConfiguration">Configuration</span></h3>

    <h4 class="heading-1-1-1"><span id=
    "HQuelsystC3A8medestockagedeconfigurationchoisir3F">Quel syst&egrave;me de
    stockage de configuration choisir ?</span></h4>

    <p class="paragraph"></p>Lemonldap::NG fournit 3 types de stockage de
    configuration:

    <ul class="star">
      <li><strong class="strong">File</strong>: le syst&egrave;me le plus
      simple, il ne permet en revanche de partager la configuration que parmi
      les serveurs qui partagent un syst&egrave;me de fichier. On peut ainsi
      l'utiliser dans le cas o&ugrave; tous les VirtualHosts &agrave;
      prot&eacute;ger se trouvent sur le m&ecirc;me serveur,</li>

      <li><strong class="strong">DBI</strong>: <span class=
      "wikiexternallink"><a href=
      "http://www.linuxmanpages.com/man3/DBI.3pm.php">DBI(3)</a></span> est
      une couche d'abstraction de l'acc&egrave;s aux bases de donn&eacute;es
      fournie par Perl. Utilis&eacute;e dans Lemonldap::NG, elle permet de
      partager la configuration entre serveurs mais suppose que tous ces
      serveurs acc&egrave;dent &agrave; la m&ecirc;me base de donn&eacute;e.
      C'est une solution recommand&eacute;e pour partager la configuration sur
      un r&eacute;seau de serveurs,</li>

      <li><strong class="strong">SOAP</strong>: Ce syst&egrave;me n'est pas
      &agrave; proprement parler un syst&egrave;me de stockage, mais permet
      &agrave; un serveur distant d'acc&eacute;der &agrave; la configuration
      par une simple connexion HTTP(S). Le serveur SOAP acc&egrave;de lui
      &agrave; la configuration par un des syst&egrave;mes
      pr&eacute;c&eacute;dents (File ou DBI).</li>
    </ul>

    <h4 class="heading-1-1-1"><span id=
    "HL27exemplefournifonctionneenHTTP2CmaispasenHTTPS">L'exemple fourni
    fonctionne en HTTP, mais pas en HTTPS.</span></h4>

    <p class="paragraph"></p>Dans le m&eacute;canisme des redirections vers le
    portail puis vers le site prot&eacute;g&eacute;, il faut indiquer &agrave;
    l'agent (handler) s'il est de type HTTPS ou non. Ceci est fait par le
    param&egrave;tre <tt>https</tt> qui doit &ecirc;tre mis &agrave; 1. Ce
    param&egrave;tre n'est pas accessible dans la configuration (manager), car
    il est sp&eacute;cifique aux h&ocirc;tes virtuels. C'est donc lors de
    l'appel &agrave; la fonction <tt>init</tt> (dans le fichier My::Package)
    qu'il doit &ecirc;tre renseign&eacute;:

    <p class="paragraph"></p>
    <pre>
__PACKAGE__-&gt;init ( {
    localStorage        =&gt; "Cache::FileCache",
    localStorageOptions =&gt; {
              'namespace'          =&gt; 'MyNamespace',
              'default_expires_in' =&gt; 600,
              'directory_umask'    =&gt; '007',
              'cache_root'         =&gt; '/tmp',
              'cache_depth'        =&gt; 5,
    },
    configStorage       =&gt; {
              type                 =&gt; 'File',
              dirName              =&gt; '/var/lib/lemonldap-ng/conf',
    },
    <strong class="strong">https               =&gt; 1</strong>,
} );
</pre>

303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350
    <h4 class="heading-1-1-1"><span id=
    "HAquoisertleparamC3A8trehttpsduhandler3F">A quoi sert le param&egrave;tre
    https du handler ?</span></h4>

    <p class="paragraph"></p>Ce param&egrave;tre n'est utilis&eacute; que dans
    les redirections vers le portail d'authentification. Il sert juste
    &agrave; indiquer &agrave; ce dernier qu'apr&egrave;s authentification,
    l'utilisateur doit &ecirc;tre redirig&eacute; vers l'application en https
    et non en http.

    <h4 class="heading-1-1-1"><span id=
    "HQu27estcequ27uneCGIautoprotC3A9gC3A9e3F">Qu'est ce qu'une CGI
    auto-prot&eacute;g&eacute;e ?</span></h4>

    <p class="paragraph"></p>Lorsqu'on a qu'une seule page Perl &agrave;
    prot&eacute;ger dans un VirtualHost, plut&ocirc;t que de la
    prot&eacute;ger en utilisant un agent Lemonldap::NG dans Apache, on peut
    utiliser une CGI auto-prot&eacute;g&eacute;e:

    <p class="paragraph"></p>
    <pre>
  use Lemonldap::NG::Handler::CGI;
  my $cgi = Lemonldap::NG::Handler::CGI-&gt;new ( {
      # m&ecirc;mes param&egrave;tres qu'un agent Lemonldap::NG::Handler::SharedConf
    }
  );
  $cgi-&gt;authenticate;
</pre>

    <p class="paragraph"></p>Dans l'exemple ci-dessus, $cgi est un objet de
    type CGI(3). La seule diff&eacute;rence est qu'il b&eacute;n&eacute;ficie
    de quelques fonctions suppl&eacute;mentaires:

    <ul class="star">
      <li>authenticate : pour appeler le m&eacute;canisme d'authentification
      Lemonldap::NG,</li>

      <li>autorize : si on veut g&eacute;rer les droits avec le manager,</li>

      <li>user : retourne la table de hash des param&egrave;tres
      utilisateurs,</li>

      <li>group : permet de valider l'appartenance &agrave; un groupe.</li>
    </ul>Ce type de CGI est tr&egrave;s utile lorsque les droits ne peuvent
    &ecirc;tre distingu&eacute;s par URL (requ&ecirc;tes POST par exemple). La
    page de manuel Lemonldap::NG::Handler::CGI(3) d&eacute;taille son
    utilisation.

351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369
    <h4 class="heading-1-1-1"><span id=
    "HCommentfairefonctionnerLemonldap3A3ANGavecunannuaireActiveDirectory3F">Comment
    faire fonctionner Lemonldap::NG avec un annuaire Active-Directory
    ?</span></h4>

    <p class="paragraph"></p>Active-Directory utilise le champ <tt>cn</tt>
    comme identifiant unique au lieu de <tt>uid</tt>. Il faut donc modifier la
    configuration de Lemonldap::NG en deux points&nbsp;:

    <ol>
      <li>la recherche de l'utilisateur dans l'annuaire doit &ecirc;tre
      effectu&eacute;e avec le champ <tt>cn</tt> (ou
      <tt>samAccountName</tt>),</li>

      <li>les journaux d'Apache doivent &ecirc;tre enrichis avec ce m&ecirc;me
      champ.</li>
    </ol>Pour le deuxi&egrave;me point, la modification est tr&egrave;s simple
    : il faut remplacer <tt>$uid</tt> par <tt>$cn</tt> dans le champ
    "Param&egrave;tres g&eacute;n&eacute;raux -&gt; Donn&eacute;e &agrave;
370 371 372
    inscrire dans les journaux d'Apache" (et v&eacute;rifier que cette
    variable est d&eacute;clar&eacute;e dand les attributs &agrave; exporter).
    Le changement de filtre de recherche n&eacute;cessite la surcharge d'une
373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392
    m&eacute;thode dans le portail. Cette modification peut &ecirc;tre
    effectu&eacute;e comme suit:
    <pre>
#!/usr/bin/perl
use Lemonldap::NG::Portal::SharedConf;
my $portal = Lemonldap::NG::Portal::SharedConf-&gt;new(
    {
        configStorage =&gt; {
            type    =&gt; 'File',
            dirName =&gt; '/var/lib/lemonldap-ng/conf',
        },
        <strong class="strong">formateFilter =&gt; sub {</strong>
            my $self = shift;
            $self-&gt;{filter} = "(&amp;(cn=" . $self-&gt;{user} . ")(objectClass=person))";
            PE_OK;
        } # fin de la surcharge
    }
);
</pre>

393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414
    <h4 class="heading-1-1-1"><span id=
    "HCommentutiliserLemonldap3A3ANGenreverseproxy3F">Comment utiliser
    Lemonldap::NG en reverse-proxy ?</span></h4>

    <p class="paragraph"></p>Lemonldap::NG prot&egrave;ge simplement les
    VirtualHosts d'Apache. Pour fonctionner en reverse-proxy, il suffit donc
    de configurer Apache en reverse-proxy:

    <p class="paragraph"></p>
    <pre>
# httpd.conf
&lt;VirtualHost *&gt;
  ServerName monappli
  PerlRequire MyFile
  PerlHeaderParserHandler My::Package
  ProxyPass / <span class="nobr"><a href=
"http://serveur-reel/">http://serveur-reel/</a></span>
  ProxyPassReverse / <span class="nobr"><a href=
"http://serveur-reel/">http://serveur-reel/</a></span>
  # on peut aussi utiliser mod_rewrite
  # RewriteEngine On
  # RewriteRule /(.*)$ <span class="nobr"><a href=
415
"http://serveur-reel/$1">http://serveur-reel/$1</a></span> [P]
416 417 418 419 420 421 422
&lt;/VirtualHost&gt;
</pre>

    <p class="paragraph"></p>Si toutefois vous pr&eacute;f&eacute;rez utiliser
    un proxy Perl, Lemonldap::NG en fournit un
    (Lemonldap::NG::Handler::Proxy(3)).

423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528
    <h3 class="heading-1-1"><span id=
    "HFonctionnement">Fonctionnement</span></h3>

    <h4 class="heading-1-1-1"><span id=
    "HAquoisertlecachelocaldesagents28handlers293F">A quoi sert le cache local
    des agents (handlers) ?</span></h4>

    <p class="paragraph"></p>Le cache local des agents a deux fonctions:

    <ul class="star">
      <li>partager la configuration entre processus Apache: on &eacute;vite
      ainsi un t&eacute;l&eacute;chargement de la configuration &agrave;
      chaque cr&eacute;ation d'un processus. C'est &eacute;galement
      indispensable pour utiliser le m&eacute;canisme de rechargement de la
      configuration sans relance du serveur Apache,</li>

      <li>partager les sessions en cours entre processus et threads Apache:
      ceci permet d'&eacute;viter d'avoir &agrave; effectuer une requ&ecirc;te
      au magasin central des sessions &agrave; chaque requ&ecirc;te (on ne
      retombe en effet pas n&eacute;cessairement sur le m&ecirc;me processus).
      Dans le cas o&ugrave; le cache central des sessions est accessible par
      le r&eacute;seau, on transforme ainsi une requ&ecirc;te TCP en une
      requ&ecirc;te au syst&egrave;me de ficher voir simplement &agrave; la
      m&eacute;moire partag&eacute;e ce qui augmente fortement les
      performances.</li>
    </ul>

    <h4 class="heading-1-1-1"><span id=
    "HPourquoinepeutonpasconfigurerlecachelocaldesagents28handlers29danslaconsoled27administration3F">
    Pourquoi ne peut-on pas configurer le cache local des agents (handlers)
    dans la console d'administration ?</span></h4>

    <p class="paragraph"></p>Le cache local doit &ecirc;tre choisi ou
    param&eacute;tr&eacute; en fonction du serveur: si on choisit par exemple
    le module Cache::FileCache, le r&eacute;pertoire de stockage n'est pas
    n&eacute;cessairement le m&ecirc;me partout. De plus, une modification du
    cache ne peut &ecirc;tre appliqu&eacute;e sans red&eacute;marrage du
    serveur Apache contrairement aux autres param&egrave;tres
    g&eacute;r&eacute;s par la console d'administration.

    <h4 class="heading-1-1-1"><span id=
    "HQu27estcequele7E7ECrossDomainAuthentication7E7E28CDA293F">Qu'est ce que
    le <i class="italic">Cross Domain Authentication</i> (CDA) ?</span></h4>

    <p class="paragraph"></p>Le syst&egrave;me de propagation de la session
    Lemonldap::NG est bas&eacute; sur des cookies. Or ces cookies sont
    attach&eacute;s au domaine dont ils sont issus. Lemonldap::NG fournit un
    dispositif permettant de passer outre ce probl&egrave;me: il suffit
    d'utiliser le portail Lemonldap::NG::Portal::CDA et les agents
    Lemonldap::NG::Handler::CDA sur les sites prot&eacute;g&eacute;s en dehors
    du domaine du portail.

    <h4 class="heading-1-1-1"><span id=
    "HCommentfonctionnele7E7ECrossDomainAuthentication7E7E28CDA293F">Comment
    fonctionne le <i class="italic">Cross Domain Authentication</i> (CDA)
    ?</span></h4>

    <p class="paragraph"></p>Un portail Lemonldap::NG::Portal::CDA
    d&eacute;tecte si l'URL demand&eacute;e n'est pas dans le m&ecirc;me
    domaine. Si c'est le cas, il ajoute un param&egrave;tre &agrave; cette
    requ&ecirc;te correspondant au cookie de session. Lorsque l'utilisateur
    est renvoy&eacute; vers cette URL, l'agent Lemonldap::NG::Handler::CDA
    reconna&icirc;t ce param&egrave;tre et g&eacute;n&egrave;re alors le
    cookie dans son domaine. Il retire alors le param&egrave;tre ajout&eacute;
    par le portail et effectue le traitement normal de la requ&ecirc;te.

    <h3 class="heading-1-1"><span id=
    "HAuthentification">Authentification</span></h3>

    <h4 class="heading-1-1-1"><span id=
    "HPeutonchangerlemoded27authentification3F">Peut-on changer le mode
    d'authentification ?</span></h4>

    <p class="paragraph"></p>Lemonldap::NG fournit plusieurs modes
    d'authentification (&agrave; param&eacute;trer dans le champ
    "authentification" de l'interface d'administration) :

    <ul class="star">
      <li><strong class="strong">ldap</strong> : c'est le mode par
      d&eacute;faut: le portail tente de se connecter avec les
      &eacute;l&eacute;ments fournis par l'utilisateur</li>

      <li><strong class="strong">CAS</strong> : le portail Lemonldap::NG
      devient alors un simple relais CAS: si l'utilisateur n'est pas
      authentifi&eacute;, on le revoie vers le portail CAS</li>

      <li><strong class="strong">SSL</strong> : ce dispositif confie &agrave;
      Apache le soin d'authentifier les utilisateurs par m&eacute;canisme SSL.
      Ce dispositif est tr&egrave;s int&eacute;ressant lorsqu'on utilise des
      certificats SSL: si on prot&egrave;ge toutes les applications par
      certificats mutuels les nombreuses n&eacute;gociations SSL
      p&eacute;naliserons les performances et en cas d'emploi de cartes
      &agrave; puces prot&eacute;geant chaque op&eacute;ration, l'utilisateur
      devra saisir plusieurs fois son code. Avec ce dispositif, seule
      l'acc&egrave;s au portail Lemonldap::NG n&eacute;cessite la
      pr&eacute;sentation du certificat client. Ensuite, c'est le cookie
      s&eacute;curis&eacute; qui assure la propagation de
      l'authentification.</li>

      <li><strong class="strong">Apache</strong> : dans le m&ecirc;me esprit,
      on confie &agrave; Apache l'authentification. Par exemple avec Kerberos,
      le module Kerberos d'Apache assure la protection du portail. On
      am&eacute;liore ainsi les performances puisqu'une seule
      n&eacute;gociation Kerberos est n&eacute;cessaire pour toute la
      session.</li>
    </ul>
529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659

    <h3 class="heading-1-1"><span id=
    "HMessagesd27erreuretdedC3A9boguage">Messages d'erreur et de
    d&eacute;boguage</span></h3>

    <p class="paragraph"></p>Lemonldap::NG produit des messages de
    d&eacute;boguage et d'erreur enregistr&eacute;s dans le journal d'Apache
    (error.log par d&eacute;faut). Vous pouvez modifier le niveau d'affichage
    en adaptant le param&egrave;tre LogLevel d'Apache.

    <h4 class="heading-1-1-1"><span id="H22IncorrectXML22">"Incorrect
    XML"</span></h4>

    <p class="paragraph"></p>Ce message appara&icirc;t au chargement du
    Manager lorsque celui-ci n'arrive pas &agrave; charger la configuration.
    Dans ce cas, consultez les journaux d'Apache&nbsp;: la v&eacute;ritable
    erreur y sera enregistr&eacute;e.

    <h4 class="heading-1-1-1"><span id=
    "H22Byteorderisnotcompatible22ou22Magicnumbercheckingonstorablestringfailed22">
    "Byte order is not compatible" ou "Magic number checking on storable
    string failed"</span></h4>

    <p class="paragraph"></p>Ce message appara&icirc;t lorsque la
    configuration stock&eacute;e est malform&eacute;e ou sur les versions
    ant&eacute;rieures &agrave; la version 0.8.2.3 lorsqu'on utilise
    Lemonldap::NG sur des serveurs de type diff&eacute;rents (32 et 64 bits en
    particulier). Dans ce dernier cas, il suffit d'installer une version au
    moins &eacute;gale &agrave; la version 0.8.2.3.

    <h4 class="heading-1-1-1"><span id=
    "H22Configurationisinoldformat2Cyou27vetomigrate2122">"Configuration is in
    old format, you've to migrate !"</span></h4>

    <p class="paragraph"></p>Ce message d'avertissement appara&icirc;t
    lorsqu'une configuration g&eacute;n&eacute;r&eacute;e &agrave; partir
    d'une version ant&eacute;rieure &agrave; la 0.8.2.3 est lue par une
    version plus r&eacute;cente. Un simple r&eacute;engistrement de la
    configuration par le manager fait dispara&icirc;tre cet avertissement.

    <h4 class="heading-1-1-1"><span id=
    "H22My3A3APackage3Agetconfiguration122">"My::Package: get configuration
    1"</span></h4>

    <p class="paragraph"></p>Ce message de d&eacute;boguage montre qu'un des
    processus fils d'Apache charge la configuration.

    <h4 class="heading-1-1-1"><span id=
    "H22My3A3APackage3Astoreconfiguration122">"My::Package: store
    configuration 1"</span></h4>

    <p class="paragraph"></p>Ce message de d&eacute;boguage montre qu'un des
    processus fils d'Apache enregistre la derni&egrave;re version de la
    configuration dans le cache local. Elle sera lue par les autres fils
    d'Apache dans les 10 minutes qui suivent.

    <h4 class="heading-1-1-1"><span id=
    "H22My3A3APackage3ANocookiefound22">"My::Package: No cookie
    found"</span></h4>

    <p class="paragraph"></p>Ce message indique qu'un utilisateur non
    authentifi&eacute; se pr&eacute;sente sur l'application.

    <h4 class="heading-1-1-1"><span id=
    "H22Redirect26lt3Bxxxx26gt3Btoportal28urlwas2F2922">"Redirect
    &lt;x.x.x.x&gt; to portal (url was /)"</span></h4>

    <p class="paragraph"></p>Message de d&eacute;boguage indiquant que le
    client correspondant &agrave; l'adresse IP est redirig&eacute; vers le
    portail d'authentification.

    <h4 class="heading-1-1-1"><span id="H22FoundaCDAidRedirecting22">"Found a
    CDA id. Redirecting"</span></h4>

    <p class="paragraph"></p>Message de d&eacute;boguage indiquant que le
    client a &eacute;t&eacute; authentifi&eacute; dans un autre domaine
    (m&eacute;canisme CDA). L'agent g&eacute;n&egrave;re alors le cookie dans
    le nouveau domaine.

    <h4 class="heading-1-1-1"><span id=
    "H22Usersomeonewasauthorizatedtoaccessto2F22">"User someone was
    authorizated to access to /"</span></h4>

    <p class="paragraph"></p>Message de d&eacute;boguage indiquant que le
    client est autoris&eacute; &agrave; acc&eacute;der &agrave; cette URL.

    <h4 class="heading-1-1-1"><span id=
    "H22My3A3APackage3Aremovingcookie22">"My::Package: removing
    cookie"</span></h4>

    <p class="paragraph"></p>Message de d&eacute;boguage indiquant que l'agent
    retire le cookie apr&egrave;s l'avoir exploit&eacute;&nbsp;: les
    applications n'ont pas &agrave; conna&icirc;tre ce cookie mais ne se fient
    qu'aux en-t&ecirc;tes.

    <h4 class="heading-1-1-1"><span id=
    "H22ErrorwhilereadingconfigurationwithglobalStorageOptionskey3A22">"Error
    while reading configuration with globalStorageOptions key:"</span></h4>

    <p class="paragraph"></p>Une erreur a &eacute;t&eacute; relev&eacute;e
    dans la configuration.

    <h4 class="heading-1-1-1"><span id=
    "H22UserrejectedbecauseVirtualHosttestexamplecomhasnoconfiguration22">"User
    rejected because VirtualHost test.example.com has no
    configuration"</span></h4>

    <p class="paragraph"></p>Lorsqu'un VirtualHost est prot&eacute;g&eacute;
    mais pas configur&eacute;, Lemonldap::NG le bloque. Inscrivez alors ce
    VirtualHost dans la configuration de Lemonldap::NG.

    <h4 class="heading-1-1-1"><span id=
    "H22Thecookiexxxxisn27tyetavailable3AObjectdoesnotexistinthedatastoreat2Fusr2Fshare2Fperl52FApache2FSession2FStore2FFilepmline9026231103B22">
    "The cookie xxxx isn't yet available: Object does not exist in the data
    store at /usr/share/perl5/Apache/Session/Store/File.pm line
    90.n"</span></h4>

    <p class="paragraph"></p>Ce message appara&icirc;t lorsqu'un utilisateur
    pr&eacute;sente un cookie qui n'existe pas ou plus dans la base des
    sessions. Il est alors pri&eacute; de se r&eacute;-authentifier.

    <h4 class="heading-1-1-1"><span id=
    "H22Thecookiexxxxisn27tyetavailable3A7E7E26lt3BerreurdumoduleApache3A3ASession26gt3B7E7E">
    "The cookie xxxx isn't yet available: <i class="italic">&lt;erreur du
    module Apache::Session&gt;</i></span></h4>

    <p class="paragraph"></p>Ce message appara&icirc;t lorsque l'agent
    n'arrive pas &agrave; atteindre la base des sessions. La v&eacute;ritable
    erreur est report&eacute;e.

    <p class="paragraph"></p>
660 661 662
  </div>
</body>
</html>