unique_name 声明 - 哪个用户属性?

unique_name claim - which user attribute?

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

unique_name 声明是可以向用户显示的唯一标识符,这通常是 id-token 中的用户主体名称 (UPN)。 Azure AD 颁发的许多令牌都实现为 JSON Web 令牌或 JWT。 详情请阅读Azure AD token.

根据我的观察,upn 声明不会显示给来宾用户。 然而 unique_name 确实会显示给所有用户。

不是总能显示的,比如我加的一个Guest是这样的:

live.com#first.last@gmail.com

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

对于来自另一个 AAD 的来宾,该值为不带前缀的 UPN。

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