Download the PHP package edvlerblog/yii2-adldap-module without Composer
On this page you can find all versions of the php package edvlerblog/yii2-adldap-module. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download edvlerblog/yii2-adldap-module
More information about edvlerblog/yii2-adldap-module
Files in edvlerblog/yii2-adldap-module
Package yii2-adldap-module
Short Description yii2 Active Directory implementation (wrapper for Adldap2)
License BSD-3-Clause
Homepage https://github.com/edvler/yii2-adldap-module
Informations about the package yii2-adldap-module
yii2-adldap-module v6 (wrapper for Adldap2 v10)
Yii2 extension for Adldap2 (https://packagist.org/packages/adldap2/adldap2)
- Query Active Directory users, groups, computers, organizational units, ...
- RBAC user model
- Create/Update/Edit Active Directory objects
- Extensive test suite
Please read this if you upgrade from older versions to v5 or v6
Adldap2 changed option keys in version 9. If you upgrade from a previous version you have to change your config/web.conf (basic template) OR common/config/main.conf (advanced template) and your config/console.conf (basic template) OR console/config/main.conf (advanced template).
For all Adldap 2 options see https://adldap2.github.io/Adldap2/#/setup?id=array-example-with-all-options.
The mandatory changed options are:
- admin_username: renamed to username
- admin_password: renamed to password
- domain_controllers: renamed to hosts
If you configure your username append your domain with @domain.name. Otherwise you maybe get Adldap\Auth\Bindexception: Invalid Credentials.
See Configuration section for example.
Howto contribute or support the extension
As you as delevoper know, it's not only source code that matters. The best code is worthless if no documentation exists. My focus is to provide a comprehensive documentation for this extension. This should help YOU to do your task fast and without struggle. Updating this extension take days starting with programming, writing the docs and write test for the code and the docs.
I'am glad to see that many persons use the plugin!
If you want to help you can do the following:
- Extend or correct the docs and create a Pull-Request
- Fix or extend the plugins source code and create a Pull-Request
- Add further tests and create a Pull-Request
- Open a issue for questions or problems
If this project help you reduce time to develop, you can spend me a cup of coffee :)
List of content
-
Overview
- Version
- Functions of the extension
-
Installation and configuration
- Installation
- Configuration
-
Usage Methods
- Method 1 Query informations
- Method 2 RBAC user model
- Method 3 Create and modify objects
- For developers
- Testing
Version
Current Version: yii2-adldap-module Releases beginning with tag v6.. are reserved for Adldap2 v10.* The corresponding Adldap2 repository is https://github.com/Adldap2/Adldap2/tree/master
Keep this in mind if you are browsing the GitHub Repository of Adldap2
Functions of the extension
It has been a long way since 29. Jan 2014, many functions has been added. I noticed for myself that a short overview might help everyone to see whats possible.
The simple Method 1
- Query only informations from Active Directory.
The deep integration with Method 2
- Sign in with a Active Directory User is possible without doing anything in yii2. The only action needed is creating a Active Directory User and add it to a group in Active Directory.
- Full support of the RBAC-concept from yii2
- Default is to login with the sAMAccountName Edvlerblog\Adldap2\model\UserDbLdap.php::findByAttribute($attribute,$searchValue).
- Default is, that on login the Active Directory Account status and the group assignments are checked. Based on the results the login is possible or not.
- You can access every Active Directory attribute of the user. Method 2
- This yii2-extension is highly configurable.
Create, modify or delete Active Directory objects with Method 3: docs/CREATE_MODIFY_DELETE_OBJECTS.md
- Thanks to Adldap2, it's easy to create, modify or delete objects.
How to start??
- My suggestion is that you should start with Method 1. Start with a configration as described below and do some simple querys. If you see how it works, you can try Method 2.
If you have some questions...
- Please see the the separeted howto's for each Method.
- Method 1: docs/USAGE_WITHOUT_USER_MODEL.md
- Method 2: docs/USAGE_WITH_USER_MODEL.md
- Method 3: docs/CREATE_MODIFY_DELETE_OBJECTS.md
- Open a issue or a pull request.
Installation
The preferred way to install this extension is through Composer.
Either run
or add
to the require section of your composer.json
Configuration
Add this code in your components section of the application configuration (eg. config/main.php for advanced template or config/web.php for basic template):
See official documentation for all config options.
https://adldap2.github.io/Adldap2/#/setup?id=options
Usage - Method 1, Method 2 and Method 3
Usage method 1: Simple usage without a user model
If you are need to query some informations for a user from the Active Directory this would be best way. No additional configuration is needed and the only thing to do is to add the configuration as described above to your components section.
You only use the extension in the regular Yii2 style:
Further documentation with examples: docs/USAGE_WITHOUT_USER_MODEL.md
Modify of attributes is also possible. See Method 3.
Usage method 2: Deep integration into the yii2 framework with a user model
The second method gives you the ability to authenticate users against Active Directory with a special user model. It intgerates very well into the RBAC security concept of yii2 (http://www.yiiframework.com/doc-2.0/guide-security-authorization.html#rbac).
You can use all features of the yii2 user integration.
Some Examples:
If you use the Edvlerblog\Adldap2\model\UserDbLdap.php class.
For example imagine the following:
- You create a user in Active Directory and assign this user to a group starting with yii2_ (e.g. yii2_example_group).
- In yii2 a role with the same name exists (yii2_example_group). The role has some permissions assigned.
If you try to login with your new user, the user is created automatically in yii2 and role yii2_example_group is assigned automatically on login.
For the human this is transparent. The only feedback to the human is a successfull login and that it is possible to use the functions which he has permissions to access.
Further documentation with setup and examples: docs/USAGE_WITH_USER_MODEL.md
Usage method 3: Create, modify and delete Active Directory objects
Adldap2 offers the option to create, modify and delete Active Directory objects. See https://adldap2.github.io/Adldap2/#/models/model for documentation.
Prequesits
- To create or modify attributes of a Active Directory object use a bind user in your configuration with rights to change the attributes of the objects (a dirty but very discourraged way is to add the bind user to the domain-admins group)!
- For some actions, like change the password, you need a SSL/TLS connection. See configuration for further hints.
One example: Modify the displayname of a user
Further documentation: docs/CREATE_MODIFY_DELETE_OBJECTS.md
Testing
This section is only for developers, that may extend the functionality.
These test classes exists:
- tests/InitialTest.php: Delete, create and modify users and groups and check results
- tests/UserModelTest.php: Test the src/model/UserDbLdap.php
For the UserModelTest test it's neccessary to setup the deep integration as described here: docs/USAGE_WITH_USER_MODEL.md
Usage:
- Use the phpunit from yii2. Its placed in vendor\bin\phpunit.
- Create the config class tests\base\TestConfig.php from the template tests\base\TestConfigSample.php.
Start the tests in windows with: