2017-03-12 5 views
0

私はauth0に対してauthを設定し、私たちのauth0テナントは私たちのAzure ADインスタンスへの接続で設定されています(auth要求はADFSサーバに再度リダイレクトされます)。Auth0がADFS接続に間違ったユーザ名を示唆

私が見ている問題は、auth0が接続の間違ったユーザー名を覚えているようだということです。あなたが見ることができるように、UPNと電子メールが同一でない

"upn": "[email protected]", 
"azure_id": "blabla", 
"given_name": "Trond", 
"family_name": "Hindenes", 
"nickname": "[email protected]", 
"tenantid": "1234", 
"email": "[email protected]", 

、およびAzureADは、ログインのための「UPN」を使用しています。

は、ここに私のユーザーです。 auth0が私のメールアドレスに基づいてログイン名を "覚えている"ことを除いて、すべてうまくいきます。そしてazureADに私をリダイレクトすると、私のメールアドレスでユーザー名フィールドをあらかじめ埋めます。

私の質問:ログオンのためにユーザーをAzureADにリダイレクトするときにauth0(クライアント設定またはjavascriptロックライブラリのいずれか)に正しい属性(upn)を送信するように強制する方法はありますか?

答えて

1

現在、「最後にログオンしました」というメッセージが表示されると、getSSODataエンドポイントからサーバーによって提供された文字列lastUsedUsernameがユーザーを識別するラベルとして使用されます。

ラベルにはuser.emailが割り当てられています。利用できない場合はuser.nameとなり、変更することはできません。あなたはこれで大丈夫だと理解していますが、それを変更することはできません(メッセージを完全に削除するには、rememberLastLogin Lock optionfalseに設定してください)。

Azure ADに送信される値を変更する場合は、オプションでauth.params.login_hintを使用できます。あなたは、(ユーザーのupnのような)(アズールADに任意のヒントを送信するためにAuth0を防ぐために)、またはあなたが望む任意の値を入れ、空の文字列を置くことができ、次のいずれか

var options = { 
    auth: { 
    params: { 
     login_hint: '' // or anything you want 
    } 
    } 
} 

var lock = new Auth0Lock(..., ..., options); 

問題は、今のところ、あります、ということですユーザープロファイルからupn値を取得するための良い方法はありません。しかし空の文字列を置くと、Azure ADは最後に使用された資格情報のリストを表示します。

+0

これは妥当な回避策です。私はそれに行くよ! – Trondh

+0

「そのラベルにはuser.emailが割り当てられています。利用できない場合はuser.nameに割り当てられており、変更することはできません」というコメントだけです。 - メッセージが間違っているため、これをバグと見なします。前回はメールでログオンしていなかったので、私はupnでログオンしました。 upnとemailが同一でない状況では、これはユーザにとって混乱し/イライラします。 – Trondh

+1

これを見ると、問題を追加します。私はこれがコーナーケースか、誰もそれについて前に不平を言ったことはないと思う。ありがとう! –

関連する問題