ОБНОВЛЕНИЕ: я вернулся в Azure AD и создал нового пользователя. Тщательно скопировал новое имя пользователя и пароль и код работает. Ранее я использовал имя пользователя (адрес электронной почты) и пароль пользователя, который создал каталог и который выбросил 406, не знаю почему?
Я скачал код up-консоли Azure. Я следовал за файлом ReadMe, который является следующим
Когда появляется консоль, вот что я печатаю
имя пользователя: адрес электронной почты, используемый для входа на портал Azure
пароль: pw используется для входа на портал Azure
В примере кода следующий код называется
private async Task<AuthenticationResult> GetTokenForWebApiUsingUsernamePasswordAsync(IEnumerable<string> scopes, string username, SecureString password)
{
AuthenticationResult result = null;
result = await App.AcquireTokenByUsernamePassword(scopes, username, password)
.ExecuteAsync();
return result;
}
В файле json у меня есть следующие настройки
{
"Authentication": {
// Azure Cloud instance among:
// - AzurePublic (see https://aka.ms/aaddevv2). This is the default value
// - AzureUsGovernment (see https://docs.microsoft.com/azure/azure-government/documentation-government-developer-guide)
// - AzureChina (see https://docs.microsoft.com/azure/china/china-get-started-developer-guide)
// - AzureGermany (See https://docs.microsoft.com/azure/germany/germany-developer-guide)
"AzureCloudInstance": "AzurePublic",
// Azure AD Audience among:
// - AzureAdMyOrg (single tenant: you need to also provide the TenantId
// - AzureAdMultipleOrgs (multi-tenant): Any work and school accounts
// - AzureAdAndPersonalMicrosoftAccount (any work and school account or Microsoft personal account)
// - PersonalMicrosoftAccount (Microsoft personal account only)
"AadAuthorityAudience": "AzureAdMyOrg",
"ClientId": "copied from azure ad client id",
"TenantId": "copied from azure ad tenant id",
"Tenant": "copied from azure ad tenant id"
},
Зарегистрируйте клиентское приложение (up-console)
- На странице Регистрация приложений (предварительный просмотр) выберите Новая регистрация .
- Когда появляется Зарегистрировать страницу приложения , введите регистрационную информацию вашего приложения:
- В разделе Имя введите значимое имя приложения, которое будет отображаться пользователям приложения, например
up-console
.
- В разделе Поддерживаемые типы учетных записей выберите Учетные записи в любом организационном каталоге .
Обратите внимание, что если существует более одного URI перенаправления, вам необходимо добавить их на вкладке Аутентификация позже, после успешного создания приложения.
- Выберите Зарегистрируйте , чтобы создать приложение.
- На странице приложения Overview найдите значение ID приложения (клиента) и запишите его для дальнейшего использования. Он понадобится вам для настройки файла конфигурации Visual Studio для этого проекта.
- В списке страниц приложения выберите Манифест и:
- В редакторе манифеста установите для свойства
allowPublicClient
значение true
- Выберите Сохранить в строке над редактором манифеста.
В списке страниц приложения выберите Разрешения API
- Нажмите кнопку Добавить разрешение , а затем
- Убедитесь, что выбрана вкладка Microsoft API
- В разделе Часто используемые API-интерфейсы Microsoft нажмите Microsoft Graph
- В разделе Делегированные разрешения убедитесь, что проверены правильные разрешения: User.Read , User.ReadBasic.All . При необходимости используйте окно поиска.
- Выберите Добавить разрешения Кнопка
На этом этапе разрешения назначаются правильно, но клиентское приложение не разрешает взаимодействие.
Поэтому никакое согласие не может быть представлено через пользовательский интерфейс и принято для использования сервисного приложения.
Нажмите кнопку Предоставить / отменить согласие администратора для {tenant} , а затем выберите Да , когда вас спросят, хотите ли вы дать согласие на
запрошенные разрешения для всей учетной записи в арендаторе.
Для этого вам необходимо быть администратором клиента Azure AD.
Шаг 3. Настройте образец для использования своего клиента Azure AD
На следующих этапах «ClientID» совпадает с «Application ID» или «AppId».
Откройте решение в Visual Studio для настройки проектов
Настроить клиентский проект
Примечание: если вы использовали сценарии установки, указанные ниже изменения будут применены к вам
- Откройте файл
up-console\appsettings.json
- Найдите ключ приложения
ClientId
и замените существующее значение идентификатором приложения (clientId) приложения up-console
, скопированным с портала Azure.
- (Опционально) Найдите строку, в которой установлена
Tenant
, и замените существующее значение идентификатором клиента.
Шаг 4: Запустите образец
Очистите решение, перестройте решение и запустите его в отладчике.