PHPでLDAP認証を行う

2013年10月1日

自分がPHPで作成するWeb系システムは今までWebシステム毎のアカウントを作成してましたので、今回からLDAP(ActiveDirectory)で認証を行おうと思いました。PHPとLDAPの連携は技術的には今更ですがw

プログラムはあまり深く考えて作ってないのですが、これを利用して応用してみてください。
認証が成功すると『認証成功』と出ます。
ちなみに、ファイルはindex.phpとして作っておりますので、別名で行う場合は、「form action=""」部分を変更してください。


<?php

$ldap_host = "DC1"; // ドメインコントローラーを指定します
$ldap_port = "389"; // ポートを指定します
$ldap_domain = "@workdomain"; // @以降にドメイン名を指定します。実際の認証の際には、この文字列がユーザー名と結合されます。

$user = $_POST["user"];
$pass = $_POST["pass"];
$user = $user.$ldap_domain;

$ldap_conn = ldap_connect($ldap_host, $ldap_port)
or die("サーバーに接続できません");

if($ldap_conn){
$ldap_bind = ldap_bind($ldap_conn, "$user","$pass");
if($ldap_bind){
echo "認証成功";
}else{
echo "認証失敗";
}
}else{
echo "サーバーに接続できません";
}
}
?>

<form action="index.php" method="post">
USER:<input type="text" name="user"/><br/>
PASS:<input type="password" name="pass" /><br/>
<input type="submit"/>
</form>