Вход пользователей для примера веб-приложения ASP.NET Core в внешнем клиенте
В этом руководстве используется пример веб-приложения ASP.NET Core для отображения основных принципов современной проверки подлинности с помощью библиотеки проверки подлинности Майкрософт для .NET и Microsoft Identity Web для обработки проверки подлинности ASP.NET Core.
В этой статье вы зарегистрируете веб-приложение в Центре администрирования Microsoft Entra и создадите вход и выйдите из потока пользователя. Вы свяжите веб-приложение с потоком пользователя, скачайте и обновите пример веб-приложения ASP.NET Core с помощью собственных сведений о внешнем клиенте. Наконец, вы запустите и протестируете пример веб-приложения.
Необходимые компоненты
- Хотя можно использовать любую интегрированную среду разработки, поддерживающую ASP.NET core, Visual Studio Code используется для этого руководства. Его можно скачать на странице "Загрузки ".
- Пакет SDK для .NET 7.0.
- Внешний клиент. Чтобы создать его, выберите один из следующих методов:
- (Рекомендуется) Используйте расширение Внешняя идентификация Microsoft Entra для настройки внешнего клиента непосредственно в Visual Studio Code.
- Создайте внешний клиент в Центре администрирования Microsoft Entra.
Регистрация веб-приложения
Чтобы приложение входить в систему с помощью Microsoft Entra, Внешняя идентификация Microsoft Entra должны быть осведомлены о создаваемом приложении. Регистрация приложения устанавливает отношение доверия между приложением и Microsoft Entra. При регистрации приложения внешний идентификатор создает уникальный идентификатор, известный как идентификатор приложения (клиента), значение, используемое для идентификации приложения при создании запросов проверки подлинности.
Ниже показано, как зарегистрировать приложение в Центре администрирования Microsoft Entra:
Войдите в Центр администрирования Microsoft Entra как минимум разработчик приложений.
Если у вас есть доступ к нескольким клиентам, используйте
значок параметров в верхнем меню, чтобы переключиться на внешний клиент из меню каталогов и подписок.
Перейдите к приложениям>Регистрация приложений.
Выберите + Создать регистрацию.
На отображаемой странице регистрации приложения;
- Введите понятное имя приложения, отображаемое пользователям приложения, например ciam-client-app.
- В разделе Поддерживаемые типы учетных записей выберите Учетные записи только в этом каталоге организации.
Выберите Зарегистрировать.
Панель обзора приложения отображается при успешной регистрации. Запишите идентификатор приложения (клиента), который будет использоваться в исходном коде приложения.
Определение платформы и URL-адресов
Чтобы указать тип приложения для регистрации приложения, выполните следующие действия.
- В разделе Управление выберите Проверка подлинности.
- На странице конфигураций платформы выберите "Добавить платформу" и выберите "Веб-параметр".
-
https://localhost:7274/signin-oidc
. - В разделе URL-адрес выхода front-channel введите
https://localhost:7274/signout-callback-oidc
для выхода. - Нажмите кнопку "Настроить", чтобы сохранить изменения.
Включение неявных и гибридных потоков
В построенном приложении используется неявный поток, который необходимо включить.
- В разделе " Неявное предоставление" и "Гибридные потоки " выберите параметр маркеров идентификатора .
- Выберите Сохранить.
Добавление секрета клиента приложения
Создайте секрет клиента для зарегистрированного приложения. Приложение использует секрет клиента, чтобы подтвердить свое удостоверение при запросе маркеров.
- На странице Регистрация приложений выберите созданное приложение (например, ciam-client-app), чтобы открыть страницу обзора.
- В разделе Управление выберите Сертификаты и секреты.
- Щелкните Создать секрет клиента.
- В поле "Описание" введите описание секрета клиента (например, секрет клиента приложения ciam).
- В разделе "Срок действия" выберите срок действия, для которого секрет действителен (для правил безопасности организации), а затем нажмите кнопку "Добавить".
- Запишите значение секрета в поле Значение. Это значение будет использовано позже для конфигурации. Значение секрета не будет отображаться снова и не извлекается с помощью каких-либо средств после перехода от сертификатов и секретов. Обязательно запишите его.
Предоставление согласия администратора
После регистрации приложения он получает разрешение User.Read . Однако, поскольку клиент является внешним клиентом, сами пользователи клиента не могут согласиться с этим разрешением. Вы, как администратор, должны предоставить это разрешение от имени всех пользователей в клиенте:
На странице Регистрация приложений выберите созданное приложение (например, ciam-client-app), чтобы открыть страницу обзора.
В разделе Управление выберите Разрешения API.
- Выберите "Предоставить согласие администратора" для <имени> клиента, а затем нажмите кнопку "Да".
- Выберите "Обновить", а затем убедитесь, что <имя> клиента предоставлено в разделе "Состояние" для разрешения.
Создание потока пользователей
Выполните следующие действия, чтобы создать поток пользователя, который может использовать для входа или регистрации в приложении.
Войдите в Центр администрирования Microsoft Entra как минимум администратор потока внешних идентификаторов.
Если у вас есть доступ к нескольким клиентам, используйте
значок параметров в верхнем меню, чтобы переключиться на внешний клиент из меню каталогов и подписок.
Перейдите к потокам пользователей внешних>удостоверений удостоверений>.
Выберите +Создать поток пользователя.
На странице создания:
Введите имя потока пользователя, например SignInSignUpSample.
В списке поставщиков удостоверений выберите учетные записи электронной почты. Этот поставщик удостоверений позволяет пользователям входить или регистрироваться с помощью своего адреса электронной почты.
Примечание.
Дополнительные поставщики удостоверений будут перечислены здесь только после настройки федерации с ними. Например, если вы настроили федерацию с Google, Facebook, Apple или поставщиком удостоверений OIDC , вы сможете выбрать этих дополнительных поставщиков удостоверений здесь.
В разделе "Учетные записи электронной почты" можно выбрать один из двух вариантов. В этом руководстве выберите "Электронная почта с паролем".
- Электронная почта с паролем: позволяет новым пользователям регистрироваться и входить в систему с помощью адреса электронной почты в качестве имени входа и пароля в качестве их первых учетных данных фактора.
- Одноразовый секретный код электронной почты: позволяет новым пользователям регистрироваться и выполнять вход с помощью адреса электронной почты в качестве имени входа и однократного секретного кода электронной почты в качестве учетных данных первого фактора. Одноразовый секретный код электронной почты должен быть включен на уровне клиента (единый секретный код всех поставщиков>удостоверений), чтобы этот параметр был доступен на уровне потока пользователя.
В разделе "Атрибуты пользователя" выберите атрибуты, которые необходимо собрать от пользователя при регистрации. Выбрав "Показать больше", можно выбрать атрибуты и утверждения для страны или региона, отображаемого имени и почтового индекса. Нажмите ОК. (Пользователи запрашивают атрибуты только при первом регистрации.)
Нажмите кнопку создания. Новый поток пользователя появится в списке Потоки пользователей. Если потребуется, обновите страницу.
Чтобы включить самостоятельный сброс пароля, выполните действия, описанные в статье "Включение самостоятельного сброса пароля".
Связывание веб-приложения с потоком пользователя
Чтобы пользователи клиента видели возможность регистрации или входа при использовании приложения, необходимо связать приложение с потоком пользователя. Хотя многие приложения могут быть связаны с потоком пользователя, одно приложение может быть связано только с одним потоком пользователя.
В меню боковой панели выберите "Удостоверение".
Выберите внешние удостоверения, а затем потоки пользователей.
На странице "Потоки пользователей" выберите имя потока пользователя, созданное ранее, например SignInSignUpSample.
В разделе "Использование" выберите "Приложения".
Выберите Добавить приложение.
Выберите приложение из списка, например ciam-client-app или используйте поле поиска для поиска приложения, а затем выберите его.
Выберите Выбрать.
Связав приложение с потоком пользователей, вы можете протестировать поток пользователя, имитируя процесс регистрации или входа пользователя с приложением из Центра администрирования Microsoft Entra. Для этого выполните действия, описанные в разделе "Тестирование регистрации и входа в поток пользователя".
Клонирование или скачивание примера веб-приложения
Чтобы получить пример приложения, можно клонировать его из GitHub или скачать его в виде файла .zip.
Чтобы клонировать пример, откройте командную строку и перейдите к месту создания проекта и введите следующую команду:
git clone https://github.com/Azure-Samples/ms-identity-ciam-dotnet-tutorial.git
Скачайте файл .zip. Извлеките его в путь к файлу, где длина имени меньше 260 символов.
Настройка веб-приложения
Перейдите в корневую папку примера, который вы скачали и каталог, содержащий пример приложения ASP.NET Core:
cd 1-Authentication\1-sign-in-aspnet-core-mvc
Откройте файл appsettings.json.
В службе "Центр" найдите
Enter_the_Tenant_Subdomain_Here
и замените его поддоменом клиента. Например, если основной домен клиента — это caseyjensen@onmicrosoft.comзначение, которое необходимо ввести, — casyjensen.Enter_the_Application_Id_Here
Найдите значение и замените его идентификатором приложения (clientId) приложения, зарегистрированного в Центре администрирования Microsoft Entra.Замените
Enter_the_Client_Secret_Here
значение секрета клиента, настроенное в секрете клиента приложения.
Запуск примера кода
В оболочке или командной строке выполните следующие команды:
dotnet run
Откройте веб-браузер и перейдите по адресу
https://localhost:7274
.Войдите с учетной записью, зарегистрированной во внешнем клиенте.
После входа в отображаемое имя отображается рядом с кнопкой выхода , как показано на следующем снимке экрана.
Чтобы выйти из приложения, нажмите кнопку выхода .