2017-09-06 4 views
0

パートナーセンターAPIにアクセスするためのサードパーティアプリケーションを作成しています。承認されたWeb APIからPartner CenterにAPI呼び出しを行う方法

私たちは、ログイン用にMSALライブラリを使用する第三者アプリケーションとしてJSOMアーキテクチャを使用してSharePointサイトを登録しました。その後、accessTokenを使用して、データベースから安全にデータにアクセスするために使用されるWebAPIを呼び出します。パートナーの詳細については、パートナーセンターAPIにアクセスする必要があります。

var clientcred = new ClientCredential(clientId, appKey); 
var authContext = new AuthenticationContext(string.Format("https://login.microsoftonline.com/{0}/", tenantID), tokenCache); 
var result = await authContext.AcquireTokenAsync("https://api.partnercenter.microsoft.com", clientcred, new UserAssertion(idToken)); 
var pcAccessToken = result.AccessToken; 

は、我々はAJAX呼び出しから取得したウェブAPIにトークンここで同じIDを使用する必要があります:私たちは、次のコードを持って、私たちに提供されているドキュメントごととして。または、アクセストークンを更新する必要がありますか。はいの場合、Web APIでそれを行う方法は?

また、WebAPIでtokenCacheを生成するにはどうすればよいですか?

答えて

0

Azure ADによって保護されているWeb APIにアクセスしていたようです。また、Web APIのパートナーセンターAPIにアクセスしたいとします。

そして、MSAL(Azure AD V2.0エンドポイント)を使用してサードパーティアプリケーションとWeb APIを統合しました。しかし、AFAIK Azure AD V2.0は、Partner Perter API(Restrictions on services and APIs参照)をサポートしていません。

client credentials flowを使用してトークン取得によってアクセスできる場合は、このフローを使用してWeb APIでトークンを取得し、パートナーセンターAPIを呼び出すことができます。

もう1つの方法は、on-behalf-flowを使用しています。このフローの進捗状況は、 サードパーティアプリケーションがWeb APIを呼び出すためのaccess_tokenを取得しています。その後、Web APIはon-behalf-flowを使用してPartner Center APIのトークンを取得し、新しいトークンを使用してPartner Center APIを呼び出します。このソリューションはv2.0ではなくAzure ADエンドポイントを使用しています(Azureポータルでアプリケーションを登録してください)。また、このライブラリはAzure AD V2.0エンドポイント用であるため、MSALを使用してログインすることはできません。 azure-activedirectory-library-for-jsを使用して、Azure ADエンドポイントでログインすることができます。

関連する問題