unique_name 声明 - 哪个用户属性?

Mar*_*arc 9 azure-active-directory azure-ad-graph-api

id_token包含名称为 的声明unique_name其价值似乎与索赔的价值相同upn。哪个用户实体属性提供此声明的值?

juu*_*nas 8

根据我的观察,该upn声明不会对访客用户显示。但是,确实unique_name会向所有用户显示。

它并不总是可以显示的,例如对于我添加的访客,它看起来像这样:

live.com#first.last@gmail.com
Run Code Online (Sandbox Code Playgroud)

因此,在这种情况下,它实际上是一个个人 MS 帐户,如 live.com# 前缀所示。

对于来自另一个 AAD 的访客,该值是他们的 UPN,不带前缀。

尽管如此,如果您需要一个不改变的用户唯一标识符,您可以使用 或oid声明sub。前者是用户的对象 ID,可用于调用 MS Graph API,而后者是用户在应用程序上下文中的唯一标识符。因此,所有应用程序中的对象 ID 都是相同的,而一个应用程序中的主题将是唯一的。