2017-02-21 12 views
1

古いazureポータルからアプリを作成し、マルチテナントに設定することにしました。マルチテナントとしてアプリを設定しても、異なるテナントのazure広告アプリに接続できません

トークン用のOAuth 2.0トークンエンドポイント(https://login.microsoftonline.com/<my tenant id>/oauth2/token)と承認用のOAuth 2.0認証エンドポイント(https://login.microsoftonline.com/<my tenant id>/oauth2/authorize)を設定しました。アイデンティティから

ユーザーアカウント「[email protected]」:

私は、私は紺碧にログインするために使用するユーザ以外、Office 365のユーザーIDを登録してオーソライズしようとすると、私はこのエラーを取得しますプロバイダ 'https://sts.windows.net/49322bd9-93ea-4911-a8e4-1aa10bc5b680/'はテナント 'mary'に存在せず、そのテナントのアプリケーション '8adfad2b-f28a-40a6-8698-8b53ac506132'にアクセスできません。テナントで最初に外部ユーザーとしてアカウントを追加する必要があります。サインアウトし、別のAzure Active Directoryユーザーアカウントで再度サインインします。

このユーザーをazureに手動で追加すると、アクセストークンが表示されますが、そのようなケースはあってはいけません。私のアプリはマルチテナントなので、これはランタイムが発生する必要があります。私はどこが間違っているかもしれないとお考えできますか?

+0

OpenIdConnect OWIN Middlewareの設定方法を教えてください。 –

+0

@CuongLe私はOAuthを使用していますが、openIdを使用していません。 – Mainak

答えて

3

エンドポイントhttps://login.microsoftonline.com/common/oauth2/authorizeを使用する必要があります。

これは、共通のエンドポイントであり、Azure ADテナントからのログインを許可します。マルチテナントアプリケーションでテナント固有のエンドポイントを使用しないでください。

アクセストークンを取得するには、ログインしているユーザーのテナントIDを使用する必要があります。これにより、テナントでのみ有効なアクセストークンを取得できます。

+0

https://login.microsoftonline.com/common/oauth2/authorizeを使用して、認証ページを開くことさえできません。さらに、私のアプリを使用するためにサインインするテナントには、このアクセストークンが必要です。どうすればいい? – Mainak

+3

「AADSTS90014:リクエストボディに 'client_id'というパラメータが含まれている必要があります。」というUIが表示され、パラメータなしで文字通り使用すると、Urlによって承認ページが開きます。クライアントIDが提供されなければならないので意味があります。あなたがする必要があるのは、あなたの特定のテナントIDを**共通**で置き換えるだけです。トークンを取得すると、ユーザーが所属するテナントに対応するclaim tidおよびissuerが含まれます。 – user7567234

+0

どのテナントでも動作するアクセストークンを取得することはできません。あなたのアプリがアプリのパーミッションを必要とする場合、最初のサインアッププロセスを経たテナントのトークンを独立して取得することができます。私は可能な限り委任されたアクセス許可を使用することをお勧めします。 – juunas

関連する問題