У меня есть отдельное веб-приложение на PHP, в которое мне нужно добавить авторизацию Office365, чтобы доступ к ней имели только авторизованные пользователи.
Я зарегистрировал приложение на «Портале регистрации приложений» в нашей среде Office365 и получил идентификатор приложения.Я установил URL-адрес перенаправления для приложения на своем локальном хосте: http://localhost/MyApp.
На моей начальной странице для веб-приложения (login.php) у меня есть следующее перенаправление:
Location:https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id.....
Эта часть работает успешно, поскольку она перенаправляет пользователя на страницу входа в Office365, и после того, как пользователь вводит учетные данные, переносит их на страницу индекса (index.php).
На моей странице индекса я имеюследующее:
<?php
$client_id = 'xxxx'; // application ID masked
$client_secret = 'xxxx'; //password/public key masked
$redirect_uri= "http://localhost/WebApp";
$resource = "https://localhost/WebApp";
$authorization_code = filter_input(INPUT_GET, 'code');
if(!$authorization_code){
die('something went wrong!');
}
$url = 'https://login.microsoftonline.com/common/oauth2/v2.0/token';
$data = array(
'client_id' => $client_id,
'code' => $authorization_code,
'redirect_uri' => $redirect_uri,
'resource' => $resource,
'client_secret' => $client_secret
);
$options = array(
'http' => array(
'header' => "Content-type: application/json\r\n",
'method' => 'POST',
'content' => json_encode($data)
)
);
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
//echo $authorization_code;
var_dump($result);
?>
Когда я запускаю это, я получаю следующую ошибку после перенаправления:
Предупреждение: file_get_contents (https://login.microsoftonline.com/common/oauth2/v2.0/token): не удалось открыть поток: сбой HTTP-запроса! HTTP / 1.1 400 Неверный запрос в C: \ xampp \ htdocs \ MyApp \ index.php в строке 29
Я также могу перейти в браузере прямо на страницу index.php, что не соответствует назначениюаутентификация.
Любая помощь наиболее ценится!