2017-07-12 12 views
3

プライマリAADのゲストユーザとセカンダリAADがあります。ゲストユーザーのために生成されたトークンは、upn要求を逃しているように見えますが、システム間でユーザーをマッピングするために使用されているように、upn要求が存在するという事実に頼っています。ゲストユーザのUPN要求はどこにありますか?

私はゲストのMicrosoft Liveアカウントでupnが見つからない場合がありますが、これは完全なAADアカウントであり、別のAADであることを理解しています。 Microsoftのマニュアルには、unique_nameクレームが実際にユニークでないかもしれないことが示唆されています!

https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-token-and-claims

あなたはUNIQUE_NAME請求の値を決定するものを教えてもらえますか?

upnの申し立てが存在しない場合、または外部にゲストされているユーザーの場合、フォールバックにこのクレームを使用することは安全ですか?

ゲストユーザートークンコンテンツ

{ 
    ..,... 
    "tid": "xxxxxxxx-7ea7-413c-96bc-3f3aba133732", 
    "unique_name": "[email protected]", 
    "ver": "1.0" 
} 

正規ユーザートークン内容:

{ 
    ...... 
    "tid": "xxxxxxxx-72d8-4715-b14f-990c93843416", 
    "unique_name": "[email protected]", 
    "upn": "[email protected]", 
    "ver": "1.0" 

}

私はあなたがおそらく私たちは、「OID」を使用するが、これは私たちを引き起こすたいと思います知っています同じユーザーの環境間の問題は、各AADで異なる値になります。

+1

あなたはunique_nameが "一意"ではないということを言いたいと思います。 [トークンクレーム]ページ(https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-token-and-claims)の説明を読んでください。 'トークンの主題を識別する人間が判読可能な値を提供します。この値は、テナント内でユニークであることが保証されておらず、表示目的でのみ使用されるように設計されています。」 –

+0

私の質問の1つは、その値がテナントでどのように計算され、 AAD管理者は、ユーザレコードを変更するために何を行うことができますか?建築家としてもいいし、きれいなネーミングが好きな人にとっても、その主張はなぜunique_nameと呼ばれていますか? –

+0

私たちはまったく同じ状況にあります。今までは 'unique_name'を使用しましたが、この識別子はすべての場合にUPNの値と一致しません。テナントゲストユーザーの場合私たちの解決策は、 'unique_name'にフォールバックを付けて' upn'を使用することと、さらなるGraph APIユーザークエリーに対して、すべてのユーザーにクエリを行い、 'userPrincipalName'と' mail'の両方が一致するかどうかを調べることです。 「unique_name」という名前について、私は個人的にはMicrosoftのドキュメントを読んで笑いました。 – martinjlowm

答えて

0

Azure ADのゲストユーザを表すトークン(ウェル、トークンはupn)は実際にはupnのクレームを逃していますが、あなたが発見したようにunique_nameのクレームが含まれています。これは、他のAzure ADテナントのゲストユーザ、および外部IDプロバイダのゲストユーザに同等に当てはまります。

他のAzure ADテナントのゲストユーザのunique_nameクレームの値は、利用可能な場合はユーザのUPNになります。そうでない場合は、ユーザのメールアドレスに戻ります。他のタイプのゲストユーザの場合、unique_nameは他のフォーマットの値をとるでしょう。&この考え方は、unique_nameが、ゲストユーザにとって人間工学に基づいたベストエフォート型の識別子であるということです。

いずれの場合でも、unique_nameの値を変更することができ、まれに衝突が発生することがあります。そのため、ドキュメントでは、それをプライマリユーザー識別子として使用することを推奨しています。 Azure ADシステムで推奨されるユーザ識別子は、オブジェクトIDまたはoidです。

はい、oidは、異なるテナント間で同じ人間のために異なります。しかし、それはAzure ADテナントモデルのポイントのようなものです。別のテナントのゲストユーザーは、その「自宅」テナントのユーザーとは全く異なるユーザーとしてアプリケーションに表示されます。これらの2人のユーザーをマップする場合は、unique_nameのようなヒューリスティックを使用するのがベストです。

私はあなたがカップルの事のためにfeedback.azure.comに要求を提出することをお勧めします:

  1. テナント間でユーザーを識別することができます信頼性の高いユーザ識別子。
  2. AADでゲストアカウントを処理する方法に関する優れたドキュメント。
関連する問題