Auth0表明ADFS连接的用户名错误

时间:2017-03-12 17:59:41

标签: auth0

我有一个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)?

1 个答案:

答案 0 :(得分: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将显示其自己的上次使用的凭据列表,这可能对您的用户来说已经足够了。