2016-05-16 7 views
1

ネイティブアプリケーションで共通エンドポイントを使用してユーザーのアクセストークンを取得しようとしています。私は、AuthenticationContextの権限としてlogin.windows.net/common/OAuth2/Authorizeと login.windows.net/commonの両方を試みました。ここでAzureネイティブアプリケーション共通認証

は、私が使用しています関数です。ここで

authResult = authContext.AcquireToken(resource, clientID, redirectUri, PromptBehavior.Auto); 

は自分のアプリケーションの権限ある:

のWindows AzureのActive Directoryの:サインインしているユーザー

のWindowsなどのディレクトリにアクセスしますAzureサービス管理API:組織としてAzureサービス管理にアクセスする

私は試して認証するとログインできますが、 nエラーが表示されます。

AADSTS65001:ユーザーまたは管理者がID「{クライアントID}」のアプリケーションの使用に同意していません。このユーザーとリソースに対する対話型承認要求を送信します。

https://login.windows.net/ {tenantID} /のOAuth2 /承認

を、私は、ユーザーが自分のテナントIDが何であるかを知らなくてもログインできるようにしたい:

私が使用してうまくログインできます。お手伝いありがとう。

答えて

0

私が行っていたMicrosoftアカウントでは、共通のエンドポイントを使用することはできません。 Azure Active Directoryアカウントのみを使用できます。

+0

あなたがログインする複数のディレクトリにMicrosoftアカウントを追加できます。 – juunas

+0

まさに、私はそれを知らなかったので、他の誰かが知らない場合にはここに投稿すると思いました。 – Christian

+0

特定のMicrosoftクライアントID(「1950a258-227b-4e31-a9cf-717495945fc2」など)を使用すると、ログインしたら、結果のトークンを使用して 'https://management.azure.com/tenants?api-version = 2014-01-01'エンドポイントを検索し、ユーザーが所属するすべてのテナントのリストを取得することができます(さらにユーザーのプロンプトを表示せずに、そのテナントの一部または全部のトークンにアクセストークンを追加することができます)。これは、Azure PowershellとVisual Studioがすべてのテナントとサブシステムを検出する方法です。恥ずかしいことに、自分のアプリでこれを行う方法はないようです。 –

関連する問題