File: WebServerIntegration

package info (click to toggle)
imip-agent 0.3-2
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 2,056 kB
  • sloc: python: 9,888; sh: 4,480; sql: 144; makefile: 8
file content (151 lines) | stat: -rw-r--r-- 5,383 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
= Web Server Integration =

Although imip-agent is mostly concerned with e-mail messaging, it can
integrate with a Web server for the following purposes:

 * To [[../FreeBusyPublishing|publish free/busy information]] for calendar users
 * To provide a [[../CalendarManager|management interface]] for calendar users

Currently, imip-agent provides configuration files for Apache, but other Web
servers may also be supported.

== Authentication and Access Control in Apache ==

Apache supports a range of mechanisms for protecting resources and
authenticating users. Most usefully for imip-agent given the
[[../MailIntegration|e-mail integration]] requirements, modules supporting
[[http://httpd.apache.org/docs/2.4/mod/mod_authnz_ldap.html|LDAP]] and
[[http://httpd.apache.org/docs/2.4/mod/mod_auth_basic.html|text-based lists]]
of users are available for such purposes.

== Configuring Web Servers for Free/Busy Publishing ==

Each user may request the [[../FreeBusyPublishing|publishing]] of their
free/busy information by configuring certain settings. The
`conf/apache/imip-agent.conf` file provides a configuration file for
deployment with the Apache Web server software that exposes a directory for
Web publishing containing the published free/busy information.

On Debian, to enable the serving of free/busy data, copy the configuration
file to the Apache configuration and enable it as follows

{{{
cp conf/apache/imip-agent.conf /etc/apache2/sites-available/
a2ensite imip-agent
}}}

Access to free/busy information may not be moderated, but Web server
directives can be introduced to impose access controls. Mail programs that
wish to consult the free/busy information may have problems in dealing with
authentication mechanisms, however, and it may be regarded as acceptable in
certain environments to expose such information publicly or with
network-specific access constraints.

== Configuring Web Servers for the Calendar Management Interface ==

A [[../CalendarManager|calendar management interface]] is provided to allow
users to view and interact with their calendars through the Web. The
`conf/apache/imip-manager.conf` file provides a configuration file for
deployment with the Apache Web server software that enables this interface.

=== Configuring the Management Interface ===

The `config.txt` file described in the [[../Configuration|configuration guide]]
provides some settings that can be adjusted to configure the management
interface.

{{{{#!table
'''Setting''' || '''Result'''
==
`MANAGER_INTERFACE`
|| If set to `True`, causes links to the interface to be included in
.. notification messages sent by imip-agent. If set to `False`, such links
.. will be omitted.
==
`MANAGER_URL`
|| The deployment URL of the management interface. Together with the
.. `MANAGER_PATH` described below, this forms the basis of the links
.. described above. Some examples:
{{{
http://webserver.example.com/
http://webserver.example.com/webapps/
}}}
It can be left as `None` and a default URL will be built using the
hostname of the system running the software.
==
`MANAGER_URL_SCHEME`
|| The URL scheme or protocol employed if a default URL is being constructed
.. instead of `MANAGER_URL` providing a value. Some examples:
{{{
http://
https://
}}}
Since the manager is only likely to be available via common Web protocols,
other values may not make much sense.
==
`MANAGER_PATH`
|| The "path info" added to the `MANAGER_URL` that locates the management
.. interface in its deployment location. Some examples:
{{{
/
/imip-agent
}}}
This setting affects the `imip-manager.conf` file, whose `Alias`, `ScriptAlias`
and `Location` directives should be changed if this setting is changed.
}}}}

=== Deploying the Configuration ===

On Debian, to enable the management interface, copy the configuration file to
the Apache configuration and enable it as follows:

{{{
cp conf/apache/imip-manager.conf /etc/apache2/sites-available/
a2ensite imip-manager
}}}

The management interface is deployed as a CGI program, meaning that a suitable
module must be enabled in the Apache configuration. On Debian, this is done as
follows:

{{{
a2enmod cgi
}}}

Since such access to calendars should only be performed by identified
users, access controls are suggested in the configuration file. Modules
providing additional authentication support may need to be enabled. For
example, on Debian, the LDAP authentication/authorisation support is enabled
as follows:

{{{
a2enmod authnz_ldap
}}}

=== Authenticating Users ===

The `imip-manager.conf` file contains example directives for accessing
authentication services or data.

Where LDAP authentication is to be used, the appropriate LDAP URL needs to be
specified using a directive. For example:

{{{
AuthLDAPUrl "ldap://localhost/ou=People,dc=example,dc=com?mail?sub"
}}}

Here, the `mail` attribute is used to match the username provided in the
authentication dialogue. Configuration changes may be required within the LDAP
infrastructure to allow this mechanism to function, but this is not described
here.

Meanwhile, particularly where [[../MailIntegration/Simple|simple integration]]
strategies have been chosen, a plain text user file can be employed to
authenticate users. For example:

{{{
AuthUserFile /var/www/imip-agent/users
}}}

Such a file should be created using the usual tools provided by the Apache Web
server distribution.