У меня есть проект .net Umbraco CMS, который мне передали, чтобы проверить, смогу ли я добавить вход через единый вход Azure. Я нашел пакет Umbraco.Community.AzureSSO и настроил предоставленные мне параметры Azure. Изначально при входе в систему происходит циклическое перенаправление на страницу входа. После внесения нескольких изменений при попытке войти в систему появляется следующая ошибка:
Копировать код
Microsoft.AspNetCore. Authentication.AuthenticationFailureException: произошла ошибка при обработке удаленного входа в систему.
Microsoft.AspNetCore.Authentication.AuthenticationFailureException: невозможно снять защиту сообщения.State.
--- Конец внутренней трассировки стека исключений ---
в Microsoft.AspNetCore.Authentication.RemoteAuthenticationHandler\`1.HandleRequestAsync()
в Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
в Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddlewareImpl. Invoke(HttpContext context)
Мои настройки приложения настроены так, как указано в документации (изменение значений на реальные):
"AzureSSO": {
"Credentials": {
"Instance": "https://login.microsoftonline.com/",
"Domain": "",
"TenantId": "",
"ClientId": "",
"CallbackPath": "/umbraco-microsoft-signin/",
"SignedOutCallbackPath": "/umbraco-microsoft-signout/",
"ClientSecret": ""
},
"DisplayName": "Azure AD",
"DenyLocalLogin": true,
"AutoRedirectLoginToExternalProvider": true,
"TokenCacheType": "InMemory",
"GroupBindings": {
"": "",
"": ""
},
"SetGroupsOnLogin": true,
"DefaultGroups": [
"editor"
],
"Icon": "fa fa-lock",
"ButtonStyle": "btn-microsoft",
"LogUnmappedRolesAsWarning": false
},
И мой класс Startup выглядит так:
using Microsoft.AspNetCore.Authentication.OpenIdConnect;
using Microsoft.Identity.Web;
using Umbraco.Cms.Core.Composing;
using Umbraco.Community.DataProtection.Composing;
namespace proyect
{
public class Startup
{
private readonly IWebHostEnvironment _env;
private readonly IConfiguration _config;
public Startup(IWebHostEnvironment webHostEnvironment, IConfiguration config)
{
_env = webHostEnvironment ?? throw new ArgumentNullException(nameof(webHostEnvironment));
_config = config ?? throw new ArgumentNullException(nameof(config));
}
public void ConfigureServices(IServiceCollection services)
{
services.AddAuthentication(OpenIdConnectDefaults.AuthenticationScheme)
.AddMicrosoftIdentityWebApp(_config.GetSection("AzureSSO:Credentials"));
services.AddUmbraco(_env, _config)
.AddBackOffice()
.AddWebsite()
.AddDeliveryApi()
.AddComposers()
.Build();
services.AddCors();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();
if (!env.IsProduction())
{
app.UseCors(options =>
options.WithOrigins("http://localhost:4200", "http://localhost:44304")
.AllowAnyMethod()
.AllowAnyHeader());
}
app.UseUmbraco()
.WithMiddleware(u =>
{
u.UseBackOffice();
u.UseWebsite();
})
.WithEndpoints(u =>
{
u.UseInstallerEndpoints();
u.UseBackOfficeEndpoints();
u.UseWebsiteEndpoints();
});
}
}
public class Composer : IComposer
{
public void Compose(IUmbracoBuilder builder)
{
builder.AddUmbracoDataProtection(); // Adds Umbraco data protection configuration
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/791 ... mbraco-cms