2016-11-19 2 views
1

Привет, у меня есть приложение, написанное на PHP с использованием MySQL в качестве базы данных, и я хочу использовать аутентификацию входа в систему из моей AD azure.php: простой лазурный логин с информацией

Я нашел несколько примеров файлов для поиска в google, но они слишком сложны для моих нужд.

Итак, у меня есть ссылка, как это: https://login.microsoftonline.com/common/oauth2/authorize?client_id=$myidclient&redirect_uri=$mydirapp&response_type=code

После неудачного входа в системе, я перенаправлять /mydirapp/index.php с HTTP GET значения имени кода

Моей проблема: (в моем индексе файла .php) Я хочу, чтобы получить
- email address используется для аутентификации этой - в firstname и lastname этого пользователя

Я понял, что мне нужен токен из этого значения GET с именем 'code' и этим маркером я могу спросить мой AD.

+0

Привет, @kadel, есть ли у вас обновления? –

ответ

0

Я не мог понять очень четко, о вашем не удалось войти в систему. Фактически, Azure AD реализует с помощью OAuth 2.0 большой поток для аутентификации и авторизации ваших пользователей.

И указатель, который вы указали, является первым шагом для создания кода аутентификации, затем вы направляете пользователя на эту конечную точку, всякая неудачная проверка подлинности происходит, она не будет перенаправляться на ваш uri. Сообщение об ошибке будет показано вашему пользователю на странице IDP.

Если ваш пользователь перенаправил ваш uri с параметром кода, это означает, что этот пользователь успешно выполнил вход в Azure AD.

После аутентификации пользователь должен установить access_token в заголовке запроса Authorization на ваш сервер. Если вы хотите, чтобы получить информацию о заверенном пользователе, вы можете попробовать использовать следующий фрагмент кода:

$headers = getallheaders(); 
$token = (explode(' ',$headers['Authorization']))[1]; 
list($headb64, $bodyb64, $cryptob64) = explode('.',$token); 
$payload = json_decode(base64_decode($bodyb64)); 

echo $payload->{'family_name'}; 
echo $payload->{'given_name'}; 
echo $payload->{'upn'}; //email 

Вы можете обратиться к https://docs.microsoft.com/en-us/azure/active-directory/active-directory-authentication-scenarios?toc=%2fazure%2factive-directory%2fdevelop%2ftoc.json#claims-in-azure-ad-security-tokens для поддерживаемой претензии полезной нагрузки.

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

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