【发布时间】:2018-09-18 00:40:56
【问题描述】:
我们的应用程序允许为组分配权限,这意味着对于每个用户,我们必须可靠地确定组成员身份。用户出示通过 ADAL 定期获得的令牌(一些使用 .NET,另一些使用 NodeJS,另一些使用 CLI)。
一些用户似乎在发送带有以下声明的令牌:
"hasgroups": true,
该声明记录在Azure AD token reference 页面中。
我们想为此添加一个测试用例,但在遵循here 和here 的步骤之后,我们总是会得到一个带有以下声明的令牌:
"_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的应用程序 ID。 -
_resource是https://vault.azure.net。
令牌已正确发出。唯一的问题是它显示_claim_names 和_claims_sources 而不是hasgroups。
【问题讨论】:
标签: azure azure-active-directory claims-based-identity adal azure-security