ホームページ  >  記事  >  バックエンド開発  >  PHP操作AD、adLDAPクラスAPIの詳細説明とサンプル_PHPチュートリアル

PHP操作AD、adLDAPクラスAPIの詳細説明とサンプル_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:45:581036ブラウズ

この記事ではPHPでADを操作する方法を簡単に説明します
ツールADLDAP.php
ダウンロード場所 http://adldap.sourceforge.net/download.php
API (以下は http://adldap.sourceforge.net からのものです。翻訳レベルは限られています。不正確な点がある場合は修正してください)
constructor($options=array())//コンストラクター
構成変数を使用してクラス内の AD 設定を指定することも、クラスの呼び出し時に $option 配列を指定してオーバーライドすることもできます。
呼び出しメソッドは $object = new adLDAP($options) のようになります。 $options は、次の 1 つ以上のキーで構成される配列です

アカウントサフィックス
デフォルト: 「@mydomain.local」
完全なドメイン アカウント サフィックス
ベースDN
デフォルト: 「DC=マイドメイン、DC=ローカル」
ドメインのベース dn。一般に、ベース dn はアカウントのサフィックスと同じですが、「DC=」という接頭辞が付けられ、Active Directory ユーザーとコンピューターの拡張子に配置されます
。 展示会の属性
認証されたユーザーが正常であるにもかかわらず検索できない場合は、通常、間違ったbase_dnが指定されていることが原因です

ドメインコントローラー
デフォルト: 配列 (“dc01.mydomain.local”)
ドメイン コントローラーの配列。このクラスで複数のコントローラーを介してクエリのバランスをとりたい場合は、このクラスは Balance
のみを実装しているため、到達できないドメイン コントローラーにリクエストを送信することを覚えておいてください。 耐障害性なし
.

広告ユーザー名
デフォルト: NULL
デフォルトでは、adLDAP は認証されたユーザー アカウントの権限を使用してクエリを実行します。認可操作を実行するために、より高い権限を持つユーザー アカウントを指定できます。
広告パスワード
デフォルト: NULL
ad_username に対応するパスワード。

real_primarygroup

「ドメイン ユーザー」経由でプライマリ グループをオーバーライドします

use_ssl

デフォルト: false
adLDAP は SSL 経由で LDAP を使用して、パスワードの変更などの追加機能を提供できます。このオプションを選択すると、ドメイン コントローラーと WEB サーバーの両方で、対応するオプションを設定する必要があります。詳細については、SSL メソッドを参照してください。 LDAP オプション

再帰的グループ
デフォルト: true
グループメンバーの再帰クエリ
たとえば、ユーザー Fred はグループ「Business Unit」のメンバーであり、「Business Unit」はグループ「Department」のメンバーであり、「Department」はグループ「Company」のメンバーです
user_ingroup("Fred","Company") は、アイテムがオンになっている場合は true を返し、それ以外の場合は false を返します
------------------------主な操作方法は以下の通り
認証($username,$password,$prevent_rebind=false)
ドメインコントローラーユーザーのユーザー名/パスワードを識別します

group_add_group($parent,$child)
親グループにサブグループを追加し、true または false を返します

group_add_user($group,$username)
ユーザーをグループに追加し、true または false を返します

group_create($attributes)
指定された属性を持つグループを作成し、true または false を返します

属性要求メモ

グループ名 *

コンテナ*
説明

group_del_group($parent,$child)

親グループから子グループを削除し、true または false を返します


group_del_user($group,$users)

グループからユーザーを削除し、true または false を返します


グループ情報($グループ名,$フィールド=NULL)

指定されたグループに関する情報の配列を返します。グループ名は大文字と小文字が区別されます

。 デフォルトのファイルには、メンバー、メンバー、説明、識別名、オブジェクトカテゴリ、samaccountname が含まれています

user_create($attributes)

ユーザーを作成し、操作が成功または失敗したときに true または false を返します


属性要求メモ

ユーザー名 *

名 *
姓 *
メール*
コンテナ * ユーザーを追加する AD 内のフォルダー。
住所市
住所コード
住所私書箱
住所_州
住所番地
change_password 0 の場合、ユーザーは次回ログイン時にパスワードを変更する必要はありません。1 の場合、次回ログイン時にパスワードを変更する必要があります。 company 会社名
部門
説明
表示名
メールアドレス、交換不可メールボックス
有効 0 は無効を意味します 1 は有効を意味します
アカウントの有効期限が切れます (UNIX タイムスタンプ)。
ファーストネーム
ホームディレクトリ
ホームドライブ
イニシャル
logon_name ログイン名は他のユーザー名とは異なります。
マネージャー
オフィス
パスワード パスワードは SSL 経由でのみ設定できます。また、ドメインのパスワード ポリシーにも適合する必要があります。
プロフィールパス
スクリプトパス

タイトル
電話
ウェブページ

user_delete($ユーザー名)
ユーザーを削除し、true または false を返します

user_groups($username,$recursive=NULL)
ユーザーが所属するグループの情報を返します

$recursive が true の場合、グループ リストが再帰的に返されます。

user_info($ユーザー名,$フィールド=NULL)
指定されたユーザーの情報配列を返します。$fields は配列である必要があります
。 デフォルトのフィールドは、samaccountname、mail、memberof、部門、表示名、電話番号、primarygroupid です
利用可能なすべての情報を表示するには、$fields を "*" に設定し、この関数を呼び出します
この関数は、現在の認証アカウントが管理者でない限り、このコンテナーの管理者でない限り、別のユーザーの「memberof」ドメインをクエリすることはできません

user_ingroup($ユーザー名,$グループ,$再帰=NULL)
ユーザーがグループに属しているかどうか、true または false を返します
user_info() 関数と同様に、この関数は、現在認証されているユーザーが管理者である場合にのみ有効な結果を返します

user_modify($ユーザー名,$属性)
ユーザー属性を変更し、true または false を返します

user_password($ユーザー名,$パスワード)
指定したユーザーのパスワードを設定します。ldaps による構成が必要です。

コンピューター情報($コンピューター名,$フィールド=NULL)
指定されたコンピューターの詳細を返します。

all_users($include_desc = false, $search = "*", $sorted = true)
AD 内のすべてのユーザーのリストを返しますが、大きなディレクトリでは機能しない可能性があります
all_groups($include_desc = false,$search = "*", $sorted = true)
AD 内のすべてのグループのリストを返しますが、大きなディレクトリでは機能しない可能性があります
サンプル:
ログイン
「adLDAP.php」を含めます
$config['account_suffix'] = '@xxx.com';//ドメインコントローラーのサフィックス
$config['adserver'] = array('192.168.1.10','192.168.1.1');//ドメイン コントローラー、array('192.168.1.10') が 1 つしかない場合
$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 "ログイン成功";
}
それ以外
{
echo "ログインに失敗しました";
}
?>
すべてのユーザーをリストします
echo "すべてのユーザー
";
foreach($adldap->all_users() as $val)
{
echo $val."
";
}
?>
すべてのグループをリストします
echo "グループ
";
foreach($adldap->all_groups() as $val)
{
echo $val."
";
}
?>
特定のコンピューターに関する情報を印刷します
print_r($adldap->user_info("wang"));
?>
ユーザーを作成する
if ($adldap->user_create(array('username' => 'tonix','firstname' => 'firstname','surname' => "surname",'email' => 'e@ 123.com','コンテナ' =>
'コンテナ')))
{
「OK」をエコーし​​ます;
}
それ以外
{
エコー「エラー」;
}
?>
グループを作成する
if ($adldap->group_create("group_name=test,container=www"))
{
「OK」をエコーし​​ます;
}
それ以外
{
エコー「エラー」;
}
?>

著者「フライングライフ」


http://www.bkjia.com/PHPjc/478629.htmlwww.bkjia.com本当http://www.bkjia.com/PHPjc/478629.html技術記事この記事では、PHP を通じて AD を操作するためのツール ADLDAP.php について簡単に説明します。ダウンロード場所は http://adldap.sourceforge.net/download.php API です (以下は http://adldap.sourceforge.net からのものです)。レベルは限られています。不正確な点がある場合は ..
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。