Я пытаюсь получить доступ к API REST Office365, используя библиотеку ADAL, но получаю 401 (неавторизованный) и не могу понять, почему. Я зарегистрировал приложение в нашем Azure AD, получил идентификатор, извлек ключ для него и дал ему разрешения на чтение Active Directory Windows Azure.Office365 REST API. Получение 401 (неавторизованный) с использованием ADAL
Я могу приобрести токен OAuth, но он не будет работать с API Office365.
Вот один из моих неудачных попыток:
AuthenticationContext auth = new AuthenticationContext("https://login.windows.net/" + myTenant);
AuthenticationResult authenticationResult = auth.AcquireToken("http://Rest", new ClientCredential(myId, myKey));
HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", authenticationResult.AccessToken);
HttpResponseMessage msg = await client.GetAsync("https://outlook.office365.com/api/v1.0/me/events");
// => Bam. 401. :(
Любые идеи?
Спасибо! Правильный resourseid не помог, но ваш токен-парсер показывает мне, что зарегистрированные теги пользователя (upn, unique_name, family_name, given_name) и, возможно, хуже, тег разрешений (тег scp :) отсутствует. Ясно, что я здесь что-то не хватает. Но что? – BaBu
Вы можете попытаться использовать общую конечную точку OAuth, https://login.windows.net/common, в конструкторе AuthenticationContext. Кроме того, когда вы зарегистрировали свое приложение, вы указали разрешения приложений или делегированные разрешения? Какие разрешения вы дали вам в целом? –
По какой-то причине он удаляет «https: //» перед этой конечной точкой :). –