В приложении angularjs я использую библиотеки adal и adal-angular для аутентификации пользователя в Azure AD.В бэкэнде я использую промежуточное программное обеспечение OWIN в моем webAPI для добавления пользовательских утверждений с помощью:
app.UseWindowsAzureActiveDirectoryBearerAuthentication(new WindowsAzureActiveDirectoryBearerAuthenticationOptions
{
Audience = ConfigurationManager.AppSettings["ida:Audience"],
Tenant = ConfigurationManager.AppSettings["ida:Tenant"],
Provider = new OAuthBearerAuthenticationProvider()
{
OnValidateIdentity = async context =>
{
if(!context.IsValidated)
return;
var userManager = context.OwinContext.Get<UserManager>();
string email = context.Ticket.Identity.GetClaimValue(System.Security.Claims.ClaimTypes.Email);
User user = userManager.GetByEmail(email);
context.Ticket.Identity.AddClaim(new Claim(ClaimTypes.UserId, user.Id.ToString(CultureInfo.InvariantCulture));
}
}
});
Это работает для текущего запроса, но как добавить утверждение в канале-носителе, отправленном httpinterceptor из adal-angular для следующегозапросы?