提供给Azure功能的给定ClaimPrincipal的名称标识符声明是否在不同的应用程序中相同?

问题描述 投票:0回答:2

我有一个基于Azure功能的应用程序。

我的用户可以使用Facebook,Google和Microsoft作为身份提供商,因为我的应用程序已在每个提供商中注册。

每次调用我的Azure函数时都会获得一个ClaimPrincipal实例。作为声明的一部分,我有nameidentifier声称我可以用来识别给定的用户。

如果用户A使用我的应用程序并被分配nameidentifier sid:123456,如果他使用不同的*应用程序,同一用户是否被分配了相同的nameidentifier

不同的是,我指的是由另一家公司开发的应用程序,该公司在身份提供商中拥有自己的注册。

c# azure azure-functions claims-based-identity
2个回答
0
投票

名称标识符可以是任何名称电子邮件地址或Kerberos主体名称是此类信息的常见示例。它们并不总是等于用户名。

您可以从您的IdP返回一个NameID,作为与用户名完全无关的内容。

要回答同样的问题,这一切都取决于您将服务提供商挂钩的身份提供商。很可能,听起来你想要的是多个身份提供者,它们返回相同的NameID格式。

在SAML 2.0中,您可以指定NameID可以返回的格式,这样您就可以在身份提供程序之间拥有一个通用模式,并防止逻辑分析出可能返回的每个NameID。

NameID是IDP应用程序提供的。这是您的应用程序在从IDP返回信息时验证的内容。

希望能帮助到你。


0
投票

我认为每个OpenID身份提供商的令牌都应该有“openid”声明。它是UUID,因此它绝对是您可以用来区分用户的唯一值。

© www.soinside.com 2019 - 2024. All rights reserved.