在authenticationresult上的Adal UserInfo UniqueId

时间:2014-08-21 21:23:19

标签: adal

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

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

我想确保这种行为是稳定的,可以用来确保我知道哪些令牌与哪些用户无关,无论他们签署什么租户。

1 个答案:

答案 0 :(得分:3)

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