#azure #microsoft-graph-api #azure-ad-b2c #azure-ad-graph-api
Вопрос:
Согласно названию, я пытаюсь обновить пользователя Azure B2C с помощью моего API, используя Microsoft.Graph
пакет NuGet. Недавно я удалил и воссоздал свою регистрацию приложения в Azure и в своей бесконечной мудрости не записал, в каких областях это было разрешено.
Пользователи получают доступ к моему API с помощью маркера доступа, выданного B2C из отдельного веб-клиента, поэтому я предполагаю, что области, необходимые для моего API, будут подпадать под разрешения приложений (без входа пользователя), а не делегированные разрешения (с пользователем, вошедшим в систему), и я думаю User.ReadWrite.All
, что разрешение должно охватывать это?
Я сомневаюсь в этом, потому что запросы перестали работать, но в коде не было никаких изменений. Код приведен ниже:
IConfidentialClientApplication confidentialClientApplication = ConfidentialClientApplicationBuilder .Create(configuration[$"{Constants.AzureAdB2C}:ClientId"]) .WithTenantId(configuration[$"{Constants.AzureAdB2C}:Domain"]) .WithClientSecret(configuration[$"{Constants.AzureAdB2C}:ClientSecret"]) .Build(); IAuthenticationProvider authProvider = new ClientCredentialProvider(confidentialClientApplication); GraphServiceClient graphClient = new GraphServiceClient(authProvider); User azureUser = await graphClient.Users[azureId] .Request() .Select(e =gt; new { e.OtherMails }) .GetAsync(); azureUser.OtherMails = userEmails; await graphClient.Users[azureId] .Request() .UpdateAsync(azureUser);
Получение сведений нормально, но в последней строке для обновления пользователя я получаю исключение Delta patch payload must contain @context : #$delta
. Я нигде не могу найти никаких ссылок на это и не могу найти или вспомнить, откуда я взял исходный код выше. Кто-нибудь может посоветовать, где я ошибаюсь?
Комментарии:
1. только что получил это сам. есть успехи?
2. Я такой супер нуб, но это дало мне эту ошибку, потому что мой
azureId
был нулевым