2017-12-06 5 views
0

私は、Azure Active Directory認証を使用してAsp.netアプリケーションを作成しました。今Azure AD私たちのアプリケーションで認証されたときにユーザーからテナントIDを取得する方法

とき私のアプリケーションへのユーザのログイン、私は

キーユーザーの電子メールIDおよびプロバイダなどのユーザーデータを取得しています今の要件は、私は応答からユーザーのテナントIDを取得する必要があります。

応答からユーザーテナントIDを取得する可能性はありますか?

ここでは、認証されたユーザーデータを取得するためにGetExternalLoginInfoAsync()を使用しています。

private IAuthenticationManager AuthenticationManager 
    { 
     get 
     { 
      return HttpContext.GetOwinContext().Authentication; 
     } 
    } 
    var loginInfo = await AuthenticationManager.GetExternalLoginInfoAsync(); 

あなたのお手伝いをお待ちしております。

+0

コードを共有してください。通常、テナントIDは結果オブジェクトで使用可能でなければなりません。 –

+0

私は自分のコードスニペットを共有してくれたので、すばやく応答していただきありがとうございます。 あなたはそれを調べていただけますか? –

答えて

1

これで、ユーザーテナントIDを応答から取得する必要があります。

https://sts.windows.net/{tenant-Id}/ 

か、次のコードスニペットを経由してテナントIDを取得できます:

loginInfo.Login.LoginProviderは、次のように次のようになり

var tenantId = loginInfo.ExternalIdentity.FindFirst(c => c.Type == "http://schemas.microsoft.com/identity/claims/tenantid").Value; 

と、アプリケーションが次を持つべきであることを確認してくださいアクセス許可: 1)ディレクトリデータを読み取る 2)すべてのユーザーのフルプロファイルを読む 3)サインインしてユーザーpr ofile

関連する問題