Библиотека аутентификации Microsoft Identity Web
Microsoft Identity Web — это набор библиотек ASP.NET Core, упрощающих добавление поддержки проверки подлинности и авторизации в веб-приложения и веб-API, интегрированные с платформой Microsoft Identity. Библиотеки предоставляют удобный уровень API, объединяющий вместе ASP.NET Core, ПО промежуточного слоя для проверки подлинности и библиотеку проверки подлинности Майкрософт (MSAL) для .NET.
Чтобы создать проект приложения, можно получить Microsoft.Identity.Web из NuGet или с помощью шаблона проекта Visual Studio.
Поддерживаемые сценарии приложений
Если вы создаете веб-приложения ASP.NET Core или веб-API и необходимо использовать Azure Active Directory (Azure AD) или Azure AD B2C для управления удостоверениями и доступом (IAM), рекомендуем использовать для всех следующих сценариев Microsoft Identity Web:
- Веб-приложение, которое поддерживает вход пользователей
- Веб-приложение, которое подписывает пользователей и вызывает веб-API от их имени
- Защищенный веб-API, доступ к которому могут получить только пользователи, прошедшие проверку подлинности
- Защищенный веб-API, вызывающий другой (ниже уровнем) веб-API от имени выполнившего вход пользователя
Установка из NuGet
Microsoft Identity Web доступен в NuGet в виде набора пакетов, которые предоставляют модульные функции в зависимости от потребностей вашего приложения. Используйте команду интерфейса dotnet add
командной строки .NET или Диспетчер пакетов NuGet Visual Studio, чтобы установить пакеты, подходящие для вашего проекта:
- Microsoft.Identity.Web — основной пакет. Требуется всеми приложениями, использующими Microsoft Identity Web.
- Microsoft.Identity.Web.UI — необязательно. Добавляет пользовательский интерфейс для входа и выхода пользователя, а также для связанного контроллера для веб-приложений.
- Microsoft.Identity.Web.MicrosoftGraph — необязательно. Упрощает взаимодействие с Microsoft Graph API.
- Microsoft.Identity.Web.MicrosoftGraphBeta — необязательно. Упрощает взаимодействие с конечной бета-точкой Microsoft Graph API.
Установка с помощью шаблона проекта Visual Studio
В пакет SDK для .NET версии 5.0 и выше входят несколько шаблонов проектов, использующих Microsoft Identity Web. Шаблоны проектов не входят в состав пакета SDK для ASP.NET Core 3.1, но их можно установить отдельно.
Включенные шаблоны проектов для .NET 5.0+
Шаблоны проектов Microsoft Identity Web входят в пакет SDK для .NET версии 5.0 и выше.
В этом примере команда CLI .NET создает проект Blazor Server, включающий Microsoft Identity Web.
dotnet new blazorserver --auth SingleOrg --calls-graph --client-id "00000000-0000-0000-0000-000000000000" --tenant-id "11111111-1111-1111-1111-111111111111" --output my-blazor-app
Не добавляйте 2
к аргументу типа приложения (blazorserver
в данном примере), если вы используете шаблоны, входящие в пакет SDK для .NET 5.0+. Добавьте суффикс 2
только в том случае, если вы используете ASP.NET Core 3.1 и установили шаблоны отдельно, как описано в следующем разделе.
ASP.NET Core 3.1: установка шаблонов проектов
если вы используете ASP.NET Core 3.1, установите шаблоны проектов из NuGet.
dotnet new --install Microsoft.Identity.Web.ProjectTemplates
Толькодля ASP.NET Core 3.1: добавьте 2
к аргументу типа приложения при создании нового проекта.
dotnet new blazorserver2 --auth SingleOrg --calls-graph --client-id "00000000-0000-0000-0000-000000000000" --tenant-id "11111111-1111-1111-1111-111111111111" --output my-blazor-app
На следующей схеме показаны несколько доступных шаблонов типов приложений и их аргументы. Добавьте 2
в аргумент типа приложения (blazorserver2
в данном примере), только если вы используете пакет SDK для ASP.NET Core 3.1 и установили шаблоны с помощью dotnet new --install
.
*MultiOrg
не поддерживается в webapi2
, но его можно включить в файл appsettings.json, установив для параметра "арендатор" значение common
или organizations
**--calls-graph
не поддерживается для Azure AD B2C
Возможности шаблонов проектов
Microsoft Identity Web включает несколько функций, которые недоступны при использовании шаблонов проектов ASP.NET Core 3.1 по умолчанию.
Функция | ASP.NET Core 3.1 | Веб-сайт Microsoft Identity |
---|---|---|
Вход пользователей в веб-приложения | ||
Защита веб-API | ||
Проверка издателя в приложениях с несколькими клиентами | Нет | Да, для всех облаков и Azure AD B2C |
Веб-приложение/API вызывает Microsoft Graph | Нет | Да |
Веб-приложение/API вызывает веб-API | Нет | Да |
Поддерживает учетные данные сертификата | Нет | Да, включая Azure Key Vault |
Добавочное согласие и поддержка условного доступа в веб-приложениях | Нет | Да, в MVC, на страницах Razor и Blazor |
Сертификаты для шифрования маркера в веб-API | Нет | Да |
Проверка области/роли приложения в веб-API | Нет | Да |
Создание заголовка WWW-Authenticate в веб-API |
Нет | Да |
Дальнейшие действия
Чтобы просмотреть Microsoft Identity Web в действии, ознакомьтесь с нашим учебником по серверу Blazor Server.
Репозиторий wiki Microsoft Identity Web на сайте GitHub содержит подробную справочную документацию по различным аспектам библиотеки. Например, использование сертификатов, добавочное согласие и ссылка на условный доступ — все это можно найти здесь: