我有一个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)?
答案 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将显示其自己的上次使用的凭据列表,这可能对您的用户来说已经足够了。