【发布时间】:2020-06-13 14:30:19
【问题描述】:
我使用的是 Blazor WASM 客户端,而不是 WPF 应用程序。
我将令牌添加到 .net 核心 API 的传出请求中,但我总是得到 401。
Blazor 验证良好并取回令牌,似乎工作正常,但是:
- 观众的 GUID 有误
- “scp”(范围)丢失,因此令牌无法使用
如果我从上述链接运行示例并解码令牌,我可以在令牌中看到正确的 AUD 和 SCP。所以这可能与我在 Blazor 中的配置有关?
在 Blazor 中配置
// AD authentication
builder.Services.AddMsalAuthentication(options =>
{
builder.Configuration.Bind("AzureAd", options.ProviderOptions.Authentication);
options.ProviderOptions.DefaultAccessTokenScopes.Add("api://xxx-xxxx-xxxx-xxxx/access_as_user");
});
builder.Services
.AddHttpClient<IApiClient, ApiClient>(client => client.BaseAddress = _baseUri)
.AddHttpMessageHandler<BaseAddressAuthorizationMessageHandler>();
回应
Bearer error="invalid_token", error_description="The audience '63ee4227-xxxx-xxxx-xxxx' is invalid"
观众 GUID 是我的 Blazor 应用注册的客户端 ID
Startup.cs 中的代码
...
services.AddProtectedWebApi(Configuration)
.AddInMemoryTokenCaches();
...
...
app.UseAuthentication();
app.UseAuthorization();
...
知道可能出了什么问题吗?
【问题讨论】:
标签: .net-core azure-active-directory blazor microsoft-identity-platform