Home Backend Development PHP Tutorial PHP operation AD, adLDAP class API detailed explanation and examples_PHP tutorial

PHP operation AD, adLDAP class API detailed explanation and examples_PHP tutorial

Jul 13, 2016 pm 05:45 PM
api php download and Example tool operate kind Detailed explanation pass

This article briefly describes how to operate AD through PHP
Tools ADLDAP.php
Download location http://adldap.sourceforge.net/download.php
API (the following is from http://adldap.sourceforge.net, the translation level is limited, please correct me if there are any inaccuracies)
constructor($options=array())//Constructor
You can specify the AD settings in the class through configuration variables, or they can be overridden by specifying the $option array when the class is called.
The calling method looks like $object = new adLDAP($options); $options is an array consisting of one or more of the following keys

account_suffix
Default: "@mydomain.local"
Full domain account suffix
base_dn
Default: “DC=mydomain,DC=local”
The base dn of the domain. Generally speaking, the base dn is the same as the account suffix, but is separated and prefixed with "DC=". The base dn can be located in the Active Directory Users and Computers MMC extensions
Exhibition attributes
If the authenticated user is normal but cannot search, it is generally because an incorrect base_dn
is specified.
domain_controllers
Default: array (“dc01.mydomain.local”)
Array of domain controllers. If you want this class to balance queries through multiple controllers, you can specify multiple controllers in this array. Remember that this class will send requests to an unreachable domain controller because it only implements Balance
No fault tolerance
.

ad_username
Default: NULL
By default, adLDAP will perform queries with the permissions of an authenticated user account. You can specify a user account with higher permissions to perform authorization operations

ad_password
Default: NULL
The corresponding password for ad_username.

real_primarygroup
Override primary group via "Domain Users"

use_ssl
Default: false
adLDAP can use LDAP through SSL to provide additional functions such as changing passwords. When selecting this option, both your domain controller and WEB server need to configure the corresponding options. Not only set it to true, please refer to the SSL method
for details. LDAP options

recursive_groups
Default: true
Recursive query group members
For example, user Fred is a member of the group "Business Unit", "Business Unit" is a member of the group "Department", and "Department" is a member of the group "Company"
user_ingroup("Fred","Company") returns true when the item is turned on, otherwise returns false
--------------------------The following main operation methods
authenticate($username,$password,$prevent_rebind=false)
Username/password to identify domain controller users

group_add_group($parent,$child)
Add a subgroup to the parent group, return true or false

group_add_user($group,$username)
Add a user to a group, return true or false

group_create($attributes)
Create a group with specified attributes, return true or false

Attribute Req Notes
group_name *
container *
description

group_del_group($parent,$child)
Delete the child group from the parent group, return true or false

group_del_user($group,$users)
Remove a user from a group, return true or false

group_info($group_name,$fields=NULL)
Returns an array of information about the specified group. Group names are case-sensitive
The default file contains member, memberof, description, distinguishedname, objectcategory, samaccountname

user_create($attributes)
Create a user, return true or false when the operation succeeds or fails

Attribute Req Notes
username *
firstname *
surname *
email *
container * The folder in AD to add the user to.
address_city
address_code
address_pobox
address_state
address_street
change_password If it is 0, the user does not need to change the password when logging in next time. If it is 1, the password must be changed when logging in next time
company Company name.
department
description
display_name
email email address, non-exchange mailbox
enabled 0 means disabled 1 means enabled
expires Account validity period (unix timestamp).
firstname
home_directory
home_drive
initials
logon_name The login name is different from other usernames.
manager
office
password The password can only be set over SSL. It must also meet the password policy for your domain.
profile_path
script_path
surname
title
telephone
web_page

user_delete($username)
Delete a user, return true or false

user_groups($username,$recursive=NULL)
Return the information of the group to which the user belongs

If $recursive is true, the group list will be returned recursively.

user_info($username,$fields=NULL)
Returns the information array of the specified user. $fields must be an array
The default fields are: samaccountname, mail, memberof, department, displayname, telephonenumber, primarygroupid
To view all available information, set $fields to "*" and call this function
This function will return a limited set. Unless the current authentication account is administrator, a user cannot query the "memberof" field of another user unless they are the administrator of this container

user_ingroup($username,$group,$recursive=NULL)
Whether the user belongs to the group, returns true or false
Like the user_info() function, this function will only return valid results when the current authenticated user is administrator

user_modify($username,$attributes)
Modify user attributes and return true or false

user_password($username,$password)
Set the password of the specified user. Requires configuration through ldaps.

computer_info($computer_name,$fields=NULL)
Returns detailed information for the specified computer.

all_users($include_desc = false, $search = "*", $sorted = true)
Returns the list of all users in AD, which may not work in large directories
all_groups($include_desc = false,$search = "*", $sorted = true)
Returns the list of all groups in AD, which may not work in large directories
Samples:
Login
include "adLDAP.php"
$config['account_suffix'] = '@xxx.com';//Domain controller suffix
$config['adserver'] = array('192.168.1.10','192.168.1.1');//Domain controller, if there is only one array('192.168.1.10')
$config['base_dn'] = 'cn=users,dc=xxx,dc=com';
$adldap =new adLDAP(array('domain_controllers'=>$config['adserver'],'account_suffix'=>$config['account_suffix'],'base_dn'=>$config
['base_dn'],'ad_username' => 'administrator','ad_password' => ''));
if($adldap)
{
echo "Login successful";
}
else
{
echo "Login failed";
}
?>
List all users
echo "All users
";
foreach($adldap->all_users() as $val)
{
echo $val."
";
}
?>
List all groups
echo "groups
";
foreach($adldap->all_groups() as $val)
{
echo $val."
";
}
?>
Print information about a certain computer
print_r($adldap->user_info("wang"));
?>
Create user
if ($adldap->user_create(array('username' => 'tonix','firstname' => 'firstname','surname' => "surname",'email' => 'e@ 123.com','container' =>
'container')))
{
echo "OK";
}
else
{
echo "error";
}
?>
Create group
if ($adldap->group_create("group_name=test,container=www"))
{
echo "OK";
}
else
{
echo "error";
}
?>

Author "Flying Life"

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/478629.htmlTechArticleThis article briefly describes how to operate AD through PHP tool ADLDAP.php download location http://adldap.sourceforge.net/download .php API (the following is from http://adldap.sourceforge.net, the translation level is limited, if there is anything wrong...
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: How To Unlock Everything In MyRise
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Explain the match expression (PHP 8 ) and how it differs from switch. Explain the match expression (PHP 8 ) and how it differs from switch. Apr 06, 2025 am 12:03 AM

In PHP8, match expressions are a new control structure that returns different results based on the value of the expression. 1) It is similar to a switch statement, but returns a value instead of an execution statement block. 2) The match expression is strictly compared (===), which improves security. 3) It avoids possible break omissions in switch statements and enhances the simplicity and readability of the code.

Does H5 page production require continuous maintenance? Does H5 page production require continuous maintenance? Apr 05, 2025 pm 11:27 PM

The H5 page needs to be maintained continuously, because of factors such as code vulnerabilities, browser compatibility, performance optimization, security updates and user experience improvements. Effective maintenance methods include establishing a complete testing system, using version control tools, regularly monitoring page performance, collecting user feedback and formulating maintenance plans.

What is Cross-Site Request Forgery (CSRF) and how do you implement CSRF protection in PHP? What is Cross-Site Request Forgery (CSRF) and how do you implement CSRF protection in PHP? Apr 07, 2025 am 12:02 AM

In PHP, you can effectively prevent CSRF attacks by using unpredictable tokens. Specific methods include: 1. Generate and embed CSRF tokens in the form; 2. Verify the validity of the token when processing the request.

Why are the purple slashed areas in the Flex layout mistakenly considered 'overflow space'? Why are the purple slashed areas in the Flex layout mistakenly considered 'overflow space'? Apr 05, 2025 pm 05:51 PM

Questions about purple slash areas in Flex layouts When using Flex layouts, you may encounter some confusing phenomena, such as in the developer tools (d...

Describe the purpose and usage of the ... (splat) operator in PHP function arguments and array unpacking. Describe the purpose and usage of the ... (splat) operator in PHP function arguments and array unpacking. Apr 06, 2025 am 12:07 AM

The... (splat) operator in PHP is used to unpack function parameters and arrays, improving code simplicity and efficiency. 1) Function parameter unpacking: Pass the array element as a parameter to the function. 2) Array unpacking: Unpack an array into another array or as a function parameter.

How can you prevent a class from being extended or a method from being overridden in PHP? (final keyword) How can you prevent a class from being extended or a method from being overridden in PHP? (final keyword) Apr 08, 2025 am 12:03 AM

In PHP, the final keyword is used to prevent classes from being inherited and methods being overwritten. 1) When marking the class as final, the class cannot be inherited. 2) When marking the method as final, the method cannot be rewritten by the subclass. Using final keywords ensures the stability and security of your code.

Why does negative margins not take effect in some cases? How to solve this problem? Why does negative margins not take effect in some cases? How to solve this problem? Apr 05, 2025 pm 10:18 PM

Why do negative margins not take effect in some cases? During programming, negative margins in CSS (negative...

Explain strict types (declare(strict_types=1);) in PHP. Explain strict types (declare(strict_types=1);) in PHP. Apr 07, 2025 am 12:05 AM

Strict types in PHP are enabled by adding declare(strict_types=1); at the top of the file. 1) It forces type checking of function parameters and return values ​​to prevent implicit type conversion. 2) Using strict types can improve the reliability and predictability of the code, reduce bugs, and improve maintainability and readability.

See all articles