2

У меня есть сайт на PHP и вы хотите аутентифицировать пользователей от Azure Active Directory. С ldap_connect и bind у меня нет проблем, чтобы сделать это с локальным AD-сервером в нашей компании.Аутентифицировать пользователей от Azure Active Directory от веб-приложения PHP

function checkADAccount($username, $password) 
{ 
    $adServer = "myADServer"; 
    $ldaprdn = 'myDomain' . "\\" . $username; 

    $ldap = ldap_connect($adServer); 

    ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, 3); 
    ldap_set_option($ldap, LDAP_OPT_REFERRALS, 0); 

    $bind = @ldap_bind($ldap, $ldaprdn, $password); 

    if ($bind) { 
     @ldap_close($ldap); // Verbindung schließen 
     return true; 
    } else { 
     return false; 
    } 
} 

Но мое приложение размещается на Amazon Web Services (AWS) и не в том же домене, поэтому я не могу использовать этот способ. С помощью ldap_connect и привяжите эти функции к локальному AD-серверу в нашей компании. Но мое приложение размещено в Amazon Web Services (AWS) и не находится в том же домене, поэтому я не могу использовать этот способ.
Я проверил graphapi с ClientId и ключом для моей компании от Azure. Поэтому я могу читать данные пользователей, но я не вижу возможности проверить комбинацию пользователей и паролей. Я только хочу проверить, существует ли пользователь с этим паролем, мне не нужно его читать.
Так что я попытался изменить LDAP-решение сверху, изменяя параметр Adserver и пользователя
$ldaprdn = 'sAMAccountname=' . $username . ',cn=users' . ',dc=myDomain,dc=com';

Но я allwaws получить: «Предупреждение: ldap_bind(): Не удается связать с сервером : Не удается связаться с сервером LDAP «. Я пробовал использовать несколько версий для adServer, но любой делитель связывает.
У вас есть идеи, где ошибка. Я предлагаю, что ldap_connect - это способ wron, espacially я не знаю, какой сервер-адрес является правильным и как я должен был указать ClientId и ключ.

ответ

1

В настоящее время Azure AD не поддерживает соединение LDAP. Он обеспечивает аутентификацию и авторизацию OAuth2. Вы можете обратиться к Authentication Scenarios for Azure AD для подробных сценариев Azure AD.

Чтобы выполнить проверку подлинности пользователей в своем домене, вы можете использовать этот code sample для реализации аутентификации через Azure AD.

В противном случае вы можете следовать Authorization Code Grant Flow создать свой собственный код для аутентификации ваших пользователей.

Любая дополнительная забота, пожалуйста, сообщите мне.

+0

Нужно делать то же самое, но я не вижу ничего в этом примере кода, который фактически аутентифицирует вход пользователей в Azure AD? –

+0

@mederomuraliev, обратитесь к https://stackoverflow.com/questions/33509761/connect-to-azure-active-directory-from-php-web-application –

Смежные вопросы