小编Arc*_*igo的帖子

如何在 Blazor WebAssembly MSAL 中处理多个资源的令牌

这个问题没有真正的解决方案,只有各种解决方法,直到 net7 出现。在 net7 中,我们应该再次能够根据https://github.com/dotnet/aspnetcore/pull/43954在一次调用中从多个源请求范围


我有一个 .net5 blazor web assembly 应用程序,使用 msal auth for azure 设置。

services.AddMsalAuthentication(options =>
{
    configuration.Bind("AzureAd", options.ProviderOptions.Authentication);
    options.ProviderOptions.DefaultAccessTokenScopes.Add("api://xxxxx/API.Access"); // API
    options.ProviderOptions.Cache.CacheLocation = "localStorage";
}); 
Run Code Online (Sandbox Code Playgroud)

这很好用。

此外,我需要访问 Microsoft graph。我已经使用 graph sdk 完成了此操作,并为 graph sdk 提供了身份验证处理程序

public class GraphAuthenticationProvider : IAuthenticationProvider
{
    private readonly NavigationManager _navigationManager;

    public GraphAuthenticationProvider(IAccessTokenProvider tokenProvider, NavigationManager navigationManager)

    {
        TokenProvider = tokenProvider;
        _navigationManager = navigationManager;
    }

    public IAccessTokenProvider TokenProvider { get; }

    public async Task AuthenticateRequestAsync(HttpRequestMessage request)
    {
        string[] scopes = new[] { "https://graph.microsoft.com/Mail.ReadWrite", …
Run Code Online (Sandbox Code Playgroud)

azure-ad-msal blazor .net-5 blazor-webassembly

8
推荐指数
1
解决办法
1761
查看次数