Использование Office365 для аутентификации пользователей и предоставления доступа к веб-сайту - PullRequest
0 голосов
/ 07 февраля 2019

У нас есть сайт.Мы обычно используем Microsoft forefront для запроса у пользователя его имени пользователя и пароля для входа в систему. Недавно у нас появилось требование разрешить пользователям использовать Office365 для входа на наш веб-сайт.Поэтому мы должны интегрировать Office365 в наш веб-сайт, чтобы пользователь мог войти на наш веб-сайт с помощью Office365.Поэтому я пытаюсь использовать Microsoft.Graph.Я зарегистрировал свое приложение как веб и получил идентификатор клиента и секретный ключ.Я использую эту информацию, чтобы позвонить в Microsoft Graph.

Я попытался вызвать API, как показано ниже.Мой первый запрос (request1) выполняется вторым запросом (request2), который выдает ошибку, сообщающую о том, что это неверный запрос

«Удаленный сервер возвратил ошибку: (400) неверный запрос».System.Net.WebException **

var request1 = (HttpWebRequest)WebRequest.Create("https://login.microsoftonline.com/{tenant}/adminconsent?client_id=myclientidvalue&state=12345&redirect_uri=http://localhost:36541/");
var response1 = (HttpWebResponse)request.GetResponse();            
var responseString = new StreamReader(response1.GetResponseStream()).ReadToEnd();

var request2 = (HttpWebRequest)WebRequest.Create("https://login.microsoftonline.com/{tenant}/oauth2/v2.0/token");
var postData = "client_id=myclientid";
postData += "&scope=http://localhost:36541/.default";
postData += "&client_secret=mysecretkey";
postData += "&grant_type=client_credentials";
var data = Encoding.ASCII.GetBytes(postData);
request2.Method = "POST";
request2.ContentType = "application/x-www-form-urlencoded";
request2.ContentLength = data.Length;
request1.Host = "login.microsoftonline.com";
using (var stream = request2.GetRequestStream())
{
    stream.Write(data, 0, data.Length);
}
var response2 = (HttpWebResponse)request2.GetResponse();
var responseString1 = new StreamReader(response2.GetResponseStream()).ReadToEnd();
...