我不知道是否可以这样做,也找不到任何信息,所以我想在这里问一下,然后再开始浪费时间。目前,我有一个使用授权码授予流程进行身份验证的.NET Web API。用户登录,Azure AD发行令牌,并且使用以下代码对此后端进行了验证:
.AddAuthentication(options =>
{
options.DefaultScheme = JwtBearerDefaults.AuthenticationScheme;
})
.AddJwtBearer(options =>
{
options.Authority = $"{authentication.Instance}{authentication.TenantId}";
options.TokenValidationParameters = new Microsoft.IdentityModel.Tokens.TokenValidationParameters
{
ValidAudience = $"{authentication.ClientId}",
ValidIssuer = $"{authentication.Instance}{authentication.TenantId}/v2.0"
};
});
然后用[Authorize]
标签保护端点。
我想知道是否有可能创建一个可以从前端调用的端点,该端点将为当前登录的用户生成生命周期访问令牌。然后可以在某些端点上使用此访问令牌。但是,这些端点仍将受到默认身份验证的保护。那么,是否有一种方法可以使用Azure AD发行的默认Jwt令牌或Web API生成的令牌进行身份验证?以编程方式生成此令牌的最佳方法是什么?我还计划建立一个端点来删除这些生存期令牌。