我已经成功设置了Blazor应用程序以向我工作的Azure租户进行身份验证。身份验证效果很好。我在Azure中使用清单中定义的appRoles进行了“应用程序注册”设置。我已经为应用程序添加了一些用户,并分配了这些角色,但是在身份验证之后,我没有在用户上下文中得到任何角色声明。
Startup.cs
services.AddAuthentication(AzureADDefaults.AuthenticationScheme)
.AddAzureAD(options => Configuration.Bind("AzureAd", options));
services.AddControllersWithViews(options =>
{
var policy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
options.Filters.Add(new AuthorizeFilter(policy));
});
清单:
"appRoles": [
{
"allowedMemberTypes": [
"User"
],
"description": "Coming soon.",
"displayName": "Viewer",
"id": "{guid goes here}",
"isEnabled": true,
"lang": null,
"origin": "Application",
"value": "Viewer"
},
{
"allowedMemberTypes": [
"User"
],
"description": "Coming soon.",
"displayName": "Manager",
"id": "{guid goes here}",
"isEnabled": true,
"lang": null,
"origin": "Application",
"value": "Manager"
}
],
我正在尝试在身份验证后检索带有声明的角色,但是没有角色通过。显然,这使IsInRole无法正常工作,而且对我而言,我找不到任何代码示例可实现此目的。
如果有人能指出我正确的方向,我将不胜感激!
答案 0 :(得分:0)