有没有办法在 Blazor WebAssembly 客户端上使用 MSAL.NET 提供单点登录的域提示?

Pat*_*ski 5 c# azure-active-directory openid-connect azure-ad-msal blazor-webassembly

在客户端的 Blazor WebAssembly 应用程序中使用MSAL.NET时,是否有任何方法可以提供域提示(或以其他方式避免需要“选择帐户”提示)?我想这可能是传递给 builder.Services.AddMsalAuthentication 的设置或选项,但我没有看到它。

我为服务器弄清楚了,但还没有为客户端弄清楚。如果无法设置此选项,我在尝试进行身份验证时会收到来自 microsoftonline.com 的多余“选择帐户”提示。

我目前在客户端的 Program.cs 中有:

builder.Services.AddMsalAuthentication(options =>
{
    builder.Configuration.Bind("AzureAd", options.ProviderOptions.Authentication);
    options.ProviderOptions.DefaultAccessTokenScopes.Add(myScope);
    options.UserOptions.RoleClaim = "roles";
});
Run Code Online (Sandbox Code Playgroud)

小智 5

当前不支持使用 Blazor Web 程序集发送 domain_hint。我已经打开了一个GitHub 问题来进一步跟踪这个问题。


Pat*_*ski 3

通过跟进这个问题,我终于让它在 .NET 7+ 中工作。重定向到登录的 Blazor 代码应该是这样的。

private void NavigateToLogin()
{

      InteractiveRequestOptions requestOptions = new()
      {
          Interaction = InteractionType.SignIn,
          ReturnUrl =  Navigation.Uri
      };

      requestOptions.TryAddAdditionalParameter("domainHint", "mydomain.com");
      Navigation.NavigateToLogin(Options.Get(DefaultOptionName).AuthenticationPaths.LogInPath, requestOptions);
}
Run Code Online (Sandbox Code Playgroud)

注意是domainHint和不是domain_hint