Поделиться через


Вход пользователей в пример классического приложения WPF

В этом руководстве используется пример приложения Windows Presentation Foundation (WPF), чтобы показать, как добавить проверку подлинности в классическое приложение WPF. Пример приложения позволяет пользователям входить и выходить из нее. Пример классического приложения использует библиотеку проверки подлинности Майкрософт для .NET для .NET для обработки проверки подлинности.

Необходимые условия

  • Внешний клиент. Чтобы создать его, выберите один из следующих методов:

Регистрация классического приложения

Чтобы приложение входить в систему с помощью Microsoft Entra, Внешняя идентификация Microsoft Entra должны быть осведомлены о создаваемом приложении. Регистрация приложения устанавливает отношение доверия между приложением и Microsoft Entra. При регистрации приложения внешний идентификатор создает уникальный идентификатор, известный как идентификатор приложения (клиента), значение, используемое для идентификации приложения при создании запросов проверки подлинности.

Ниже показано, как зарегистрировать приложение в Центре администрирования Microsoft Entra:

  1. Войдите в Центр администрирования Microsoft Entra как минимум разработчик приложений.

  2. Если у вас есть доступ к нескольким клиентам, используйте значок параметров в верхнем меню, чтобы переключиться на внешний клиент из меню каталогов и подписок.

  3. Перейдите к приложениям> удостоверений>Регистрация приложений.

  4. Выберите +Создать регистрацию.

  5. На отображаемой странице регистрации приложения;

    1. Введите понятное имя приложения, отображаемое пользователям приложения, например ciam-client-app.
    2. В разделе "Поддерживаемые типы учетных записей" выберите только учетные записи в этом каталоге организации.
  6. Выберите " Зарегистрировать".

  7. Панель обзора приложения отображается при успешной регистрации. Запишите идентификатор приложения (клиента), который будет использоваться в исходном коде приложения.

Указание платформы приложений

Чтобы указать тип приложения для регистрации приложения, выполните следующие действия.

  1. В разделе "Управление" выберите "Проверка подлинности".
  2. На странице конфигураций платформы выберите "Добавить платформу", а затем выберите пункт "Мобильные и классические приложения".
  3. В поле ввода в URI настраиваемого перенаправления введите https://login.microsoftonline.com/common/oauth2/nativeclientвручную, а затем нажмите кнопку "Настроить". При выборе этого URI в поле выбора может возникнуть ошибка URI перенаправления.
  1. На странице Регистрация приложений выберите созданное приложение (например, ciam-client-app), чтобы открыть страницу обзора.

  2. В разделе "Управление" выберите разрешения API. В списке настроенных разрешений приложение было назначено разрешение User.Read . Однако, поскольку клиент является внешним клиентом, пользователи-потребители сами не могут согласиться с этим разрешением. Вы, как администратор, должны предоставить это разрешение от имени всех пользователей в клиенте:

    1. Выберите "Предоставить согласие администратора" для <имени> клиента, а затем нажмите кнопку "Да".
    2. Выберите "Обновить", а затем убедитесь, что имя> клиента предоставлено <в разделе "Состояние" для обеих областей.

Создание потока пользователя

Выполните следующие действия, чтобы создать поток пользователя, который может использовать для входа или регистрации в приложении.

  1. Войдите в Центр администрирования Microsoft Entra как минимум администратор потока внешних идентификаторов.

  2. Если у вас есть доступ к нескольким клиентам, используйте значок параметров в верхнем меню, чтобы переключиться на внешний клиент из меню каталогов и подписок.

  3. Перейдите к потокам пользователей внешних>удостоверений удостоверений>.

  4. Выберите +Создать поток пользователя.

  5. На странице создания:

    1. Введите имя потока пользователя, например SignInSignUpSample.

    2. В списке поставщиков удостоверений выберите учетные записи электронной почты. Этот поставщик удостоверений позволяет пользователям входить или регистрироваться с помощью своего адреса электронной почты.

      Заметка

      Дополнительные поставщики удостоверений будут перечислены здесь только после настройки федерации с ними. Например, если вы настроили федерацию с Google или Facebook, вы сможете выбрать этих дополнительных поставщиков удостоверений здесь.

    3. В разделе "Учетные записи электронной почты" можно выбрать один из двух вариантов. В этом руководстве выберите "Электронная почта с паролем".

      • Электронная почта с паролем: позволяет новым пользователям регистрироваться и входить в систему с помощью адреса электронной почты в качестве имени входа и пароля в качестве их первых учетных данных фактора.
      • Одноразовый секретный код электронной почты: позволяет новым пользователям регистрироваться и выполнять вход с помощью адреса электронной почты в качестве имени входа и однократного секретного кода электронной почты в качестве учетных данных первого фактора. Одноразовый секретный код электронной почты должен быть включен на уровне клиента (единый секретный код всех поставщиков>удостоверений), чтобы этот параметр был доступен на уровне потока пользователя.
    4. В разделе "Атрибуты пользователя" выберите атрибуты, которые необходимо собрать от пользователя при регистрации. Выбрав "Показать больше", можно выбрать атрибуты и утверждения для страны или региона, отображаемого имени и почтового индекса. Нажмите кнопку "ОК". (Пользователи запрашивают атрибуты только при первом регистрации.)

  6. Нажмите кнопку "Создать". Новый поток пользователя отображается в списке потоков пользователей. При необходимости обновите страницу.

Чтобы включить самостоятельный сброс пароля, выполните действия, описанные в статье "Включение самостоятельного сброса пароля".

Связывание приложения WPF с потоком пользователя

Чтобы пользователи клиента видели возможность регистрации или входа при использовании приложения, необходимо связать приложение с потоком пользователя. Хотя многие приложения могут быть связаны с потоком пользователя, одно приложение может быть связано только с одним потоком пользователя.

  1. В меню боковой панели выберите "Удостоверение".

  2. Выберите внешние удостоверения, а затем потоки пользователей.

  3. На странице "Потоки пользователей" выберите имя потока пользователя, созданное ранее, например SignInSignUpSample.

  4. В разделе "Использование" выберите "Приложения".

  5. Выберите " Добавить приложение".

  6. Выберите приложение из списка, например ciam-client-app или используйте поле поиска для поиска приложения, а затем выберите его.

  7. Нажмите кнопку " Выбрать".

Связав приложение с потоком пользователей, вы можете протестировать поток пользователя, имитируя процесс регистрации или входа пользователя с приложением из Центра администрирования Microsoft Entra. Для этого выполните действия, описанные в разделе "Тестирование регистрации и входа в поток пользователя".

Клонирование или скачивание примера приложения WPF

Чтобы получить пример приложения, можно клонировать его из GitHub или скачать его в виде файла .zip.

  • Чтобы клонировать пример, откройте командную строку и перейдите к месту создания проекта и введите следующую команду:

    git clone https://github.com/Azure-Samples/ms-identity-ciam-dotnet-tutorial.git
    
  • Скачайте файл .zip. Извлеките его в путь к файлу, где длина имени меньше 260 символов.

Настройка примера приложения WPF

  1. Откройте проект в интегрированной среде разработки (например, Visual Studio или Visual Studio Code), чтобы настроить код.

  2. В редакторе кода откройте файл appsettings.json в папке ms-identity-ciam-dotnet-tutorial>1-Authentication>5-sign-in-dotnet-wpf.

  3. Замените Enter_the_Application_Id_Here идентификатором приложения (клиента), зарегистрированного ранее.

  4. Замените Enter_the_Tenant_Subdomain_Here поддомен каталога (клиента). Например, если основной домен contoso.onmicrosoft.com, замените Enter_the_Tenant_Subdomain_Here contoso. Если у вас нет основного домена, узнайте, как читать сведения о клиенте.

Запуск и тестирование классического приложения WPF

  1. Откройте окно консоли и перейдите в каталог, содержащий классическое приложение WPF:

    cd 1-Authentication\5-sign-in-dotnet-wpf
    
  2. В терминале запустите приложение, выполнив следующую команду:

    dotnet run
    
  3. После запуска примера появится окно с кнопкой входа . Нажмите кнопку входа .

    Снимок экрана: экран входа для классического приложения WPF.

  4. На странице входа введите адрес электронной почты учетной записи. Если у вас нет учетной записи, выберите "Нет учетной записи"? Создайте его, который запускает поток регистрации. Выполните этот поток, чтобы создать новую учетную запись и войти.

  5. После входа вы увидите экран, отображающий успешный вход и основные сведения о учетной записи пользователя, хранящейся в полученном маркере. Основные сведения отображаются в разделе "Сведения о маркере" на экране входа

Принцип работы

Основная конфигурация общедоступного клиентского приложения обрабатывается в файле App.xaml.cs . Инициализируется PublicClientApplication вместе с кэшем для хранения маркеров доступа. Приложение сначала проверяет наличие кэшированного маркера, который можно использовать для входа пользователя. Если кэшированный маркер отсутствует, пользователю будет предложено предоставить учетные данные и войти. После выхода кэш очищается от всех учетных записей и всех соответствующих маркеров доступа.