Я получил токен доступа для загрузки графического клиента, используя следующий код:
string graphResourceID = "https://graph.windows.net";
string tenantID = ConfigurationManager.AppSettings["ida:Domain"];
string aadInstance = "https://login.microsoftonline.com/" + tenantID +
"/oauth2/v2.0/token";
Microsoft.IdentityModel.Clients.ActiveDirectory.ClientCredential credential = new Microsoft.IdentityModel.Clients.ActiveDirectory.ClientCredential(clientId, appKey);
AuthenticationContext authenticationContext = new AuthenticationContext(aadInstance);
authenticationContext.TokenCache.Clear();
var authResult = await authenticationContext.AcquireTokenAsync(graphResourceID,clientcred);
А затем попытался использовать токен для получения информации о пользователе, выполнившем вход в систему, через граф AD API:
Uri servicePointUri = new Uri(graphResourceID);
Uri serviceRoot = new Uri(servicePointUri, tenantID);
ActiveDirectoryClient activeDirectoryClient = new ActiveDirectoryClient(serviceRoot,async () => await GetTokenForApplication());
var result = await activeDirectoryClient.Users.Where(u => u.ObjectId.Equals(userObjectID)).ExecuteAsync();
IUser user = result.CurrentPage.ToList().First();
return View(user);
Однако возвращается следующая ошибка:
"error": {
"code": "Authorization_IdentityNotFound",
"message": "The identity of the calling application could not be established.",
"innerError": {
"request-id": "2bdae8ff-d935-4e01-80a1-78cbc8acf4de",
"date": "2017-08-09T18:07:40"
Я убедился, что приложение mu B2C имеет разрешение «Чтение и запись данных каталога» для Windows Active Directory:
![enter image description here](https://i.stack.imgur.com/n7SHe.png)
Может кто-нибудь помочь, пожалуйста? Застрял на это на некоторое время. ТИА
Редактировать
Я также пытался использовать Microsoft.Graph, но в итоге получил ту же ошибку. Плюс для пользователей B2C, я думаю, что лучше всего сейчас придерживаться API Azure Ad Graph: https://dev.office.com/blogs/microsoft-graph-or-azure-ad-graph