Я пытаюсь добавить аутентификацию Azure AD в мое приложение ASP.NET 5 MVC 6 и последовали этому example on GitHub. Все отлично работает, если я ставлю рекомендуемый код метода действий:Использование [Authorize] с OpenIdConnect в MVC 6 приводит к немедленному пусту 401 ответ
Context.Response.Challenge(
new AuthenticationProperties { RedirectUri = "/" },
OpenIdConnectAuthenticationDefaults.AuthenticationType);
Однако, если я пытаюсь с помощью атрибута [Authorize]
вместо этого, я немедленно пустого 401 ответа.
Как я могу сделать [Authorize]
правильное перенаправление на Azure AD?
Моя конфигурация выглядит следующим образом:
public void ConfigureServices(IServiceCollection services) {
...
services.Configure<ExternalAuthenticationOptions>(options => {
options.SignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
});
...
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) {
...
app.UseCookieAuthentication(options => {
options.AutomaticAuthentication = true;
});
app.UseOpenIdConnectAuthentication(options => {
options.ClientId = Configuration.Get("AzureAd:ClientId");
options.Authority = String.Format(Configuration.Get("AzureAd:AadInstance"), Configuration.Get("AzureAd:Tenant"));
options.RedirectUri = "https://localhost:44300";
options.PostLogoutRedirectUri = Configuration.Get("AzureAd:PostLogoutRedirectUri");
options.Notifications = new OpenIdConnectAuthenticationNotifications {
AuthenticationFailed = OnAuthenticationFailed
};
});
...
}
У меня на самом деле были 'options.AutomaticAuthentication = true', но только для' app.UseCookieAuthentication' (обновил мой вопрос). Добавление этого в 'app.UseOpenIdConnectAuthentication' также помогло. Благодаря! –