我已经注意到,在我的.NET Core Project使用 openID Connect(oidc(v2 之后,我将提示我在sign-上选择一个帐户即使我已经配置了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);
};
});
那么,在.NET Core Project上使用 oidc v2 登录时,我如何避免使用帐户选择屏幕?
当前无法避免这种情况,这是通过v2上的AAD服务设计的。服务团队添加了此V2行为以进行额外的安全性。您可以参考此GitHub问题以获取更多详细信息。