FreeIPA サーバーをセットアップしました。ユーザーが最初に作成されたときにパスワードが期限切れになるという問題に直面しています。したがって、新しいユーザーは、最初にログインするときに、ここで定義されているパスワードを常に設定する必要があります。しかし、私はこの機能を望んでいません。
このライブラリを使用して、FreeIPA でユーザーを作成または追加しています。
だから、私はこのようにFreeIPAに接続します-
private function getIPA()
{
$host = env('FREEIPA_HOST', 'cloud-host-ipa.com');
$certificate = database_path(env('FREEIPA_CERTIFICATE', 'ca.crt'));
try {
return new \FreeIPA\APIAccess\Main($host, $certificate);
} catch (Exception $e) {
throw new \ErrorException("Error {$e->getCode()}: {$e->getMessage()}");
return false;
}
}
private function getIPAConnection() //Ged authinticated admin IPA connection
{
$ipa = $this->getIPA();
try {
$auth = $ipa->connection()->authenticate(env('FREEIPA_ADMIN_NAME', 'oc-ipa-connector'), env('FREEIPA_ADMIN_PASS', 'ADMIN_PASS'));
if ($auth) {
return $ipa;
} else {
$auth_info = $ipa->connection()->getAuthenticationInfo();
$auth_info = implode(' ', $auth_info);
throw new \ErrorException("\nLogin Failed : {$auth_info}");
//return false;
}
} catch (Exception $e) {
throw new \ErrorException("\nError {$e->getCode()}: {$e->getMessage()}");
//return false;
}
}
次に、このようにユーザーを追加します-
$ipa = $this->getIPAConnection();
try {
$new_user_data = array(
'givenname' => $givenname,
'sn' => $sn,
'uid' => $uid,
//'userpassword' => $_POST["userpassword"],
'mail' => $mail,
'mobile' => $phone
);
$add_user = $ipa->user()->add($new_user_data);
if ($add_user) {
return true;
}
} catch (Exception $e) {
throw new \ErrorException("Error {$e->getCode()}: {$e->getMessage()}");
return false;
}
このコードは正常に機能し、ユーザーが追加されます。
次に、このコードでパスワードを設定しています-
$ipa = $this->getIPAConnection();
try {
$user_info = $ipa->user()->get($uid);
if($user_info != false)
{
try {
$new_user_data = array(
'userpassword' => $password,
);
$mod_user = $ipa->user()->modify($uid, $new_user_data);
if ($mod_user) {
return true;
}
else
{
return false;
}
} catch (Exception $e) {
throw new \ErrorException("Error {$e->getCode()}: {$e->getMessage()}");
}
}
} catch (Exception $e) {
throw new \ErrorException("Error {$e->getCode()}: {$e->getMessage()}");
}
パスワードもバッチリ設定。ただし、設定したパスワードは設定直後は自動的に失効します。
ユーザーが少なくとも 1 週間はこのパスワードを保持するようにします。したがって、この機能を無効にしたいと思います。実用的な方法はありますか?
再
回避策を提供するために FreeIPA でこの問題を作成しましたが、問題はクローズされ、「クローズド: 修正されません」とマークされています。それで、回避策があるのだろうか?