File: node10.html

package info (click to toggle)
sympa 4.1.5-2
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 11,504 kB
  • ctags: 2,195
  • sloc: perl: 18,884; sh: 4,032; makefile: 1,173; ansic: 226; php: 105; lisp: 32
file content (871 lines) | stat: -rw-r--r-- 29,176 bytes parent folder | download
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
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
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
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
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
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
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
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
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
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
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">

<!--Converted with jLaTeX2HTML 2002 (1.62) JA patch-1.4
patched version by:  Kenshi Muto, Debian Project.
LaTeX2HTML 2002 (1.62),
original version by:  Nikos Drakos, CBLU, University of Leeds
* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
* with significant contributions from:
  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML>
<HEAD>
<TITLE>9. Authentication</TITLE>
<META NAME="description" CONTENT="9. Authentication">
<META NAME="keywords" CONTENT="sympa">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">

<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Generator" CONTENT="jLaTeX2HTML v2002 JA patch-1.4">
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">

<LINK REL="STYLESHEET" HREF="sympa.css">

<LINK REL="next" HREF="node11.html">
<LINK REL="previous" HREF="node9.html">
<LINK REL="up" HREF="sympa.html">
<LINK REL="next" HREF="node11.html">
</HEAD>

<BODY TEXT="#000000" BGCOLOR="#ffffff">
<!--Navigation Panel-->
<A NAME="tex2html905"
  HREF="node11.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> 
<A NAME="tex2html899"
  HREF="sympa.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> 
<A NAME="tex2html893"
  HREF="node9.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> 
<A NAME="tex2html901"
  HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> 
<A NAME="tex2html903"
  HREF="node23.html">
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index.png"></A> 
<BR>
<B> Next:</B> <A NAME="tex2html906"
  HREF="node11.html">10. Authorization scenarios</A>
<B> Up:</B> <A NAME="tex2html900"
  HREF="sympa.html">Sympa Mailing Lists Management Software version</A>
<B> Previous:</B> <A NAME="tex2html894"
  HREF="node9.html">8. Sympa SOAP server</A>
 &nbsp <B>  <A NAME="tex2html902"
  HREF="node1.html">Contents</A></B> 
 &nbsp <B>  <A NAME="tex2html904"
  HREF="node23.html">Index</A></B> 
<BR>
<BR>
<!--End of Navigation Panel-->
<!--Table of Child-Links-->
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>

<UL>
<LI><A NAME="tex2html907"
  HREF="node10.html#SECTION001010000000000000000">9.1 S/MIME and HTTPS authentication</A>
<LI><A NAME="tex2html908"
  HREF="node10.html#SECTION001020000000000000000">9.2 Authentication with email address, uid or alternate email address</A>
<LI><A NAME="tex2html909"
  HREF="node10.html#SECTION001030000000000000000">9.3 Generis SSO authentication</A>
<LI><A NAME="tex2html910"
  HREF="node10.html#SECTION001040000000000000000">9.4 CAS-based authentication</A>
<LI><A NAME="tex2html911"
  HREF="node10.html#SECTION001050000000000000000">9.5 auth.conf</A>
<UL>
<LI><A NAME="tex2html912"
  HREF="node10.html#SECTION001051000000000000000">9.5.1 user_table paragraph</A>
<LI><A NAME="tex2html913"
  HREF="node10.html#SECTION001052000000000000000">9.5.2 ldap paragraph</A>
<LI><A NAME="tex2html914"
  HREF="node10.html#SECTION001053000000000000000">9.5.3 generic_sso paragraph</A>
<LI><A NAME="tex2html915"
  HREF="node10.html#SECTION001054000000000000000">9.5.4 cas paragraph</A>
</UL>
<BR>
<LI><A NAME="tex2html916"
  HREF="node10.html#SECTION001060000000000000000">9.6 Sharing <I>WWSympa</I> authentication with other applications</A>
</UL>
<!--End of Table of Child-Links-->
<HR>

<H1><A NAME="SECTION001000000000000000000"></A>
<A NAME="authn"></A>
<BR>
9. Authentication
</H1>

<P>
<I>Sympa</I> needs to authenticate users (subscribers, owners, moderators, listmaster) on both its
mail and web interface to then apply appropriate privileges (authorization process) to subsequent 
requested actions. <I>Sympa</I> is able to cope with multiple authentication means on the client side and 
when using user+password it can validate these credentials against LDAP authentication backends.

<P>
When contacted on the mail interface <I>Sympa</I> has 3 authentication levels. Lower level is to trust
the <A NAME="6039"></A><TT>From:</TT> SMTP header field. A higher level of authentication will require that the 
user confirms his/her message. The strongest supported authentication method is S/MIME (note that <I>Sympa</I> 
also deals with S/MIME encrypted messages).

<P>
On the <I>Sympa</I> web interface (<A NAME="6044"></A><I>WWSympa</I>) the user can authenticate in 4 different ways (if appropriate setup
has been done on <I>Sympa</I> serveur). Default authentication mean is via the user's email address and a password 
managed by <I>Sympa</I> itself. If an LDAP authentication backend (or multiple) has been defined, then the user 
can authentication with his/her LDAP uid and password. <I>Sympa</I> is also able to delegate the authentication
job to a web Single SignOn system ; currently <A NAME="tex2html31"
  HREF="http://www.yale.edu/tp/auth/">CAS</A>
(the Yale University system) or a generic SSO setup, adapted to SSO products providing an Apache module. 
When contacted via HTTPS, <I>Sympa</I> can make use of X509 client certificates to authenticate users.

<P>
The authorization process in <I>Sympa</I> (authorization scenarios) refers to authentication methods. The 
same authorization scenarios are used for both mail and web accesss ; therefore some authentication 
methods are considered as equivalent : mail confirmation (on the mail interface) is equivalent to
password authentication (on the web interface) ; S/MIME authentication is equivalent to HTTPS with
client certificate authentication. Each rule in authorization scenarios requires an authentication method 
(<A NAME="6052"></A><TT>smtp</TT>,<A NAME="6055"></A><TT>md5</TT> or <A NAME="6058"></A><TT>smime</TT>) ; if the required authentication method was 
not used, a higher authentication mode can be requested.

<P>

<H1><A NAME="SECTION001010000000000000000">
9.1 S/MIME and HTTPS authentication</A>
</H1>

<P>
Chapter <A HREF="node21.html#smime-sig">20.2</A> (page&nbsp;<A HREF="node21.html#smime-sig"><IMG  ALIGN="BOTTOM" BORDER="1" ALT="[*]" SRC="crossref.png"></A>) deals with <I>Sympa</I> and S/MIME signature.
<I>Sympa</I> uses <TT>OpenSSL</TT> library to work on S/MIME messages, you need to configure some
related <I>Sympa</I> parameters : <A HREF="node21.html#smimeconf">20.4.2</A> (page&nbsp;<A HREF="node21.html#smimeconf"><IMG  ALIGN="BOTTOM" BORDER="1" ALT="[*]" SRC="crossref.png"></A>).

<P>
<I>Sympa</I> HTTPS authentication is based on Apache+mod_SSL that provide the required authentication
information via CGI environment variables. You will need to edit Apache configuration to 
allow HTTPS access and require X509 client certificate. Here is a sample Apache configuration

<P><PRE>
SSLEngine on
SSLVerifyClient optional
SSLVerifyDepth  10
...
&lt;Location /wws&gt;
   SSLOptions +StdEnvVars
   SetHandler fastcgi-script
&lt;/Location&gt;
</PRE>

<P>

<H1><A NAME="SECTION001020000000000000000"></A>
<A NAME="ldap-auth"></A>
<BR>
9.2 Authentication with email address, uid or alternate email address
</H1>

<P>
<I>Sympa</I> stores the data relative to the subscribers in a DataBase. Among these data: password, email exploited during the Web authentication. The  module of <A NAME="6066"></A>LDAP authentication allows to use <I>Sympa</I> in an intranet without duplicating user passwords. 

<P>
This way users can indifferently authenticate with their ldap_uid, their alternate_email or their canonic email stored in the <A NAME="6068"></A>LDAP directory.

<P>
<I>Sympa</I> gets the canonic email in the <A NAME="6070"></A>LDAP directory with the ldap_uid or the alternate_email.  
<I>Sympa</I> will first attempt an anonymous bind to the directory to get the user's DN, then <I>Sympa</I> will bind with the DN and the user's ldap_password in order to perform an efficient authentication. This last bind will work only if the good ldap_password is provided. Indeed the value returned by the bind(DN,ldap_password) is tested.

<P>
Example: a person is described by<PRE>
                 Dn:cn=Fabrice Rafart,
                 ou=Siege ,
                 o=MaSociete ,
                 c=FR Objectclass:
                 person Cn: Fabrice Rafart
                 Title: Network Responsible
                 O: Siege
                 Or: Data processing
                 Telephonenumber: 01-00-00-00-00
                 Facsimiletelephonenumber:01-00-00-00-00
                 L:Paris
                 Country: France

		 uid: frafart
 		 mail: Fabrice.Rafart@MaSociete.fr
                 alternate_email: frafart@MaSociete.fr
                 alternate:rafart@MaSociete.fr
</PRE>

<P>
So Fabrice Rafart can be authenticated with: frafart, Fabrice.Rafart@MaSociete.fr, frafart@MaSociete.fr,Rafart@MaSociete.fr.
After this operation, the address in the field FROM will be the Canonic email, in this case  Fabrice.Rafart@MaSociete.fr. 
That means that <I>Sympa</I> will get this email and use it during all the session until you clearly ask <I>Sympa</I> to change your email address via the two pages : which and pref.

<P>

<H1><A NAME="SECTION001030000000000000000"></A>
<A NAME="generic-sso"></A>
<BR>
9.3 Generis SSO authentication
</H1>

<P>
The authentication method has first been introduced to allow interraction with <A NAME="tex2html32"
  HREF="http://shibboleth.internet2.edu/">Shibboleth</A>, Internet2's inter-institutional authentication system. But it should be usable with any SSO system that provides an Apache authentication module being able to protect a specified URL on the site (not the whole site). Here is a sample httpd.conf that shib-protects the associated Sympa URL :<PRE>
...
&lt;Location /wws/sso_login/inqueue&gt;
  AuthType shibboleth
  require affiliation ~ ^member@.+
&lt;/Location&gt;
...
</PRE>

<P>
The SSO is also expected to provide user attributes including the user email address as environment variables. To make the SSO appear in the login menu, a textbf generic_sso paragraph describing the SSO service should be added to  <A NAME="6075"></A><TT>auth.conf</TT>. The format of this paragraph is described in the following section.

<P>
Apart from the user email address, the SSO can provide other user attributes that <I>Sympa</I> will store in the user_table DB table (for persistancy) and make them available in the [user_attributes] structure that you can use within authorization scenarios (see&nbsp;<A HREF="node11.html#rules">10.1</A>, page&nbsp;<A HREF="node11.html#rules"><IMG  ALIGN="BOTTOM" BORDER="1" ALT="[*]" SRC="crossref.png"></A>).

<P>

<H1><A NAME="SECTION001040000000000000000"></A>
<A NAME="cas"></A>
<BR>
9.4 CAS-based authentication
</H1>

<P>
CAS is Yale university SSO software. Sympa can use CAS authentication service.

<P>
The listmaster should define at least one or more CAS servers (<B>cas</B> paragraph) in <A NAME="6079"></A><TT>auth.conf</TT>. If <B>non_blocking_redirection</B> parameter was set for a CAS server then Sympa will try a transparent login on this server
when the user accesses the web interface. If one CAS server redirect the user to Sympa with a valid ticket Sympa receives a user ID from the CAS server. It then connects to the related LDAP directory to get the user email address. If no CAS server returns a valid user ID, Sympa will let the user either select a CAS server to login or perform a Sympa login.

<P>

<H1><A NAME="SECTION001050000000000000000"></A>
<A NAME="auth-conf"></A>
<BR>
9.5 auth.conf
</H1>

<P>
The <A NAME="6082"></A><TT>/home/sympa/etc/auth.conf</TT> configuration file contains numerous
parameters which are read on start-up of <I>Sympa</I>. If you change this file, do not forget
that you will need to restart wwsympa.fcgi afterwards. 

<P>
The <A NAME="6086"></A><TT>/home/sympa/etc/auth.conf</TT> is organised in paragraphs. Each paragraph describes an authentication 
service with all required parameters to perform an authentication using this service. Current version of
<I>Sympa</I> can perform authentication through LDAP directories, using an external Single Sign-On Service (like CAS 
or Shibboleth), or using internal user_table.

<P>
The login page contains 2 forms : the login form and the SSO. When users hit the login form, each ldap or user_table authentication
paragraph is applied unless email adress input from form match the <A NAME="6090"></A><TT>negative_regexp</TT> or do not match <A NAME="6093"></A><TT>regexp</TT>. 
 <A NAME="6096"></A><TT>negative_regexp</TT> and <A NAME="6099"></A><TT>regexp</TT> can be defined for earch ldap or user_table authentication service so
administrator can block some authentication methode for class of users.

<P>
The segond form in login page contain the list of CAS server so user can choose explicitely his CAS service.

<P>
Each paragraph start with one of the keyword cas, ldap or user_table  

<P>
The <A NAME="6102"></A><TT>/home/sympa/etc/auth.conf</TT> file contains directives in the following format:

<P>
<P>
<BLOCKQUOTE><I>paragraphs</I>
<BR>    <I>keyword    value</I>
</BLOCKQUOTE>
<P>
<BLOCKQUOTE><I>paragraphs</I>
<BR>    <I>keyword    value</I> 
</BLOCKQUOTE>
<P>

<P>
Comments start with the <TT>#</TT> character at the beginning of a line.

<P>
Empty lines are also considered as comments and are ignored at the beginning. After the first paragraph they are considered as paragraphs separators.
There should only be one directive per line, but their order in the paragraph is of no importance.

<P>
Example :

<P><PRE>
#Configuration file auth.conf for the LDAP authentification
#Description of parameters for each directory


cas
	base_url			https://sso-cas.cru.fr
	non_blocking_redirection        on
	auth_service_name		cas-cru
	ldap_host			ldap.cru.fr:389
        ldap_get_email_by_uid_filter    (uid=[uid])
	ldap_timeout			7
	ldap_suffix			dc=cru,dc=fr
	ldap_scope			sub
	ldap_email_attribute		mail

## The URL corresponding to the service_id should be protected by the SSO (Shibboleth in the exampl)
## The URL would look like http://yourhost.yourdomain/wws/sso_login/inqueue in the following example
generic_sso
        service_name       InQueue Federation
        service_id         inqueue
        http_header_prefix HTTP_SHIB
        email_http_header  HTTP_SHIB_EP_AFFILIATION

ldap
	regexp				univ-rennes1\.fr
	host				ldap.univ-rennes1.fr:389
	timeout				30
	suffix				dc=univ-rennes1,dc=fr
	get_dn_by_uid_filter		(uid=[sender])
	get_dn_by_email_filter		(|(mail=[sender])(mailalternateaddress=[sender]))
	email_attribute			mail
	alternative_email_attribute	mailalternateaddress,ur1mail
	scope				sub
	use_ssl                         1
	ssl_version                     sslv3
	ssl_ciphers                     MEDIUM:HIGH

ldap
	
	host				ldap.univ-nancy2.fr:392,ldap1.univ-nancy2.fr:392,ldap2.univ-nancy2.fr:392
	timeout				20
	bind_dn                         cn=sympa,ou=people,dc=cru,dc=fr
	bind_password                   sympaPASSWD
	suffix				dc=univ-nancy2,dc=fr
	get_dn_by_uid_filter		(uid=[sender])
	get_dn_by_email_filter			(|(mail=[sender])(n2atraliasmail=[sender]))
	alternative_email_attribute	n2atrmaildrop
	email_attribute			mail
	scope				sub
        authentication_info_url         http://sso.univ-nancy2.fr/
	

user_table
	negative_regexp 		((univ-rennes1)|(univ-nancy2))\.fr
</PRE>

<P>

<H2><A NAME="SECTION001051000000000000000">
9.5.1 user_table paragraph</A>
</H2>

<P>
The user_table paragraph is related to sympa internal authentication by email and password. It is the simplest one the only parameters
are <A NAME="6105"></A><TT>regexp</TT> or <A NAME="6108"></A><TT>negative_regexp</TT> which are perl regular expressions applied on a provided email address to select or block this authentication method for a subset of email addresses. 

<P>

<H2><A NAME="SECTION001052000000000000000">
9.5.2 ldap paragraph</A>
</H2>

<P>

<UL>
<LI><A NAME="6111"></A><TT>regexp</TT> and <A NAME="6114"></A><TT>negative_regexp</TT>
	Same as in user_table paragraph : if a provided email address (does not apply to an uid), then the
	regular expression will be applied to find out if this LDAP directory can be used to authenticate a
	subset of users.

<P>
</LI>
<LI>host
<BR>
<P>
This keyword is <B>mandatory</B>. It is the domain name
	used in order to bind to the directory and then to extract informations.
	You must mention the port number after the server name.
	Server replication is supported by listing several servers separated by commas.

<P>
Example :
	<PRE>
	host ldap.univ-rennes1.fr:389
	host ldap0.university.com:389,ldap1.university.com:389,ldap2.university.com:389
</PRE>

<P>
</LI>
<LI>timeout
<BR>
<P>
It corresponds to the timelimit in the Search fonction. A timelimit that restricts the maximum 
	time (in seconds) allowed for a search. A value of 0 (the default), means that no timelimit
        will be requested.

<P>
</LI>
<LI>suffix
<BR>
<P>
The root of the DIT (Directory Information Tree). The DN that is the base object entry relative 
	to which the search is to be performed. 

<P>
Example: <TT>dc=university,dc=fr</TT>

<P>
</LI>
<LI>bind_dn
<BR>
<P>
If anonymous bind is not allowed on the LDAP server, a DN and password can be used.

<P>
</LI>
<LI>bind_password
<BR>
<P>
This password is used, combined with the bind_dn above.

<P>
</LI>
<LI>get_dn_by_uid_filter
<BR>
<P>
Defines the search filter corresponding to the ldap_uid. (RFC 2254 compliant).
	If you want to apply the filter on the user, use the variable ' [sender] '. It will work with every
	type of authentication (uid, alternate_email..). 

<P>
Example :
	<PRE>
	(Login = [sender])
	(|(ID = [sender])(UID = [sender]))
</PRE>

<P>
</LI>
<LI>get_dn_by_email_filter
<BR>
<P>
Defines the search filter corresponding to the email addresses (canonic and alternative).(RFC 2254 compliant). 
	If you want to apply the filter on the user, use the variable ' [sender] '. It will work with every
	type of authentication (uid, alternate_email..). 

<P>
Example: a person is described by

<P><PRE>
                 Dn:cn=Fabrice Rafart,
                 ou=Siege ,
                 o=MaSociete ,
                 c=FR Objectclass:
                 person Cn: Fabrice Rafart
                 Title: Network Responsible
                 O: Siege
                 Or: Data processing
                 Telephonenumber: 01-00-00-00-00
                 Facsimiletelephonenumber:01-00-00-00-00
                 L:Paris
                 Country: France

		 uid: frafart
 		 mail: Fabrice.Rafart@MaSociete.fr
                 alternate_email: frafart@MaSociete.fr
                 alternate:rafart@MaSociete.fr
</PRE>

<P>
The filters can be :

<P><PRE>
	
	(mail = [sender])
	(| (mail = [sender])(alternate_email = [sender]) )
	(| (mail = [sender])(alternate_email = [sender])(alternate  = [sender]) )
</PRE>

<P>
</LI>
<LI>email_attribute
<BR>
<P>
The name of the attribute for the canonic email in your directory : for instance mail, canonic_email, canonic_address ...
	In the previous example the canonic email is 'mail'.

<P>
</LI>
<LI>alternate_email_attribute
<BR>
<P>
The name of the attribute for the alternate email in your directory : for instance alternate_email, mailalternateaddress, ...
	You make a list of these attributes separated by commas.

<P>
With this list <I>Sympa</I> creates a cookie which contains various information : the user is authenticated via Ldap or not, his alternate email. To store the alternate email is interesting when you want to canonify your preferences and subscriptions. 
	That is to say you want to use a unique address in User_table and Subscriber_table which is the canonic email.

<P>
</LI>
<LI>scope
<BR>
<P>
(Default value: <TT>sub</TT>)
	By default the search is performed on the whole tree below the specified base object. This may be changed by 
	specifying a scope :

<P>

<UL>
<LI>base
<BR>
Search only the base object.

<P>
</LI>
<LI>one
<BR>
Search the entries immediately below the base object. 

<P>
</LI>
<LI>sub
<BR>
Search the whole tree below the base object. This is the default. 

<P>
</LI>
</UL>

<P>
</LI>
<LI>authentication_info_url
<BR>
<P>
Defines the URL of a document describing LDAP password management. When hitting Sympa's 
	<I>Send me a password</I> button, LDAP users will be redirected to this URL.

<P>
</LI>
<LI>use_ssl

<P>
If set to <TT>1</TT>, connection to the LDAP server will use SSL (LDAPS).

<P>
</LI>
<LI>ssl_version

<P>
This defines the version of the SSL/TLS protocol to use. Defaults of <A NAME="6120"></A>Net::LDAPS to <TT>sslv2/3</TT>, 
	other possible values are <TT>sslv2</TT>, <TT>sslv3</TT>, and <TT>tlsv1</TT>.

<P>
</LI>
<LI>ssl_ciphers

<P>
Specify which subset of cipher suites are permissible for this connection, using the standard 
	OpenSSL string format. The default value of <A NAME="6121"></A>Net::LDAPS for ciphers is <TT>ALL</TT>, 
	which permits all ciphers, even those that don't encrypt!

<P>
</LI>
</UL>

<P>

<H2><A NAME="SECTION001053000000000000000">
9.5.3 generic_sso paragraph</A>
</H2>

<P>

<UL>
<LI>service_name 
<BR>
This is the SSO service name that will be proposed to the user in the login banner menu.

<P>
</LI>
<LI>service_id 
<BR>
This service ID is used as a parameter by sympa to refer to the SSO service (instead of the service name). 

<P>
A corresponding URL on the local web server should be protected by the SSO system ; this URL would look like textbf http://yourhost.yourdomain/wws/sso_login/inqueue if the service_id is <B>inqueue</B>.

<P>
</LI>
<LI>http_header_prefix 
<BR>
Sympa gets user attributes from environment variables comming from the web server. These variables are then stored in the user_table DB table for later use in authorization scenarios (in  structure). Only environment variables starting with the defined prefix will kept.

<P>
</LI>
<LI>email_http_header 
<BR>
This parameter defines the environment variable that will contain the authenticated user's email address.

<P>
</LI>
</UL>

<P>

<H2><A NAME="SECTION001054000000000000000">
9.5.4 cas paragraph</A>
</H2>

<P>

<UL>
<LI>auth_service_name
<BR>
The friendly user service name as shown by <I>Sympa</I> in the login page.

<P>
</LI>
<LI>host (OBSOLETE) 
<BR>
This parameter has been replaced by <B>base_url</B> parameter

<P>
</LI>
<LI>base_url 
<BR>
<P>
The base URL of the CAS server.

<P>
</LI>
<LI>non_blocking_redirection
<BR>
<P>
This parameter concern only the first access to Sympa services by a user, it activate or not the non blocking
redirection to the related cas server to check automatically if the user as been previously authenticated with  this CAS server.
Possible values are <B>on</B>  <B>off</B>, default is  <B>on</B>. The redirection to CAS is use with
the cgi parameter <B>gateway=1</B> that specify to CAS server to always redirect the user to the origine
URL but just check if the user is logged. If active, the SSO service is effective and transparent, but in case
the CAS server is out of order the access to Sympa services is impossible.

<P>
</LI>
<LI>login_uri (OBSOLETE) 
<BR>
This parameter has been replaced by <B>login_path</B> parameter.

<P>
</LI>
<LI>login_path (OPTIONAL)
<BR>
The login service path

<P>
</LI>
<LI>check_uri (OBSOLETE) 
<BR>
This parameter has been replaced by <B>service_validate_path</B> parameter

<P>
</LI>
<LI>service_validate_path (OPTIONAL)
<BR>
The ticket validation service path

<P>
</LI>
<LI>logout_uri (OBSOLETE) 
<BR>
This parameter has been replaced by <B>logout_path</B> parameter

<P>
</LI>
<LI>logout_path (OPTIONAL)
<BR>
The logout service path

<P>
</LI>
<LI>proxy_path (OPTIONAL)
<BR>
The proxy service path, used by Sympa SOAP server only.

<P>
</LI>
<LI>proxy_validate_path (OPTIONAL)
<BR>
The proxy validate service path, used by Sympa SOAP server only.

<P>
</LI>
<LI>ldap_host
<BR>
The LDAP host Sympa will connect to fetch user email when user uid is return by CAS service. The ldap_host include the
        port number and it may be a comma separated list of redondant host.   

<P>
</LI>
<LI>ldap_bind_dn
<BR>
The DN used to bind to this server. Anonymous bind is used if this parameter is not defined.

<P>
</LI>
<LI>ldap_bind_password
<BR>
The password used unless anonymous bind is used.

<P>
</LI>
<LI>ldap_suffix
<BR>
The LDAP suffix use when seraching user email

<P>
</LI>
<LI>ldap_scope
<BR>
The scope use when seraching user email, possible values are <TT>sub</TT>, <TT>base</TT>, and <TT>one</TT>.

<P>
</LI>
<LI>ldap_get_email_by_uid_filter
<BR>
The filter to perform the email search.

<P>
</LI>
<LI>ldap_email_attribute
<BR>
The attribut name to be use as user canonical email. In the current version of sympa only the first value returned by the LDAP server is used.

<P>
</LI>
<LI>ldap_timeout
<BR>
The time out for the search.

<P>
</LI>
<LI>ldap_use_ssl

<P>
If set to <TT>1</TT>, connection to the LDAP server will use SSL (LDAPS).

<P>
</LI>
<LI>ldap_ssl_version

<P>
This defines the version of the SSL/TLS protocol to use. Defaults of <A NAME="6123"></A>Net::LDAPS to <TT>sslv2/3</TT>, 
	other possible values are <TT>sslv2</TT>, <TT>sslv3</TT>, and <TT>tlsv1</TT>.

<P>
</LI>
<LI>ldap_ssl_ciphers

<P>
Specify which subset of cipher suites are permissible for this connection, using the  
	OpenSSL string format. The default value of <A NAME="6124"></A>Net::LDAPS for ciphers is <TT>ALL</TT>, 
	which permits all ciphers, even those that don't encrypt!

<P>
</LI>
</UL>

<P>

<H1><A NAME="SECTION001060000000000000000"></A><A NAME="6125"></A>
<A NAME="sharing-auth"></A>
<BR>
9.6 Sharing <I>WWSympa</I> authentication with other applications
</H1>

<P>
If your are not using a web Single SignOn system you might want to make other web applications collaborate with <I>Sympa</I>,
and share the same authentication system. <I>Sympa</I> uses
HTTP cookies to carry users' auth information from page to page.
This cookie carries no information concerning privileges. To make your application
work with <I>Sympa</I>, you have two possibilities :

<P>

<UL>
<LI>Delegating authentication operations to <A NAME="6131"></A><I>WWSympa</I> 
<BR>
If you want to avoid spending a lot of time programming a CGI to do Login, Logout
and Remindpassword, you can copy <A NAME="6134"></A><I>WWSympa</I>'s login page to your 
application, and then make use of the cookie information within your application. 
The cookie format is :
<PRE>
sympauser=&lt;user_email&gt;:&lt;checksum&gt;
</PRE>
where <TT>&lt;</TT>user_email<TT>&gt;</TT> is the user's complete e-mail address, and
<TT>&lt;</TT>checksum<TT>&gt;</TT> are the 8 last bytes of the a MD5 checksum of the <TT>&lt;</TT>user_email<TT>&gt;</TT>+<I>Sympa</I> <A NAME="6138"></A><TT>cookie</TT>
configuration parameter.
Your application needs to know what the <A NAME="6141"></A><TT>cookie</TT> parameter
is, so it can check the HTTP cookie validity ; this is a secret shared
between <A NAME="6144"></A><I>WWSympa</I> and your application.
<A NAME="6147"></A><I>WWSympa</I>'s <I>loginrequest</I> page can be called to return to the
referer URL when an action is performed. Here is a sample HTML anchor :

<P>
<PRE>
&lt;A HREF="/wws/loginrequest/referer"&gt;Login page&lt;/A&gt;
</PRE>

<P>
You can also have your own HTML page submitting data to <A NAME="6150"></A><TT>wwsympa.fcgi</TT> CGI. If you're
doing so, you can set the <TT>referer</TT> variable to another URI. You can also
set the <TT>failure_referer</TT> to make WWSympa redirect the client to a different
URI if login fails.

<P>
</LI>
<LI>Using <A NAME="6153"></A><I>WWSympa</I>'s HTTP cookie format within your auth module 
<BR>
To cooperate with <A NAME="6156"></A><I>WWSympa</I>, you simply need to adopt its HTTP
cookie format and share the secret it uses to generate MD5 checksums,
i.e. the <A NAME="6159"></A><TT>cookie</TT> configuration parameter. In this way, <A NAME="6162"></A><I>WWSympa</I> 
will accept users authenticated through your application without
further authentication.

<P>
</LI>
</UL>

<P>

<HR>
<!--Navigation Panel-->
<A NAME="tex2html905"
  HREF="node11.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> 
<A NAME="tex2html899"
  HREF="sympa.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> 
<A NAME="tex2html893"
  HREF="node9.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> 
<A NAME="tex2html901"
  HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> 
<A NAME="tex2html903"
  HREF="node23.html">
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index.png"></A> 
<BR>
<B> Next:</B> <A NAME="tex2html906"
  HREF="node11.html">10. Authorization scenarios</A>
<B> Up:</B> <A NAME="tex2html900"
  HREF="sympa.html">Sympa Mailing Lists Management Software version</A>
<B> Previous:</B> <A NAME="tex2html894"
  HREF="node9.html">8. Sympa SOAP server</A>
 &nbsp <B>  <A NAME="tex2html902"
  HREF="node1.html">Contents</A></B> 
 &nbsp <B>  <A NAME="tex2html904"
  HREF="node23.html">Index</A></B> 
<!--End of Navigation Panel-->
<ADDRESS>
root
2004-09-10
</ADDRESS>
</BODY>
</HTML>