Я не знаю, возможно ли это сделать, и не смог найти никакой информации, поэтому я хотел бы спросить здесь, прежде чем начать потенциально тратить на это время. В настоящее время у меня есть. NET веб-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]
.
Что мне интересно, если возможно, это создать конечную точку, которая может быть вызвана из внешнего интерфейса, которая будет генерировать маркер доступа на весь срок действия для пользователя, который в данный момент вошел в систему. Этот токен доступа может затем использоваться на определенных конечные точки. Однако эти конечные точки все еще будут защищены аутентификацией по умолчанию. Так есть ли способ аутентификации с использованием EITHER токена Jwt по умолчанию, выданного Azure AD, ИЛИ токена, сгенерированного веб-API? И как лучше всего сгенерировать этот токен программно? Я также планирую создать конечную точку для удаления этих маркеров времени жизни.