SustaSySys.SAML2 перенаправления в /saml2 /logout, но промежуточное программное обеспечение возвращает 404C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 SustaSySys.SAML2 перенаправления в /saml2 /logout, но промежуточное программное обеспечение возвращает 404

Сообщение Anonymous »

Проблема
Я пытаюсь реализовать вход и вход с использованием внешнего IDP в приложении .Net 8 с SustaSysys .Saml2.aspnetCore2 (версия = 2.10.0) .

[*] login отлично работает. < /li>
ряд также работает , но после входа в систему пользователь перенаправляется на /самл2/logout.
Проблема: /saml2/logout возвращает 404 , и хотя я создал метод действия в этой конечной точке, запрос, похоже, перехвачен промежуточным программным обеспечением.
< /ul>
конфигурация в startup.cs < /strong> < /p>
var saml2Options = Configuration.GetSection("Authentication:Saml2").Get();

services.AddAuthentication(options =>
{
options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = Saml2Defaults.Scheme;
})
.AddCookie(CookieAuthenticationDefaults.AuthenticationScheme)
.AddSaml2(options =>
{
options.SPOptions.EntityId = new EntityId(saml2Options.EntityId);
LoadCertificate(options, saml2Options.Certificate);

options.IdentityProviders.Add(new IdentityProvider(
new EntityId(saml2Options.IdentityProvider.EntityId),
options.SPOptions)
{
MetadataLocation = saml2Options.IdentityProvider.MetadataLocation,
LoadMetadata = true
});
});
< /code>
Метод действий в журнале < /strong>
Этот метод инициирует федеративный журнал, отправляя SAML Logoutrequest. < /p>
[HttpPost]
public IActionResult ExecuteLogout()
{
var props = new AuthenticationProperties
{
RedirectUri = "/"
};

var user = HttpContext.User;

var sessionIndex = user.FindFirst(Saml2ClaimTypes.SessionIndex)?.Value;
if (!string.IsNullOrEmpty(sessionIndex))
{
props.Items.Add(Saml2ClaimTypes.SessionIndex, sessionIndex);
}

var logoutNameIdentifier = user.FindFirst(Saml2ClaimTypes.LogoutNameIdentifier)?.Value;
if (!string.IsNullOrEmpty(logoutNameIdentifier))
{
props.Items.Add(Saml2ClaimTypes.LogoutNameIdentifier, logoutNameIdentifier);
}

return SignOut(props, Saml2Defaults.Scheme);
}

попытка исправить: Создание действия
для/saml2/logout
, даже если я создал явный метод контроллера для обработки/SAML2/ Выход, он никогда не вызывается .
[AllowAnonymous]
[Route("Saml2")]
public class LoggedOutController : Controller
{
private readonly ILogger logger;
private readonly Saml2Settings samlSettings;

public LoggedOutController(ILogger logger, IOptions samlSettingsOptions)
{
this.logger = logger;
this.samlSettings = samlSettingsOptions.Value;
}

[AllowAnonymous]
[HttpGet("Logout")]
public IActionResult Logout([FromQuery] string SAMLResponse)
{
logger.LogInformation($"User logged out. Saml response: {SAMLResponse}");
return View("Logout");
}
}

Любой совет был бы очень признателен! Br />private static void LoadCertificate(Saml2Options options, CertificateSettings certSettings)
{
var store = new X509Store(StoreName.My, StoreLocation.LocalMachine);
try
{
store.Open(OpenFlags.ReadOnly);
var certificates = store.Certificates.Find(
X509FindType.FindBySubjectName, certSettings.SubjectName, false);
if (certificates.Count > 0)
{
options.SPOptions.ServiceCertificates.Add(certificates[0]);
}
else
{
throw new InvalidOperationException("Required certificate not found.");
}
}
finally
{
store.Close();
}
}


Подробнее здесь: https://stackoverflow.com/questions/794 ... eturns-404
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»