Сохранить сеанс LDAP


В PHP, скажем, у меня есть подключение LDAP на странице 1:

$ldapconn = ldap_connect($ldapserver);
if ($ldapconn) {
      // binding to ldap server
      $ldapbind = ldap_bind($ldapconn, $ldaprdn, $ldappass);
}
// do stuff here

Предполагая, что все идет хорошо, и я действительно могу что-то делать, как я могу сохранить эту привязку, чтобы, когда пользователь нажимает на 2-ю страницу, мне не нужно снова выполнять ldap_bind, используя их имя пользователя/пароль. По сути, я не хочу хранить пароль в сеансе, если этого можно избежать в целях безопасности, но я хотел бы сохранить соединение, чтобы я мог повторно использовать его на других страницах.

Author: Aram Papazian, 2012-11-16

3 answers

PHP LDAP не поддерживает постоянные соединения. В зависимости от того, какие запросы LDAP вы выполняете и как часто, вы всегда можете настроить базу данных, в которой имя пользователя/пароль будут храниться в зашифрованном состоянии, а затем сохранить идентификатор этой записи в сеансе ( не рекомендуется хранить имена пользователей/пароли ). Аналогично тому, что ответили здесь. Возможно, если вы расскажете подробнее о том, что вы пытаетесь сделать, это поможет нам направить вас в лучшем направлении относительно того, как этого достичь. Если это просто для проверки входа в систему, а затем, как только они будут проверены по LDAP, вы можете указать значение в сеансе, которое говорит, что они проверены.

 2
Author: jmgardn2, 2017-05-23 12:04:05

Альтернативным решением было бы вместо повторной проверки, вошли ли они в систему, создать файл cookie или сеанс с некоторой строкой, которая сообщает вам, что пользователь вошел в систему.

Затем на новых страницах просто проверьте, существует ли этот сеанс. Добавьте время ожидания, чтобы срок действия зарегистрированного файла cookie истек, если он не был обновлен, скажем, через 10 минут.

 0
Author: crowebird, 2012-11-16 19:17:55

Что я делал в прошлом, так это то, что если у вас есть контроль над сервером LDAP, у пользователя "запрос" есть только права на чтение. Вы сохраняете это как глобальное в файле конфигурации или базе данных и выполняете всю привязку с этой учетной записью в любое время, когда вам нужно выполнить простые запросы, и используете только имя пользователя и пароль при первоначальной аутентификации.

 0
Author: projectxmatt, 2012-11-16 19:24:28