Active Directory kullanarak Symfony kullanıcı doğrulama

2 Cevap php

Active Directory kullanarak symfony uygulamalar kullanıcıların kimliğini doğrulamak için bir yolu var mı? Bazı belgelere işaret misiniz?

edit

Ne i lüzum benim uygulamada şeffaf bir giriş olmasıdır. Kullanıcı Windows oturum anda doğrular, sonra tüm uygulamaları tekrar domain \ kullanıcı adı ve şifre sorulmadan aynı kimlik bilgileriyle erişilebilir olmalıdır.

Ben basit bir php komut dosyası aşağıdaki çalıştı:

if (!isset($_SERVER['PHP_AUTH_USER'])) {
  header('WWW-Authenticate: Basic realm="my realm"');
  header('HTTP/1.0 401 Unauthorized');
  exit;
} else {
  echo "<p>Hello {$_SERVER['PHP_AUTH_USER']}.</p>";
  echo "<p>You entered {$_SERVER['PHP_AUTH_PW']} as your password.</p>";
}

ama sonra kimlik doğrulama formu attı olsun. Header pencereler oturum açma sırasında kullanılan kimlik bilgilerini geçirmek için herhangi bir yolu var mı?

Thanks, Radu.

2 Cevap

Sen sfDoctrineGuardPlugin (sen Doktrini kullanıyorsanız) için çağrılabilir kendi kimlik yazarak bunu yapabilirsiniz. Ben burada 'README eklentileri teklif edeceğiz:

Check the user password with an external method

If you don't want to store the password in the database because you already have a LDAP server, a .htaccess file or if you store your passwords in another table, you can provide your own checkPassword callable (static method or function) in app.yml:

all:
  sf_guard_plugin:
    check_password_callable: [MyLDAPClass, checkPassword]

When symfony will call the $this->getUser()->checkPassword() method, it will call your method or function. Your function must takes 2 parameters, the first one is the username and the second one is the password. It must returns true or false. Here is a template for such a function:

function checkLDAPPassword($username, $password)
{
  $user = LDAP::getUser($username);
  if ($user->checkPassword($password))
  {
    return true;
  }
  else
  {
    return false;
  }
}

Sen bhLDAPAuthPlugin bir deneyin verebilir?