Вопрос по php, authentication, office365, ldap – Использование PHP и LDAP для подключения к Microsoft Office 365

4

Компания, в которой я работаю, перевела свой локальный обмен на размещенное решение Office 365. Мы находимся в процессе создания нескольких внешних (для нашей локальной сети) размещенных веб-сайтов и хотели бы использовать аутентификацию LDAP, чтобы опираться на нашу существующую размещенную базу пользователей.

Может кто-нибудь объяснить или указать на некоторую документацию способа использования PHP и LDAP для подключения к удаленно размещенной AD (в данном случае Office 365) и аутентификации пользователей на нем?

Спасибо за ваше время и усилия.

Я бы оченьhope что удаленный каталог не доступен напрямую через Интернет. У вас есть VPN, настроенный на удаленный DC или что-то? DaveRandom
Привет, Дейв, наверное, я не совсем ясно дал понять. Все примеры PHP / LDAP, которые я могу найти, состоят из сценария PHP на том же сервере, что и DC. Меня интересует использование PHP / LDAP с веб-хоста для подключения к размещенному Office 365 (размещенному в Microsoft) и проверки подлинности учетных данных пользователя. Josh Ripley
Да, я почти уверен, что это невозможно. Я ни в коем случае не являюсь экспертом по Office 365 (на самом деле совсем наоборот), но если абстрагироваться от этого уровня, для M $ будет слишком большой риск для безопасности, чтобы открыть сервер LDAP для общедоступного Интернета, подобного этому. Я был быvery удивлен, если они позволят это. DaveRandom

Ваш Ответ

2   ответа
4

Это возможно. Microsoft недавно выпустила предварительный просмотр для своихWindows Azure облачная платформа, которая функционирует как многие другие сервисы облачных вычислений (Амазонка, Коробка пагоды, Heroku). Наряду с этим новым продуктом у разработанных приложений появилась возможность использовать единый вход с использованием учетных данных учетной записи Office365.

Вот несколько статей, посвященных процессу PHP:

How to implement single sign-on with Windows Azure Active Directory - PHP Application Get Started with Windows Azure Active Directory

Заметки:

Example one has its source in a git repo. This repo does not include a referenced .csproj file, so you will have to build the project with the included 3 source files. If I can do it, you can do it :). It should also be noted that after Office365 authentication is complete and reroutes back to your app, it expects the return URL to be HTTPS, if it is not you will get an error (or at least I did).
выше ссылка 404;link тщательный и расширяет оригинал
-2

используя php. Это базовая аутентификация, убедитесь, что ваш DN правильный, когда вы пытаетесь аутентифицироваться.

      define("LDAPSERVER","192.168.0.1"); // your server
      define("LDAPBINDDN","cn=Worker,dc=mlonline,");
      define("LDAPBINDPW","FakePassword");


        $ds=ldap_connect(LDAPSERVER);
        if($ds){
            try{
                    $bind=ldap_bind($ds,LDAPBINDDN,LDAPBINDPW);
                    if($bind){
                            //yeah authenticated
                    }else{
                        throw new Exception('Cannot Connect to server Authentication Failed');
                    }

            }catch(Exception $e){
                throw $e;
            }
        }else{
           throw new Exception('Server Down');
        }
LDAPSERVER - это местоположение вашего сервера или его адрес, а для LDAPBINDDN прочитайте этоldapman.org/articles/intro_to_ldap.html как вам нужно знать, где ваш пользователь в первую очередь находится в активном каталоге
Спасибо за ответ ... Посмотрев на ваш пример, у меня возникнет вопрос: как определить переменные LDAPSERVER и LDAPBINDDN для подключения к серверу Office 365? Josh Ripley
@ user1415567 Мне также интересно, что такое "мой сервер". должен быть. У меня нет сервера, я с Office365. Для каждого аккаунта есть почтовые серверы для xyz.mail.protection.outlook.com и для веб-сайта xyz.sharepoint.com. Но это не будет одним из них, не так ли?

Похожие вопросы