0

AcquireToken 返回的认证结果中的 UniqueId 字段是如何生成的。对于其他租户中的外国原则用户,此 ID 是否稳定。例如,假设用户是在租户 A 中创建的,并且是租户 B 中的外部委托人。当我使用租户 A 请求令牌时,我得到一个具有特定唯一 ID 的新身份验证结果。然后,如果我为租户 B 创建一个新的身份验证上下文,并使用与租户 A 相同的登录名请求一个令牌。我得到一个令牌,并且 uniqueId 似乎是相同的。

对于基于活动目录的用户和基于实时的用户来说,这个 uniqueId 是否稳定?

我想确保这种行为是稳定的,可以用来确保我知道哪些令牌与用户相关联,而不管他们登录的租户是什么。

4

1 回答 1

3

ADAL 根据 STS 返回的两个声明分配 UniqueId 属性的值。第一个“oid”声明,如果不存在,则使用“sub”声明。'oid' 是用户的唯一标识符,但不幸的是,它并非始终可用。例如,对于通过用户(例如 MSA)。“sub”声明是作为一对用户标识符和应用程序 ID 生成的,因此如果应用程序发生更改,“sub”声明也会发生变化。这就是为什么我们不能保证 UniqueId 在应用程序和租户之间是唯一的。

于 2014-08-21T21:40:55.283 回答