我想为与Azure AD(ADAL)连接的C#Web应用程序添加其他声明。
我尝试在PowerShell中(按{https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-claims-mapping#claims-mapping-policy-assignment)添加新策略,然后重新运行该应用程序。相同的声明显示出来(不多也不少)。
是否有添加管理员字段的方法。我没有在此列表中看到它(https://docs.microsoft.com/mt-mt/azure/active-directory/develop/active-directory-claims-mapping?view=azurermps-6.9.0)
下面是我尝试过的PowerShell Cmdlet:
New-AzureADPolicy -Definition @('{"ClaimsMappingPolicy":{"Version":1,"IncludeBasicClaimSet":"true", "ClaimsSchema": [{"Source":"user","ID":"department","JwtClaimType":"role"},{"Source":"user","ID":"extensionattribute1","JwtClaimType":"userdata"}]}}') -DisplayName "CustomClaimsPolicy" -Type "ClaimsMappingPolicy"
Add-AzureADServicePrincipalPolicy -Id { Principal Object Id } -RefObjectId { Policy Id }
在C#中,我按如下所述声明:
var claims = User.Claims.Select(claim => new { claim.Type, claim.Value }).ToArray();
答案 0 :(得分:0)
我可以从侧面再现您的问题,PowerShell可以正常工作,但是我检查了门户网站中的user attributes
,它们不存在。似乎是错误(不确定,如果我做错了,请纠正我),您可以在Github中open an issue,记住该功能处于预览状态。
是否有添加管理员字段的方法。我没有在此列表中看到它
您似乎无法做到这一点,请参见以下已知问题:Email address not being passed and Manager ID not available to be mapped。