Я создаю приложение, которое позволяет пользователю манипулировать ресурсом Azure и Azure хранилищем, поэтому мне необходим доступ к нескольким аудиториям, однако в azure невозможно иметь один токен с несколькими аудиториями. Поэтому я использую этот учебник
https://docs.microsoft.com/bs-latn-ba/azure/active-directory/develop/msal-net-user-gets-consent-for-multiple-resources
, и мой код выглядит так:
IPublicClientApplication client = PublicClientApplicationBuilder.Create(clientId)
.WithAuthority(AadAuthorityAudience.AzureAdMultipleOrgs)
.WithDefaultRedirectUri()
// .WithRedirectUri($"msal{clientId}://auth")
.Build();
var accounts = client.GetAccountsAsync().Result;
string[] scopes = { "https://management.azure.com/user_impersonation" };
string[] scopestorage = { "https://storage.azure.com/user_impersonation" };
var result = client.AcquireTokenInteractive(scopes)
.WithAccount(accounts.FirstOrDefault())
.WithExtraScopesToConsent(scopestorage)
.ExecuteAsync().Result;
var result2= client.AcquireTokenSilent(scopestorage, accounts.FirstOrDefault()).ExecuteAsync();
, но я получаю исключение при выполнении метод AcquireTokenInteractive
Microsoft.Identity.Client.MsalUiRequiredException: 'No account or login hint was passed to the AcquireTokenSilent call.'
Кроме того, когда я смотрю в локальные переменные "Мои учетные записи", я вижу количество = 0 и ничего там.
Любой указатель для решения будет принят с благодарностью .
С уважением
Винсент