ネイティブアプリケーションで共通エンドポイントを使用してユーザーのアクセストークンを取得しようとしています。私は、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が何であるかを知らなくてもログインできるようにしたい:
私が使用してうまくログインできます。お手伝いありがとう。
あなたがログインする複数のディレクトリにMicrosoftアカウントを追加できます。 – juunas
まさに、私はそれを知らなかったので、他の誰かが知らない場合にはここに投稿すると思いました。 – Christian
特定のMicrosoftクライアントID(「1950a258-227b-4e31-a9cf-717495945fc2」など)を使用すると、ログインしたら、結果のトークンを使用して 'https://management.azure.com/tenants?api-version = 2014-01-01'エンドポイントを検索し、ユーザーが所属するすべてのテナントのリストを取得することができます(さらにユーザーのプロンプトを表示せずに、そのテナントの一部または全部のトークンにアクセストークンを追加することができます)。これは、Azure PowershellとVisual Studioがすべてのテナントとサブシステムを検出する方法です。恥ずかしいことに、自分のアプリでこれを行う方法はないようです。 –