2017-07-12 10 views
0

私たちのアプリケーションは、AndroidプラットフォームとIOSプラットフォームの両方でAdal SDKを使用しています。 B2Bのサポートとテナント間の共有データを追加したいと考えています。 ホームテナントからのユーザーが既に別のテナントに招待されていると仮定します。B2Bサイレント認証

ユーザーが以前にホームテナントにサインインしたと仮定して、招待するテナントにトークンを取得するAPIは何ですか? 招待するテナントにトークンを静かに取得する方法は何ですか?

私は対話型サインイン(共通を使用するのではなく、特定の招待テナントIDを提供)を使用してトークンを取得しようとしましたが、招待するテナントにサイレントサインインを実行する方法がわかりません

私が管理したのは、自宅のテナントにトークンを静かに取得してから、取得した最新のトークンを使用して、招待するテナントにacquireTokenByRefreshToken関数を呼び出してトークンを取得することです。 (2つのAuthenticationContextを使用しています(共通の権限を持つものと特定のテナントIDを持つものの2つを使用しています)が、Android SDKではacquireTokenByRefreshTokenが非推奨とマークされています。本当にそれを使用します。

私が知りたいことは、ホームテナントのトークンと招待するテナントのIDを使用して招待テナントにトークンを取得するための正しいAPIは何か?

答えて

0

は、次のメジャーリリースから削除されます。リフレッシュトークンに依存する開発者はお勧めしません。* ADALはキャッシュルックアップを処理し、必要に応じてRTをリフレッシュします。

説明に基づいて、次のバージョンのAndroid用ADALは自動的に更新トークンを処理します。 azure-activedirectory-library-for-dotnet libraryを参照できます。
AcquireTokenAsync(string resource, string clientId, Uri redirectUri, IPlatformParameters parameters)を使用して、自動的に新しいトークンを処理します。

私が知りたいのは、ホームテナントのトークンと招待するテナントのIDを使用して招待テナントにトークンを取得するための正しいAPIは何ですか?

私の理解に基づいて、SDKはこのテナントのアクセストークンをリフレッシュすることをサポートしていません。回避策として、以下のように直接リクエストを送信して、トークンを更新することができます。

POST:https://login.microsoftonline.com/{targetTenant}/oauth2/token 
grant_type=refresh_token&client_id={clientId}&client_secret={client_secret}&resource={resource}&refresh_token={refresh_token_from_home_tenant}