Я заметил, что после того, как я начал использовать OpenId Connect (OIDC) v2 в своем проекте .NET Core, мне предлагается выбрать учетную запись при выходе, хотя я настроил OnRedirectToIdentityProviderForSignOut для использования LoginHint.
Я ничего не нашел об этом в документация. Моя конфигурация:
services.AddAuthentication(AzureADDefaults.AuthenticationScheme)
.AddAzureAD(options =>
{
Configuration.Bind("AzureAd", options);
});
services.Configure<OpenIdConnectOptions>(AzureADDefaults.OpenIdScheme, options =>
{
options.Authority = options.Authority + "/v2.0/";
options.TokenValidationParameters.NameClaimType = "preferred_username";
// Handling the sign-out
options.Events.OnRedirectToIdentityProviderForSignOut = async context =>
{
var user = context.HttpContext.User as ClaimsPrincipal;
string displayName = user.FindFirstValue("preferred_username");
// Avoid displaying the select account dialog
context.ProtocolMessage.LoginHint = displayName;
context.ProtocolMessage.DomainHint = "organizations";
await Task.FromResult(0);
};
});
Итак, как мне избежать экрана выбора учетной записи при выходе с использованием ОИДК v2 в проекте .NET Core?





В настоящее время избежать этого невозможно, это сделано службой AAD в версии 2. Это поведение версии 2 добавлено сервисной группой для дополнительной безопасности. Вы можете обратиться к эта проблема с гитхабом для более подробной информации.
@TiagoBrenck Экран выхода из системы управляется не MSAL JS, а службой.
Эта проблема с github связана с MSAL.js. Я говорю о
Microsoft.Identity.Clientдля dotnet