Библиотека аутентификации 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:

Установка из NuGet

Microsoft Identity Web доступен в NuGet в виде набора пакетов, которые предоставляют модульные функции в зависимости от потребностей вашего приложения. Используйте команду интерфейса dotnet add командной строки .NET или Диспетчер пакетов NuGet Visual Studio, чтобы установить пакеты, подходящие для вашего проекта:

Установка с помощью шаблона проекта 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.

Diagram of the available dot net CLI project templates for Microsoft Identity Web
*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
Вход пользователей в веб-приложения
  • Рабочие или учебные учетные записи
  • Удостоверения социальных сетей (с Azure AD B2C)
  • Рабочие или учебные учетные записи
  • Personal Microsoft accounts (Личные учетные записи Майкрософт)
  • Удостоверения социальных сетей (с Azure AD B2C)
  • Защита веб-API
  • Рабочие или учебные учетные записи
  • Удостоверения социальных сетей (с Azure AD B2C)
  • Рабочие или учебные учетные записи
  • Personal Microsoft accounts (Личные учетные записи Майкрософт)
  • Удостоверения социальных сетей (с Azure AD B2C)
  • Проверка издателя в приложениях с несколькими клиентами Нет Да, для всех облаков и Azure AD B2C
    Веб-приложение/API вызывает Microsoft Graph Нет Да
    Веб-приложение/API вызывает веб-API Нет Да
    Поддерживает учетные данные сертификата Нет Да, включая Azure Key Vault
    Добавочное согласие и поддержка условного доступа в веб-приложениях Нет Да, в MVC, на страницах Razor и Blazor
    Сертификаты для шифрования маркера в веб-API Нет Да
    Проверка области/роли приложения в веб-API Нет Да
    Создание заголовка WWW-Authenticate в веб-API Нет Да

    Дальнейшие действия

    Чтобы просмотреть Microsoft Identity Web в действии, ознакомьтесь с нашим учебником по серверу Blazor Server.

    Руководство по Создание приложения Blazor Server, которое использует платформу удостоверений Майкрософт для аутентификации

    Репозиторий wiki Microsoft Identity Web на сайте GitHub содержит подробную справочную документацию по различным аспектам библиотеки. Например, использование сертификатов, добавочное согласие и ссылка на условный доступ — все это можно найти здесь: