【问题标题】:Auth0 suggests the wrong username for ADFS connectionAuth0 建议 ADFS 连接的用户名错误
【发布时间】:2023-04-01 03:39:02
【问题描述】:

我有一个 aurelia 应用程序配置为针对 auth0 进行身份验证,并且我们的 auth0 租户配置了与我们的 Azure AD 实例的连接(它再次将身份验证请求重定向到我们的 ADFS 服务器)。

我看到的问题是 auth0 似乎记住了错误的连接用户名。

这是我的用户:

"upn": "cyxx@domain.com",
"azure_id": "blabla",
"given_name": "Trond",
"family_name": "Hindenes",
"nickname": "cyxx@domain.com",
"tenantid": "1234",
"email": "Trond.Hindenes@domain.com",

如您所见,upn 和电子邮件并不相同,AzureAD 使用“upn”进行登录。一切正常,除了 auth0 根据我的电子邮件地址“记住”我的登录信息,并且当它将我重定向到 azureAD 时,它会用我的电子邮件地址而不是我的 upn 预填充用户名字段。

所以,我的问题是:在将用户重定向到 AzureAD 进行登录时,有什么方法可以强制 auth0(在客户端设置或 javascript 锁定库中)发送正确的属性 (upn)?

【问题讨论】:

    标签: auth0


    【解决方案1】:

    目前,当 Lock 显示“您上次登录时使用”消息时,它使用服务器从 getSSOData 端点提供的 lastUsedUsername 字符串作为标签来识别用户。

    该标签被分配了user.email,或者,如果不可用,则为user.name,并且无法更改。我知道您对此表示同意,但为了清楚起见,您无法更改它(您可以通过将 rememberLastLogin Lock option 设置为 false 来完全删除该消息)。

    现在,如果您希望更改发送到 Azure AD 的值,可以在选项中使用 auth.params.login_hint。您可以输入一个空字符串(以防止 Auth0 向 Azure AD 发送任何提示)或输入您想要的任何值(如用户的upn):

    var options = {
      auth: {
        params: {
          login_hint: '' // or anything you want
        }
      }
    }
    
    var lock = new Auth0Lock(..., ..., options);
    

    问题在于,到目前为止,确实没有什么好方法可以从用户配置文件中获取 upn 值。但是,如果您输入一个空字符串,Azure AD 将显示其自己的上次使用凭据列表,这对您的用户来说可能已经足够了。

    【讨论】:

    • 谢谢,这是一个合理的解决方法。我试试看!
    • 仅对“该标签分配了 user.email 或如果不可用,则分配了 user.name,并且无法更改。”的评论。 - 我认为这是一个错误,只是因为消息是错误的。我上次没有用我的电子邮件登录,我用我的 upn 登录。在 upn 和 email 不相同的情况下,这会让用户感到困惑/沮丧。
    • 我将为此添加一个问题,以便对其进行查看。我想这要么是一个极端案例,要么只是以前没有人抱怨过。谢谢!
    猜你喜欢
    • 2016-06-14
    • 2017-06-03
    • 1970-01-01
    • 2011-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-08
    相关资源
    最近更新 更多