我在进行AD身份验证时遇到了一些困难,我使用角度MSAL库登录用户,并将承载令牌发送到后端。
后端可以完美地处理它并存储用户声明。但是,发生的情况是用户属于AD的组不在此声明中。这是因为AD中的组太多,Azure仅返回“ hasgroups:true”。很好,我只是使用Graph API检索用户组。
现在我只是想知道,如何将检索到的组添加到现有用户声明中?我的最终目标是可以使用以下代码将某些组授权给控制器:
<tr *ngFor="let list of complianceReports.selectedData;let i = index">
<td>
<input type="checkbox" class="setup-checkbox" [(ngModel)]="complianceReports.attach[i]">{{i+1}}
</td>
<td>
<input type="checkbox" class="setup-checkbox" [(ngModel)]="complianceReports.link[i]">
</td>
</tr>
答案 0 :(得分:0)
要将Claim
添加到ClaimsIdentity
,您可以使用ClaimsIdentity.AddClaim(Claim) Method
来使用ClaimType 'Role'
代码可能看起来像这样:
var claimsIdentity = context.Authentication.User.Identity as ClaimsIdentity;
if (claimsIdentity == null || !claimsIdentity.IsAuthenticated)
{
return;
}
claimsIdentity.AddClaim(new Claim(ClaimTypes.Role, "YourRoleHere"));
编辑:
当然,这只是一次性的操作,因为您不会在前端更新身份。因此,下一个呼叫将没有更新的身份。而且我希望您不想为出现的每个请求调用Graph API。对吗?
我能想到的一些选择:
为了能够更好地为您提供帮助,请对此进行更多调查,尝试一些尝试,并在无法解决问题时提出一个新问题。