id_token包含名称为unique_name的声明。它的价值似乎与upn索赔的价值相同。哪个用户实体属性可以提供此声明的值?
答案 0 :(得分:1)
根据我的观察,import http;
var pipeRequest=(url,res)=>
http.get(url, (getRes)=>{
res.setHeader("content-type", getRes.headers['content-type']);
getRes.pipe(res);
}
);
router.get('/abc', function(req, res) {
pipeRequest("https://storage.googleapis.com/BUCKET_NAME/FILENAME.html",res);
});
声明对访客用户没有显示。
upn
确实会向所有用户显示。
并非总是可以显示某些内容,例如,对于我添加的来宾,它看起来像这样:
unique_name
因此,在这种情况下,它实际上是一个个人MS帐户,如live.com#前缀所示。
对于来自另一个AAD的来宾,该值是没有前缀的他们的UPN。
尽管这表示如果您需要一个不变的用户唯一标识符,
您可以使用live.com#first.last@gmail.com
或oid
声明。
前者是用户的对象ID,例如可以在对MS Graph API的调用中使用,而后者是用户在您的应用程序上下文中的唯一标识符。
因此,所有应用程序中的对象ID都相同,并且一个应用程序中的主题是唯一的。
答案 1 :(得分:0)
unique_name声明是可以显示给用户的唯一标识符,通常是id-token中的用户主体名称(UPN)。 Azure AD发行的许多令牌都被实现为JSON Web令牌或JWT。 有关详细信息,请阅读Azure AD token。