Office365 автономная авторизация приложения php - PullRequest
0 голосов
/ 11 февраля 2019

У меня есть отдельное веб-приложение на 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, что не соответствует назначениюаутентификация.

Любая помощь наиболее ценится!

...