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