Azure AD Identity.Client Calling AcquireTokenByUsernamePassword, ошибка 406 получения - PullRequest
0 голосов
/ 09 июля 2019

ОБНОВЛЕНИЕ: я вернулся в 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)
  1. На странице Регистрация приложений (предварительный просмотр) выберите Новая регистрация .
  2. Когда появляется Зарегистрировать страницу приложения , введите регистрационную информацию вашего приложения:
    • В разделе Имя введите значимое имя приложения, которое будет отображаться пользователям приложения, например up-console.
    • В разделе Поддерживаемые типы учетных записей выберите Учетные записи в любом организационном каталоге .

      Обратите внимание, что если существует более одного URI перенаправления, вам необходимо добавить их на вкладке Аутентификация позже, после успешного создания приложения.

  3. Выберите Зарегистрируйте , чтобы создать приложение.
  4. На странице приложения Overview найдите значение ID приложения (клиента) и запишите его для дальнейшего использования. Он понадобится вам для настройки файла конфигурации Visual Studio для этого проекта.
  5. В списке страниц приложения выберите Манифест и:
    • В редакторе манифеста установите для свойства allowPublicClient значение true
    • Выберите Сохранить в строке над редактором манифеста.
  6. В списке страниц приложения выберите Разрешения API

    • Нажмите кнопку Добавить разрешение , а затем
    • Убедитесь, что выбрана вкладка Microsoft API
    • В разделе Часто используемые API-интерфейсы Microsoft нажмите Microsoft Graph
    • В разделе Делегированные разрешения убедитесь, что проверены правильные разрешения: User.Read , User.ReadBasic.All . При необходимости используйте окно поиска.
    • Выберите Добавить разрешения Кнопка
  7. На этом этапе разрешения назначаются правильно, но клиентское приложение не разрешает взаимодействие. Поэтому никакое согласие не может быть представлено через пользовательский интерфейс и принято для использования сервисного приложения. Нажмите кнопку Предоставить / отменить согласие администратора для {tenant} , а затем выберите Да , когда вас спросят, хотите ли вы дать согласие на запрошенные разрешения для всей учетной записи в арендаторе. Для этого вам необходимо быть администратором клиента Azure AD.

Шаг 3. Настройте образец для использования своего клиента Azure AD

На следующих этапах «ClientID» совпадает с «Application ID» или «AppId».

Откройте решение в Visual Studio для настройки проектов

Настроить клиентский проект

Примечание: если вы использовали сценарии установки, указанные ниже изменения будут применены к вам

  1. Откройте файл up-console\appsettings.json
  2. Найдите ключ приложения ClientId и замените существующее значение идентификатором приложения (clientId) приложения up-console, скопированным с портала Azure.
  3. (Опционально) Найдите строку, в которой установлена ​​Tenant, и замените существующее значение идентификатором клиента.

Шаг 4: Запустите образец

Очистите решение, перестройте решение и запустите его в отладчике.

1 Ответ

0 голосов
/ 09 июля 2019

Я вернулся в Azure AD и создал нового пользователя. Тщательно скопировал новое имя пользователя и пароль и код работает. Ранее я использовал имя пользователя (адрес электронной почты) и пароль пользователя, который создал каталог и который бросил 406, не знаю почему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...