mirror of https://github.com/sipwise/kamailio.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
151 lines
6.0 KiB
151 lines
6.0 KiB
X Simple Authentication
|
|
|
|
Implement support for simple LDAP authentication with username and password.
|
|
This will take a change in the URI parser because the one provided by
|
|
libldap (which we use to parse the URI right now) does not support embedded
|
|
usernames and passwords in the URI.
|
|
|
|
* SASL Authentication Support (SER-392)
|
|
|
|
The driver supports no authentication method at the moment, we should
|
|
include support for simple authentication at least, but better SASL.
|
|
|
|
* TLS/SSL Support (SER-394)
|
|
|
|
The driver should support encrypted connections to LDAP servers and some
|
|
level of certificate validation. Currently there are no options or
|
|
parameters to configure SSL/TLS certificates and keys to use.
|
|
|
|
* Copy Data from Config Data Structure (SER-395)
|
|
|
|
The driver maintains an internal data structure that gets initialized from
|
|
the supplied configuration file. The structure contains things like search
|
|
filters and field mapping tables. The LDAP specific extension structures
|
|
make a shallow copy of strings from the configuration data structure, they
|
|
should rather copy the whole string so that they do not depend on the config
|
|
structure.
|
|
|
|
X Implement Support For < And > Operators
|
|
|
|
The LDAP search filter syntax (RFC4515) does not support < and > operators,
|
|
only <= and >=. Currently the ldap driver simply uses <= instead of < and >=
|
|
instead of >. We need a better implementation of this.
|
|
|
|
X Implement Support For Other Than str Parameters
|
|
|
|
X Escape Values of Parameters Injected Into the Search Filter
|
|
|
|
see RFC4515 for description of escaping.
|
|
|
|
* Proper handling of NULL Values in Parameter (SER-396).
|
|
|
|
Is it correct that parameters with NULL values are represented as paramName=
|
|
in the filter?
|
|
|
|
* Use Asynchronous API Functions Instead of Synchronous (SER-397)
|
|
|
|
This would be useful when we have support for multiple database drivers
|
|
within one database context, then we could initiate multiple searches
|
|
simultaneously without being blocked waiting for the result.
|
|
|
|
* Support For Multi-Value Attributes (SER-398)
|
|
|
|
The module should support multi-value attributes. Objects containing
|
|
attributes with multi-values should be returned as multiple records, each
|
|
record containing one value of the multi-value attribute. Currently the
|
|
module will report an error if it encounters a multi-value attribute.
|
|
|
|
* Support For Time Zones in Generalized Times (SER-399)
|
|
|
|
The time conversion functions ignore time zones in GeneralizedTime
|
|
attributes, this should be fixed.
|
|
|
|
* Handle Fractions of Seconds in Generalized Time (SER-400)
|
|
|
|
There is no need to account fractions of seconds because we store time
|
|
internally as time_t, but the parses should be able to skip fractions of
|
|
seconds gracefully.
|
|
|
|
X Eliminate Use of All libldap Functions Marked as Deprecated (SER-401)
|
|
|
|
We should eliminate the use of all functions that are marked as deprecated
|
|
in the header field and remove LDAP_DEPRECATED define from all files.
|
|
|
|
X Support for Bool Attribute Types
|
|
|
|
The module should be able to convert boolean attributes from the LDAP result
|
|
into int fields.
|
|
|
|
X Support for Syntax Specification in the Config File
|
|
|
|
There is no easy or portable way of retrieving syntaxes of attributes from
|
|
the LDAP server, so it might be necessary to specify the syntax of
|
|
attributes in the configuration file so that the module knows how to convert
|
|
DB API fields into attribute values in command parameters.
|
|
|
|
X Support DB_NEQ Operator in Integer Attributes (SER-402)
|
|
|
|
fld!=10 could be converted to the search filter as: (|(fld<=9)(fld>=11))
|
|
|
|
X Indicate Underflow/Overflow in Integer Attributes (SER-403)
|
|
|
|
The operators < and > cannot be used in LDAP search filter, RFC4515 only
|
|
supports <= and >= so we create the search filter like this: fld<10 ->
|
|
(fld<=9) fld>10 -> (fld>=11) The module should issue an warning when the
|
|
incremented/decremented field value overflows/underflows.
|
|
|
|
X Support for Older LDAP Libraries
|
|
|
|
Older versions of the openldap client library might not contain
|
|
LDAP_SCOPE_CHILDREN. We need to handle this case in a graceful manner and
|
|
make sure that the module compiles.
|
|
|
|
* Check that we escape strings properly according to RFC4514 (SER-404)
|
|
|
|
* Support for server side comparison (SER-405)
|
|
|
|
Support for server-side compare operation (could be used for authentication
|
|
where the client would send the digest credentials and the server replies
|
|
whether or not they are valid, similar to RADIUS digest authentication)
|
|
|
|
* Support for alias-dereferencing (SER-406)
|
|
|
|
Aliases represent links to other entries or partitions of the namespace.
|
|
When the distinguished name of an alias is used, the entry accessed is the
|
|
entry to which the alias refers. Alias dereferencing specifies if aliases
|
|
are dereferenced-- that is, if the alias entry itself or the entry it points
|
|
to is used. Aliases can be dereferenced or not when locating the base object
|
|
and/or when searching under the base object.
|
|
|
|
* Support for handling of NULL Values in configuration parameters (SER-407)
|
|
|
|
When an optional attribute is missing and also when the attribute is present
|
|
but has no value; e.g. DN=NULL for anonymous authentication.
|
|
|
|
* Support for unsolicited notifications (SER-408)
|
|
|
|
The only standardized unsolicited notification seems to be "notice of
|
|
disconnection" so all that we can do is just log incoming asynchronous
|
|
notifications from the server
|
|
|
|
* Support for asynchronous notifications (SER-409)
|
|
|
|
Support for subscribing to notifications of changes in the DIT (optional)
|
|
This could be useful for updating data that is cached in SER, such as the
|
|
list of supported domains. This is a "nice to have" type of feature, so no
|
|
time estimation for implementation.
|
|
|
|
* Support for automatic reconnects (SER-410)
|
|
|
|
(check if we do it and if we do it properly).
|
|
|
|
* Support for referrals (SER-411)
|
|
|
|
Implement support for referrals (in the ldap module, not in the libldap
|
|
library). Including loop detection.
|
|
|
|
* Support for time limited search operations (SER-412)
|
|
|
|
* Support for size limited search operations (SER-413)
|
|
|