在System.IdentityModel.Claims中有三个条目:UPN、Name和NameIdentifier。
"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name"
"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn"
"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier"
在使用AzureAD、OpenIdConnect和Office365进行身份验证后调试时,我发现名称和upn始终相同,类似于给定用户的“电子邮件”:例如johndoe@contoso.com或johdoe@contoso.onmicrosoft.com,而nameidentifier是一个不可读的标识符。
然后,我有几个问题:
1)在我的上下文中,“name”和“upn”是否总是相同的?
2)它们是否可变?我们看到名称(或upn)中存在域名,这是否意味着如果contoso.com被rototo.com收购,则可以修改名称和upn?或者类似地,如果公司开始订阅Office365但没有自定义域名,但稍后决定购买一个自定义域名呢?这些索赔的值可能会改变吗?
3)它与2)相关,但是NameIdentifier是否是获取特定用户引用的唯一安全方式?例如,在数据库中保存作为外键?
在使用AzureAD、OpenIdConnect和Office365进行身份验证后调试时,我发现名称和upn始终相同,类似于给定用户的“电子邮件”:例如johndoe@contoso.com或johdoe@contoso.onmicrosoft.com,而nameidentifier是一个不可读的标识符。
然后,我有几个问题:
1)在我的上下文中,“name”和“upn”是否总是相同的?
2)它们是否可变?我们看到名称(或upn)中存在域名,这是否意味着如果contoso.com被rototo.com收购,则可以修改名称和upn?或者类似地,如果公司开始订阅Office365但没有自定义域名,但稍后决定购买一个自定义域名呢?这些索赔的值可能会改变吗?
3)它与2)相关,但是NameIdentifier是否是获取特定用户引用的唯一安全方式?例如,在数据库中保存作为外键?