Итак далеко, аутентификация и вход непосредственно из приложения работают без каких -либо проблем. Здесь:
https://openid.net/specs/openid-connect ... ection.3.1
so Я войду в систему, в своем приложении OAuth «A», затем я переключаюсь на другое приложение «B», без необходимости войти снова из -за SSO. При попадании в приложение в приложении «B» ADFS начинает вызовать вызовы по очистке для всех приложений, в которых был предоставлен SSO. . Впоследствии я нахожусь на подписи ADFS, но при перемещении обратно в приложение Я также Проверено, если есть проблема с настройками SameSite в cookie, нет проблем здесь). < /p>
Здесь сигнал подписи от ADFS до приложения A: < /p>
и обратный вызов:
Рабочий прямой вход выглядит так: < /p>
Код: Выделить всё
await HttpContext.SignOutAsync(
OpenIdConnectDefaults.AuthenticationScheme,
new AuthenticationProperties { RedirectUri = new Uri($"{Request.Scheme}://{Request.Host}{Request.PathBase}").ToString() }
);
< /code>
Это моя настройка конфигурации: < /p>
builder.Services.AddAuthentication(configureOptions =>
{
configureOptions.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;
configureOptions.DefaultChallengeScheme = OpenIdConnectDefaults.AuthenticationScheme;
}).AddCookie(configureOptions =>
{
configureOptions.SlidingExpiration = true;
}).AddOpenIdConnect(configureOptions =>
{
configureOptions.SaveTokens = true;
configureOptions.MetadataAddress = "https://my.idp.com/adfs/.well-known/openid-configuration";
configureOptions.ResponseType = OpenIdConnectResponseType.IdToken;
configureOptions.SignOutScheme = OpenIdConnectDefaults.AuthenticationScheme;
configureOptions.Scope.Clear();
configureOptions.Scope.Add("openid");
configureOptions.CallbackPath = "/signin-oidc";
configureOptions.RemoteSignOutPath = "/signout-oidc";
configureOptions.SignedOutCallbackPath = "/signout-callback-oidc";
configureOptions.ClientId = "https://example.com/applications/oauthpassive/";
});
https://github.com/dotnet/aspnetcore/bl ... handler.cs написано IDP - это Triggerd, я также вижу на сетевой панели, что запрос находится на рассмотрении, из -за точки останова:
При отладке я вижу, что код выполнено, и он не ломается где -то между:
Тем не менее, пользователь все еще вошел в приложение A.
Любые идеи, что я Можно ли настроить, разрабатывать или исследовать? Аутентификация cookie, когда будет получено вход переднего канала: < /p>
Код: Выделить всё
configureOptions.Events = new OpenIdConnectEvents
{
OnRemoteSignOut = async context =>
{
await context.HttpContext.SignOutAsync(CookieAuthenticationDefaults.AuthenticationScheme);
}
};
Подробнее здесь: https://stackoverflow.com/questions/780 ... nel-logout