提供给 Azure 函数的给定声明主体的名称标识符声明在不同的应用程序中是否相同?



我有一个基于 Azure Functions 构建的应用程序。

我的用户可以使用 Facebook、Google 和 Microsoft 作为身份提供程序,因为我的应用程序已在这些提供程序中注册

。每次调用我的 Azure 函数时,都会为其提供一个ClaimPrincipal实例。作为声明的一部分,我有可用于识别给定用户的nameidentifier声明。

问题

如果用户A使用我的应用程序并被分配了nameidentifiersid:123456,那么如果同一用户使用不同的应用程序,是否会为同一用户分配相同的nameidentifier

不同,我的意思是由另一家公司开发的应用程序,该公司在标识提供者中有自己的注册。

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

您可以从 IdP 返回与用户名完全无关的名称 ID。

要回答相同的问题,这完全取决于您将服务提供商连接到哪些标识提供者。听起来很有可能,您想要的是多个返回相同 NameID 格式的标识提供者。

在 SAML 2.0 中,您可以指定 NameID 可以返回的格式,以便跨身份提供程序使用通用模式,并防止使用逻辑来解析可能返回的每个 NameID。

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

希望对您有所帮助。

我认为每个OpenID身份提供者的令牌中都应该有"openid"声明。它是UUID,因此它绝对是可用于区分用户的唯一值。

最新更新