【问题标题】:User identification claim in OpenID connectOpenID 连接中的用户标识声明
【发布时间】:2015-08-14 13:18:00
【问题描述】:

我正在使用Auth0 设置身份验证并使用 OpenID Connect。我已经根据this example 设置了我的 OWIN Startup 课程。现在我的问题是来自 Auth0 数据库的用户提供的声明与通过企业连接进行身份验证的用户不同(我正在使用 Azure AD 来测试这个场景)。

我的问题是,我应该使用哪个声明来在我的应用程序的数据库中查找用户以执行授权,即用作用户 ID? 另请注意上面链接中的注释,它说我可能需要“读取/修改基于 JWT 填充的声明”。

【问题讨论】:

    标签: azure-active-directory openid-connect auth0


    【解决方案1】:

    OpenID Connect 已将 sub 声明标准化为主要用户标识符。或者,您可以使用 mail 声明,但需要注意的是可以重新分配电子邮件地址,而 sub 不应该。

    【讨论】:

    • 谢谢,我现在在文档中找到了sub 声明。但是,由于某种原因,在我收到的回复中(请参阅问题中链接的示例),context.AuthenticationTicket.Identity 上没有 sub 声明。
    • 在 .NET 中,您应该能够使用 context.AuthenticationTicket.Identity.FindFirst(ClaimTypes.NameIdentifier).Value 作为唯一的用户标识符
    • 返回 null,我想这就是他们在示例中设置名称声明的原因。我要检查 auth0,可能问题是特定于他们的环境。
    猜你喜欢
    • 2021-05-14
    • 2017-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-24
    • 1970-01-01
    • 2020-01-09
    • 2010-11-30
    相关资源
    最近更新 更多