События
Присоединение к вызову ИИ Навыков
8 апр., 15 - 28 мая, 07
Отточите свои навыки ИИ и введите подметки, чтобы выиграть бесплатный экзамен сертификации
Зарегистрируйтесь!Этот браузер больше не поддерживается.
Выполните обновление до Microsoft Edge, чтобы воспользоваться новейшими функциями, обновлениями для системы безопасности и технической поддержкой.
Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Примечание
Это не последняя версия этой статьи. В текущем выпуске, см. версию .NET 9 этой статьи.
Предупреждение
Эта версия ASP.NET Core больше не поддерживается. Дополнительные сведения см. в политике поддержки .NET и .NET Core. В текущем выпуске смотрите версию .NET 9 этой статьи.
Важно!
Эта информация относится к предварительному выпуску продукта, который может быть существенно изменен до его коммерческого выпуска. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
В текущем выпуске см. версию .NET 9 этой статьи.
Минимальные API поддерживают все параметры проверки подлинности и авторизации, доступные в ASP.NET Core, и предоставляют некоторые дополнительные функции для улучшения работы с проверкой подлинности.
Проверка подлинности — это процесс определения удостоверения пользователя. Авторизация — это процесс определения, есть ли у пользователя доступ к ресурсу. Сценарии проверки подлинности и авторизации совместно используют аналогичную семантику реализации в ASP.NET Core. Аутентификация осуществляется службой IAuthenticationService, которая используется промежуточным ПО для проверки подлинности. Авторизация обрабатывается службой авторизации IAuthorizationService, которая используется промежуточным ПО авторизации.
Служба проверки подлинности использует зарегистрированные обработчики для выполнения связанных с проверкой подлинности действий. Например, действие, связанное с аутентификацией, это аутентификация пользователя или выход из системы. Схемы проверки подлинности — это имена, которые используются для уникальной идентификации обработчика проверки подлинности и его параметров конфигурации. Обработчики проверки подлинности отвечают за реализацию стратегий проверки подлинности и создание утверждений пользователя с учетом определенной стратегии проверки подлинности, например OAuth или OIDC. Параметры конфигурации уникальны для стратегии и одновременно предоставляют обработчику настройки, влияющие на процесс аутентификации, такие как URI перенаправления.
Существует две стратегии определения доступа пользователей к ресурсам на уровне авторизации:
Administrator
или User
. Для получения дополнительной информации об авторизации на основе ролей см. документацию по авторизации на основе ролей.В ASP.NET Core обе стратегии записываются в требование авторизации. Служба авторизации использует обработчики авторизации для определения того, соответствует ли конкретный пользователь требованиям авторизации, применяемым к ресурсу.
Чтобы включить аутентификацию, вызовите AddAuthentication
для регистрации необходимых служб аутентификации на поставщике услуг приложения.
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddAuthentication();
var app = builder.Build();
app.MapGet("/", () => "Hello World!");
app.Run();
Как правило, используется определенная стратегия проверки подлинности. В следующем примере приложение настроено с поддержкой проверки подлинности на основе носителя JWT. В этом примере используются API-интерфейсы, доступные в пакете Microsoft.AspNetCore.Authentication.JwtBearer
NuGet.
var builder = WebApplication.CreateBuilder(args);
// Requires Microsoft.AspNetCore.Authentication.JwtBearer
builder.Services.AddAuthentication().AddJwtBearer();
var app = builder.Build();
app.MapGet("/", () => "Hello World!");
app.Run();
Если включены определенные службы проверки подлинности и авторизации, WebApplication
автоматически регистрирует промежуточные слои проверки подлинности и авторизации по умолчанию. В следующем примере не требуется вызывать UseAuthentication
или UseAuthorization
, чтобы зарегистрировать ПО промежуточного слоя, так как WebApplication
автоматически делает это после вызова AddAuthentication
или AddAuthorization
.
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddAuthentication().AddJwtBearer();
builder.Services.AddAuthorization();
var app = builder.Build();
app.MapGet("/", () => "Hello World!");
app.Run();
В некоторых случаях, например, при управлении порядком промежуточного слоя, необходимо явно зарегистрировать аутентификацию и авторизацию. В следующем примере ПО проверки подлинности запускается после ПО CORS. Дополнительные сведения о промежуточных слоях и этом автоматическом поведении см. в разделе «Промежуточные слои в минимальных API».
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddCors();
builder.Services.AddAuthentication().AddJwtBearer();
builder.Services.AddAuthorization();
var app = builder.Build();
app.UseCors();
app.UseAuthentication();
app.UseAuthorization();
app.MapGet("/", () => "Hello World!");
app.Run();
Стратегии проверки подлинности обычно поддерживают различные конфигурации, загружаемые через параметры. Минимальные приложения поддерживают параметры загрузки из конфигурации для следующих стратегий проверки подлинности:
Платформа ASP.NET Core ожидает найти эти параметры в разделе Authentication:Schemes:{SchemeName}
внутри конфигурации. В следующем примере две разные схемы Bearer
и LocalAuthIssuer
определяются соответствующими параметрами. Этот Authentication:DefaultScheme
параметр можно использовать для настройки используемой по умолчанию стратегии проверки подлинности.
{
"Authentication": {
"DefaultScheme": "LocalAuthIssuer",
"Schemes": {
"Bearer": {
"ValidAudiences": [
"https://localhost:7259",
"http://localhost:5259"
],
"ValidIssuer": "dotnet-user-jwts"
},
"LocalAuthIssuer": {
"ValidAudiences": [
"https://localhost:7259",
"http://localhost:5259"
],
"ValidIssuer": "local-auth"
}
}
}
}
В Program.cs
регистрируются две стратегии проверки подлинности на основе носителя JWT.
Bearer — это типичная схема по умолчанию в приложениях с поддержкой носителя JWT, но схема по умолчанию может быть переопределена, задав DefaultScheme
свойство как в предыдущем примере.
Как показано в следующем примере, имя схемы используется для уникальной идентификации стратегии проверки подлинности и служит ключом поиска при разрешении параметров проверки подлинности из конфигурации.
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddAuthentication()
.AddJwtBearer()
.AddJwtBearer("LocalAuthIssuer");
var app = builder.Build();
app.MapGet("/", () => "Hello World!");
app.Run();
Проверка подлинности используется для идентификации и проверки удостоверения пользователей в API. Авторизация используется для валидации и проверки доступа к ресурсам в API и упрощается методом расширения, зарегистрированным с помощью IAuthorizationService
AddAuthorization
. В следующем сценарии добавляется ресурс /hello
, который требует от пользователя представить подтверждение роли admin
с подтверждением области greetings_api
.
Настройка требований авторизации для ресурса — это двухэтапный процесс, который требует:
В следующем коде вызывается AddAuthorizationBuilder, который:
Код создает новую политику авторизации с именем admin_greetings
, которая инкапсулирует два требования авторизации:
admin
.greetings_api
утверждение области.Политика admin_greetings
предоставляется конечному узлу /hello
как требуемая политика.
using Microsoft.Identity.Web;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddAuthorizationBuilder()
.AddPolicy("admin_greetings", policy =>
policy
.RequireRole("admin")
.RequireClaim("scope", "greetings_api"));
var app = builder.Build();
app.MapGet("/hello", () => "Hello world!")
.RequireAuthorization("admin_greetings");
app.Run();
В этой статье используется приложение, настроенное с использованием проверки подлинности на основе носителя JWT. Аутентификация на основе носителя токена JWT требует, чтобы клиенты предъявляли токен в заголовке запроса для подтверждения их подлинности и заявлений. Как правило, эти маркеры выдаются центральным центром, например сервером удостоверений.
При разработке на локальном компьютере средство dotnet user-jwts
можно использовать для создания токенов носителя.
dotnet user-jwts create
Примечание
При вызове в проекте средство автоматически добавляет параметры проверки подлинности, соответствующие созданному маркеру appsettings.json
.
Токены можно настроить с помощью различных параметров. Например, чтобы создать токен для роли admin
и области greetings_api
, которые ожидаются политикой авторизации в предыдущем коде:
dotnet user-jwts create --scope "greetings_api" --role "admin"
Затем созданный маркер можно отправить как часть заголовка в выбранном средстве тестирования. Например, с использованием команды curl:
curl -i -H "Authorization: Bearer {token}" https://localhost:{port}/hello
Дополнительные сведения о средстве см. в полной dotnet user-jwts
документации.
Отзыв о ASP.NET Core
ASP.NET Core — это проект с открытым исходным кодом. Выберите ссылку, чтобы оставить отзыв:
События
Присоединение к вызову ИИ Навыков
8 апр., 15 - 28 мая, 07
Отточите свои навыки ИИ и введите подметки, чтобы выиграть бесплатный экзамен сертификации
Зарегистрируйтесь!