我们的应用程序允许为组分配权限,这意味着对于每个用户,我们必须可靠地确定组成员身份。用户出示通过 ADAL 定期获得的令牌(一些使用 .NET,其他使用 NodeJS,其他使用 CLI)。
一些用户似乎正在发送带有以下声明的令牌:
"hasgroups": true,
Azure AD 令牌参考页中记录了该声明。
我们想为此添加一个测试用例,但是在执行此处和此处的步骤之后,我们总是会得到一个带有以下声明的令牌:
"_claim_names": {
"groups": "src1"
},
"_claim_sources": {
"src1": {
"endpoint": "https://graph.windows.net/{redacted}/users/{redacted}/getMemberObjects"
}
},
我们的设置有什么问题?为什么我们不能得到hasgroups
索赔?
以下是一些附加信息:
- 应用程序类型是 Native(不是 WebApi)。
- 清单说
"oauth2AllowImplicitFlow": true
。 - 该应用程序被授予对 Azure Key Vault 的访问权限。
我们使用以下代码来获取令牌(在 C# 中):
var userCredential = new UserCredential( _userName, _password );
result = context.AcquireToken( _resource, _clientId, userCredential );
在哪里:
_userName
并且_password
来自有很多组的用户。_clientId
是本机应用程序的应用程序 ID - 带有"oauth2AllowImplicitFlow": true
._resource
是https://vault.azure.net
。
令牌已正确发出。唯一的问题是它显示_claim_names
and_claims_sources
而不是hasgroups
.