Я получаю следующую ошибку при попытке получить AccessToken.Microsoft Graph Client не указан ресурс в requiredResourceAccessList
/MicrosoftGraph/Авторизуйте? Ошибка = ACCESS_DENIED & error_description = AADSTS65005% 3a + кнопки + + клиент приложения + имеет + + доступ с просьбой + к + ресурса +% 27https% 3a% 2f% 2fgraph.microsoft.com% 2f% 27 . + Этот запрос + провалился + + +, потому что еще + не + указано + клиент + + это + ресурс + в + его + requiredResourceAccess + список.% 0D% 0aTrace + ID% 3a + 7cd46ad3-d294-41ad-98ec -6ef06db7a0db% 0D% 0aCorrelation + ID% 3a + 4e2a6d3b-b3dd-4a98-b36d-550d8f8c3382% 0D% 0aTimestamp% 3a + 2016-01-27 + 10% 3A40% 3a12Z
Который ... graph.microsoft .com Этот запрос не удался, потому что клиент не указал этот ресурс в своем списке требуемых ресурсовResourceAccess
Это мульти itenant в Azure Active Directory. Я могу успешно войти в систему с одним из моих идентификаторов электронной почты, но не с другим.
Куда я иду не так? Что мне не хватает?
Код сниппета:
public ActionResult Login() {
....
Uri authUri = authContext.GetAuthorizationRequestURL(
MicrosoftGraphSettings.O365UnifiedAPIResource,
MicrosoftGraphSettings.ClientId,
loginRedirectUri,
UserIdentifier.AnyUser,
null);
string authUriAsString = authUri.ToString();
return Redirect(authUriAsString);
}
public async Task<ActionResult> Authorise()
{
Uri loginRedirectUri = new Uri(Url.Action("Authorise", "MicrosoftGraph", null, Request.Url.Scheme));
var authContext = new AuthenticationContext(MicrosoftGraphSettings.AzureADAuthority);
var authResult = await authContext.AcquireTokenByAuthorizationCodeAsync(
Request.Params["code"],
loginRedirectUri,
new ClientCredential(MicrosoftGraphSettings.ClientId, MicrosoftGraphSettings.ClientSecret),
MicrosoftGraphSettings.O365UnifiedAPIResource);
}
Я попытался следующие
public static string O365UnifiedAPIResource = @"https://graph.microsoft.com/";
//public static string O365UnifiedAPIResource = @"https://graph.windows.net/";
Используя второй, аутентификация прошла успешно, но всякий раз, когда я использую мой существующий код для списка файлов доступа в OneDrive для бизнес-аккаунта или создания текстового файла он выдает исключение Unauthorized при вызове API.
Спасибо Marek. Ваше решение работало хорошо! – Bond