PHPackages                             foundata/identity\_from\_directory - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Authentication &amp; Authorization](/categories/authentication)
4. /
5. foundata/identity\_from\_directory

ActiveRoundcube-plugin[Authentication &amp; Authorization](/categories/authentication)

foundata/identity\_from\_directory
==================================

Populate and maintain user identities automatically on each login, based on corresponding LDAP or Active Directory user data.

v2.2.1(2y ago)113273[3 issues](https://github.com/foundata/roundcube-plugin-identity-from-directory/issues)[2 PRs](https://github.com/foundata/roundcube-plugin-identity-from-directory/pulls)GPL-3.0-or-laterPHPPHP ^7.4 || ^8.0

Since Apr 1Pushed 1y ago2 watchersCompare

[ Source](https://github.com/foundata/roundcube-plugin-identity-from-directory)[ Packagist](https://packagist.org/packages/foundata/identity_from_directory)[ Docs](https://github.com/foundata/roundcube-plugin-identity-from-directory)[ RSS](/packages/foundata-identity-from-directory/feed)WikiDiscussions main Synced today

READMEChangelog (8)Dependencies (1)Versions (9)Used By (0)

Roundcube Plugin: `identity_from_directory` (use LDAP or AD to maintain email identities)
=========================================================================================

[](#roundcube-plugin-identity_from_directory-use-ldap-or-ad-to-maintain-email-identities)

A [Roundcube](https://roundcube.net/) [plugin](https://plugins.roundcube.net/) to populate and maintain a user's email identities automatically on each login, based on corresponding LDAP or Active Directory data.

Table of Contents
-----------------

[](#table-of-contents)

- [Screenshots](#screenshots)
- [Installation](#installation)
    - [Installation using Composer](#installation-using-composer)
    - [Installation from release tarball](#installation-from-release-tarball)
- [Updating](#updating)
    - [Update using Composer](#update-using-composer)
    - [Update from release tarball](#update-from-release-tarball)
- [Configuration](#configuration)
- [Compatibility](#compatibility)
- [Licensing, copyright](#licensing-copyright)
- [Author information](#author-information)

Screenshots
-----------

[](#screenshots)

A user with the following Active Directory data

[![Image of Active Directory user properties displayed in a domain controllers GUI](./doc/images/active-directory-user-settings-01.png)](./doc/images/active-directory-user-settings-01.png)

and a signature template set to

```
$config['identity_from_directory_signature_template_html'] = '

    Kind regards
    %name_html%
    %organization_html%

    mailto: %email_html%
    phone: %phone_html%
    fax: %fax_html%
    web: %website_html%
';
```

would result in the following Roundcube identities after the user login:

[![Image of resulting Roundcube user identities displayed in the web UI of the elastic skin](./doc/images/roundcube-user-identities-01.png)](./doc/images/roundcube-user-identities-01.png)

Installation
------------

[](#installation)

### Installation using Composer

[](#installation-using-composer)

The following command installs the [plugin package](https://packagist.org/packages/foundata/identity_from_directory) via [Composer](https://getcomposer.org/download/) into `plugins/identity_from_directory`:

```
php composer.phar require --update-no-dev -o "foundata/identity_from_directory:*"
```

If you want to use the current development version from Git, use `-o "foundata/identity_from_directory:dev-main"`. Please confirm with `y` when Composer asks you whether you want to enable the plugin in the Roundcube configuration. Alternatively, add `identity_from_directory` to Roundcube's `$config['plugins']` array by hand.

You can now [configure](#configuration) the plugin.

### Installation from release tarball

[](#installation-from-release-tarball)

Download the latest [`identity_from_directory-vX.Y.Z.tar.gz` tarball](https://github.com/foundata/roundcube-plugin-identity-from-directory/releases) (do not use the "Source code" archives Github creates automatically for each release). Extract it into `plugins/`, all files have to be in `plugins/identity_from_directory/` afterwards.

Useful snippet if you have got a shell available on your target server:

```
# set Rouncube's installation path, adapt if needed
roundcube_install_dir="/var/lib/roundcube"

# get version number of the latest release
version="$(curl -s -L https://api.github.com/repos/foundata/roundcube-plugin-identity-from-directory/releases/latest | jq -r '.tag_name' | sed -e 's/^v//g')"
printf '%s\n' "${version}"

# download
curl -L "https://github.com/foundata/roundcube-plugin-identity-from-directory/releases/download/v${version}/identity_from_directory-v${version}.tar.gz" \
  > "/tmp/identity_from_directory.tar.gz"

# extract and cleanup
cd "${roundcube_install_dir}/plugins" && tar -xzvf "/tmp/identity_from_directory.tar.gz" && rm "/tmp/identity_from_directory.tar.gz"
```

[Configure](#configuration) the plugin and add `identity_from_directory` to Roundcube's `$config['plugins']` array to enable it.

Updating
--------

[](#updating)

### Update using Composer

[](#update-using-composer)

The following command updates the [plugin package](https://packagist.org/packages/foundata/identity_from_directory) via [Composer](https://getcomposer.org/download/):

```
php composer.phar update --no-dev -o "foundata/identity_from_directory:*"`
```

### Update from release tarball

[](#update-from-release-tarball)

Updating is as simple as overwriting the existing files. Just follow the [installation instructions](#installation) again to get the newest release. This should be a low-risk operation as there are no database schema changes performed by this plugin and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). The [changelog](./CHANGELOG.md) will inform you of any manual actions required during an upgrade, typically only necessary for major version increments.

Configuration
-------------

[](#configuration)

- Copy the template [`config.inc.php.dist`](./config.inc.php.dist) to `config.inc.php` (Composer may already have done this for you)
- Now edit `plugins/identity_from_directory/config.inc.php` as you need. The [inline comments](./config.inc.php.dist) describe every config value in detail.

Some additional notes:

- All **plugin actions are only triggered during a user's login**. So logout and login again to test a new configuration.
- This plugin is technically **compatible with all values of Roundcube's `$config['identities_level']`** config option. However, a value of `1` (user can edit all params but not the email address as well as add or delete identities in the UI) or `3` (user can edit all params but not the email address and cannot add or delete identities in the UI) makes most sense.
- Set `$config['identity_from_directory_deleteunmanaged'] = true` if you want to **delete propably unwanted identities automatically**.
- Set `$config['identity_from_directory_handle_proxyaddresses'] = true` to **support searching for alias addresses in Active Directory's `proxyAddresses` field**. It may contain a CSV string like `smtp:foo@exmaple.com,smtp:bar@example.net`.

Compatibility
-------------

[](#compatibility)

- Roundcube 1.6 or higher.
- PHP 7.4 or higher.
- No special database requirements. This plugin does not adapt the database schema and is using Roundcube's built-in actions and hooks to handle the identity data.

The plugin may work with older versions then listed above, but this is not tested nor supported. We recommend using the latest stable Roundcube version and PHP 8.x, which the plugin is most tested with.

Licensing, copyright
--------------------

[](#licensing-copyright)

Copyright (c) 2024, foundata GmbH ()

This project is licensed under the GNU General Public License v3.0 or later (SPDX-License-Identifier: `GPL-3.0-or-later`), see [`LICENSES/GPL-3.0-or-later.txt`](LICENSES/GPL-3.0-or-later.txt) for the full text.

The [`REUSE.toml`](REUSE.toml) file provides detailed licensing and copyright information in a human- and machine-readable format. This includes parts that may be subject to different licensing or usage terms, such as third-party components. The repository conforms to the [REUSE specification](https://reuse.software/spec/). You can use [`reuse spdx`](https://reuse.readthedocs.io/en/latest/readme.html#cli) to create a [SPDX software bill of materials (SBOM)](https://en.wikipedia.org/wiki/Software_Package_Data_Exchange).

[![REUSE status](https://camo.githubusercontent.com/cca559cea7cbdd66621a3645ee943a91ab0da32291b11392cd17c9fb2a8983db/68747470733a2f2f6170692e72657573652e736f6674776172652f62616467652f6769746875622e636f6d2f666f756e646174612f726f756e64637562652d706c7567696e2d6964656e746974792d66726f6d2d6469726563746f7279)](https://api.reuse.software/info/github.com/foundata/roundcube-plugin-identity-from-directory)

Author information
------------------

[](#author-information)

This project was created and is maintained by [foundata](https://foundata.com/). If you like it, you might [buy them a coffee](https://buy-me-a.coffee/roundcube-plugin-identity-from-directory/). The plugin was heavily inspired by the [`new_user_identity` plugin](https://github.com/roundcube/roundcubemail/tree/master/plugins/new_user_identity).

###  Health Score

31

—

LowBetter than 66% of packages

Maintenance26

Infrequent updates — may be unmaintained

Popularity25

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity52

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~6 days

Total

8

Last Release

780d ago

Major Versions

v1.1.1 → 2.0.02024-04-28

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/5237636?v=4)[foundata GmbH](/maintainers/foundata)[@foundata](https://github.com/foundata)

---

Top Contributors

[![andreashaerter](https://avatars.githubusercontent.com/u/228611?v=4)](https://github.com/andreashaerter "andreashaerter (67 commits)")

---

Tags

active-directoryidentityldaproundcuberoundcube-pluginsignaturessignatureidentityldapactive directorycontactsaddressbook

### Embed Badge

![Health badge](/badges/foundata-identity-from-directory/health.svg)

```
[![Health](https://phpackages.com/badges/foundata-identity-from-directory/health.svg)](https://phpackages.com/packages/foundata-identity-from-directory)
```

###  Alternatives

[edvlerblog/yii2-adldap-module

yii2 Active Directory implementation (wrapper for Adldap2)

49233.4k](/packages/edvlerblog-yii2-adldap-module)[causal/ig_ldap_sso_auth

This extension provides LDAP support for TYPO3 by delegating the authentication of frontend and/or backend users to the centrally-managed directory of your organization. It fully supports OpenLDAP and Active Directory and is capable of connecting securely to the authentication server using either TLS or SSL (ldaps://). In case of use in an intranet environment, this extension is a perfect match since it natively brings Single Sign-On (SSO) capability to TYPO3 without any complex configuration.

33394.1k1](/packages/causal-ig-ldap-sso-auth)[ldaptools/ldaptools-bundle

Provides easy LDAP integration for Symfony via LdapTools.

50162.5k](/packages/ldaptools-ldaptools-bundle)[toteph42/identity_switch

This plugin allows users to switch between different identities (and check for new mails) in a single Roundcube session.

221.5k](/packages/toteph42-identity-switch)[chrmorandi/yii2-ldap

Ldap

1454.3k](/packages/chrmorandi-yii2-ldap)[riper/security-active_directory

This is a bundle to allow authentication into symfony &gt;= 2.6 by an Active directory

163.7k](/packages/riper-security-active-directory)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
