ASP.Net Core 9.0:身份验证和授权增强功能

作者:微信公众号:【架构师老卢】
4-8 18:50
33

概述:本文演示了与身份验证和授权相关的新功能。这些增强功能旨在提高安全性并简化验证用户身份和授予访问权限的过程。

OIDC 和 OAuth 参数定制

OAuth 和 OpenID Connect (OIDC) 身份验证处理程序现在提供了一个选项。此功能简化了通常包含在重定向查询字符串中的授权消息参数的自定义。以前,实现此级别的自定义需要实现自定义回调或在自定义处理程序中重写方法。但是,通过最新的改进,开发人员可以更简洁地实现相同的结果。

在早期版本的 .NET 中,实现自定义参数自定义如下所示:

builder.Services.AddAuthentication().AddOpenIdConnect(options =>  
{  
    options.Events.OnRedirectToIdentityProvider = context =>  
    {  
        context.ProtocolMessage.SetParameter("prompt", "login");  
        context.ProtocolMessage.SetParameter("audience", "https://api.example.com");  
        return Task.CompletedTask;  
    };  
});

现在,通过简化的方法,您可以获得与以下相同的结果

builder.Services.AddAuthentication().AddOpenIdConnect(options =>  
{  
    options.AdditionalAuthorizationParameters.Add("prompt", "login");  
    options.AdditionalAuthorizationParameters.Add("audience", "https://api.example.com");  
});

配置HTTP.sys扩展身份验证标志

现在,可以通过 HTTP.sys 的 Windows 身份验证使用 and 属性进行微调。这些属性允许开发人员优化 HTTP.sys 处理身份验证的方式。具体而言,您可以配置以下标志:EnableKerberosCredentialCachingCaptureCredentials

  1. HTTP_AUTH_EX_FLAG_ENABLE_KERBEROS_CREDENTIAL_CACHING:启用 Kerberos 凭据缓存以提高性能。
  2. HTTP_AUTH_EX_FLAG_CAPTURE_CREDENTIAL:在身份验证过程中捕获用户凭据。

例:

webBuilder.UseHttpSys(options =>  
{  
    options.Authentication.Schemes = AuthenticationSchemes.Negotiate;  
    options.Authentication.EnableKerberosCredentialCaching = true;  
    options.Authentication.CaptureCredentials = true;  
});
相关留言评论
昵称:
邮箱:
阅读排行