2016-06-12 10 views
2

私はAzureでホストされているWeb APIに接続するCordovaアプリケーションを実行しています。 Azure ADベアラ認証を使用してAPIを保護しています。ユーザーがエンドポイントの1つを呼び出そうとすると、Azure ADサインインページに転送され、ユーザーの資格情報が入力され、トークンが与えられます。トークンは、以降のすべてのAPI要求に追加されます。私はそうするためにモバイルアプリクライアントSDKを使用しています(cordova-plugin-ms-azure-mobile-apps)。Azure ADベアラートークンにリンクされたユーザー名を取得する

私は今、誰がAPIを呼び出すのか、サーバー側で知りたいと思います。 Web APIコントローラのUserプロパティを調べました。多くのクレームを含むいくつかの情報がありますが、実際のユーザー名(sidのみ)に似ているものはありません。

そこで質問は今ある:

  • 私は何とかトークンに情報を追加することはできますか?トークンはAzure ADから来ているので、追加情報を追加する場所でもあると思いますが、可能かどうかはわかりません。
  • もしそうでなければ、何とかsidを使ってこれをログインしているユーザーに翻訳できますか?

おそらく私が考えなかった別のオプションがあります。

答えて

0

これが見つかりました:https://github.com/Azure/azure-mobile-apps-net-server/wiki/Understanding-User-Ids。これは、複数の認証プロバイダを持つ可能性があるので、 "stable_sid"プロパティがユーザの電子メールアドレスよりも安定した識別子であることを説明しています。

私は、電子メールアドレスを見つけるのではなく、代わりにstable_sid識別子を使うように書き直すつもりだという結論に達しました。

+0

あなたはこれを解決する方法を見つけましたか? – Meena

+0

解決策があれば簡単に教えてください。私も同じ問題に直面しています。 – Meena

関連する問題