Мы разрабатываем сервер аутентификации/идентификации на основе сервера .net/c# & openiddict. Мы делегируем аутентификацию на сторонний сервер (используя клиент OpenIddict), в настоящее время только один поставщик, но ожидая добавления других. «Счастливый путь» вхождения работает нормально: пользователь попадает на нашу конечную точку аутентификации, спрашивает, какую 3-ю, которая они хотят, перенаправляется на этот сайт, выполняет аутентификацию и перенаправляется обратно на наш сервер, где мы приносим токенс и перенаправляем их обратно на их правильный redirect_uri с кодом, чтобы вернуть к нам. не удается и перенаправляет на наш перенаправление URI с ошибкой - https://id-server.example.com/identity/ ... esciption=... - затем трубопровод OpenIddict возвращает ошибку 400 BadRequest. Вместо этого мы хотели бы завершить поток обратно к приложению клиентского приложения redirect_uri с соответствующим образом преобразованной ошибкой (error = "access_denied", error_description = " Аутентификация не удалась").
Я добавил обработчик ошибки в опции клиента OpenIdct:
options.AddEventHandler(builder =>
{
builder.UseInlineHandler(context =>
{
if (context.RequestUri?.AbsolutePath.StartsWith("/identity/login/callback") ?? false)
{
// Proceed to the Controller handler logic:
context.SkipRequest();
}
return default;
});
});
< /code>
, что приводит к тому, что поток выполнения пропускает ответ на ошибку OpenIddict и управляющий потоком через наш обработчик обратного вызова как обычно. Нам нужно определить соответствующий запрос клиента и перенаправить на правильный redirect_uri с правильным состоянием от клиента:
[HttpGet("~/identity/login/callback/{provider}"), HttpPost("~/identity/login/callback/{provider}"), IgnoreAntiforgeryToken]
public async Task LogInCallback()
{
// Retrieve the authorization data validated by OpenIddict as part of the callback handling.
var result = await HttpContext.AuthenticateAsync(OpenIddictClientAspNetCoreDefaults.AuthenticationScheme);
if (!result.Succeeded && result... )
Подробнее здесь: https://stackoverflow.com/questions/796 ... erver-clie
Чистое распространение сторонней аутентификации снятия аутентификации для открытия клиентского приложения сервера ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Распространение OIDC сторонней аутентификации в приложении клиента, в OpenIddict
Anonymous » » в форуме C# - 0 Ответы
- 2 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Распространение OIDC сторонней аутентификации в приложении клиента, в OpenIddict
Anonymous » » в форуме C# - 0 Ответы
- 2 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Распространение OIDC сторонней аутентификации в приложении клиента, в OpenIddict
Anonymous » » в форуме C# - 0 Ответы
- 2 Просмотры
-
Последнее сообщение Anonymous
-