28

Вопрос по nginx, php – Как я могу реализовать единый вход (SSO) с помощью Microsoft AD для внутреннего приложения PHP?

Я смутно осознаю, что на компьютере, подключенном к домену, IE может быть предложено отправить несколько дополнительных заголовков, которые я мог бы использовать для автоматического входа в приложение. Я установил Apache на Windows-сервере с mod_php. Мне бы хотелось, чтобы пользователю не приходилось входить в систему, если это необходимо. Я нашел несколько ссылок, рассказывающих о модулях Kerberos и Apache.

http://www.onlamp.com/pub/a/onlamp/2003/09/11/kerberos.html?page=last https://metacpan.org/pod/Apache2::AuthenNTLM

Поскольку я работаю в Windows, оказалось, что установка модулей Perl или Apache является нетривиальной задачей. Но разве PHP уже не имеет доступа к заголовкам HTTP?

Я нашел это, но он не выполняет никакой аутентификации, он просто показывает, что PHP может читать заголовки NTLM. http://siphon9.net/loune/2007/10/simple-lightweight-ntlm-in-php/

Мне бы хотелось, чтобы мои пользователи просто указывали на приложение и автоматически проверяли их подлинность. Кто-нибудь имел опыт с этим или получил его на работу вообще?

UPDATE С момента первоначальной публикации этого вопроса мы изменили настройки на nginx и php-fcgi, которые все еще работают в Windows. Apache2 и php-cgi в Windows, вероятно, являются одной из самых медленных настроек, которые вы можете настроить в Windows. Похоже, что Apache все еще может понадобиться (он работает с php-fcgi), но я бы предпочел решение nginx.

Я также до сих пор не понимаю (и хотел бы получить образование), почему необходимы плагины HTTP-сервера, и у нас не может быть PHP-независимого решения для веб-сервера.

  • Error: User Rate Limit Exceeded

    от
  • Error: User Rate Limit Exceeded

    от reconbot
  • Error: User Rate Limit Exceeded

    от reconbot
  • Error: User Rate Limit Exceededadldap.sourceforge.net/wiki/doku.php?id=seamless_authenticationError: User Rate Limit Exceeded

    от reconbot
  • Error: User Rate Limit Exceeded

    от
  • Error: User Rate Limit Exceeded

    от reconbot
  • Есть ли что-то еще, что я могу добавить, чтобы улучшить этот вопрос?

    от reconbot
  • Это внутреннее приложение за брандмауэром?

    от Bob Aman
  • Да это внутренний

    от reconbot
5 ответов
  • 1

    У меня была похожая проблема

    которую мне нужно было решить для моей организации.

    Error: User Rate Limit ExceededadLDAP.

    Error: User Rate Limit Exceeded

  • 0

    Одним из вариантов для вас является использование CAS (центральная слу

    жба аутентификации).

    Error: User Rate Limit Exceeded

    Error: User Rate Limit ExceededError: User Rate Limit Exceeded

    Error: User Rate Limit Exceeded

  • 1

    Error: User Rate Limit Exceeded

  • 17

    Все, что вам нужно, это

    mod_auth_sspi Модуль Apache.

    Пример конфигурации:

    AuthType SSPI
    SSPIAuth On
    SSPIAuthoritative On
    SSPIDomain mydomain
    
    # Set this if you want to allow access with clients that do not support NTLM, or via proxy from outside. Don't forget to require SSL in this case!
    SSPIOfferBasic On
    
    # Set this if you have only one domain and don't want the MYDOMAIN\ prefix on each user name
    SSPIOmitDomain On
    
    # AD user names are case-insensitive, so use this for normalization if your application's user names are case-sensitive
    SSPIUsernameCase Lower
    AuthName "Some text to prompt for domain credentials"
    Require valid-user
    

    И не забывайте, что вы также можетеError: User Rate Limit Exceeded: Просто перейдите наabout:config, ищиnetwork.automatic-ntlm-auth.trusted-urisError: User Rate Limit Exceeded

  • 0

    Error: User Rate Limit Exceeded

    function EnableAuthentication()
    {
        $realm = "yoursite";
        header('WWW-Authenticate: Digest realm="'.$realm.'",qop="auth",nonce="'.uniqid().'",opaque="'.md5($realm).'"');
        header("HTTP/1,.1 401 Unauthorized"); 
        exit;
    }
    

    $winuser = $_SERVER["REMOTE_USER"];