Active Directory システムで「ユーザーはパスワードを変更する必要があります」というフラグが設定されている場合、ユーザーにパスワードを変更させる必要があります。
これは、AD Adminsitrator を介して adLDAP アクセスを許可すると機能します。
したがって、ユーザーがログインしようとすると、属性「pwdlastset」に、ユーザーがパスワードを変更する必要があることを示す値があるかどうかを確認します。はいの場合、私は彼を pw の更新ダイアログにリダイレクトします。
この解決策の問題は、ユーザーが無効な初期パスワードを入力すると、私も彼をリダイレクトすることです。私は彼を検証できないからです。属性「pwdlastet」を設定してユーザーをバインドしようとすると、常に「バインドできません」というエラーが返されます。
$adldap = new \adLDAP(array("base_dn" => $basedn, "account_suffix" => $accsuffix,"domain_controllers" => $dc,"admin_username" => $adminuser, "admin_password" => $adminpw));
//Get Requesting Users "pwdLastSet" Field over the Admin Account
$userToAuthInfo = $adldap->user()->info($name,"pwdlastset");
if($userToAuthInfo[0]["pwdlastset"][0] == 0)
{
//redirect user to pwd renew
}
else
{
//bind user and redirect to home
}
これを解決する方法を知っている人はいますか? pw を持つ別の属性が存在する場合は、それを要求して同じかどうかを確認できると思いました。しかし、私が間違っていなければ、そのような属性は存在しないと思います。