2017-09-06 5 views
0

타사 응용 프로그램을 만들어 파트너 센터 API에 액세스합니다.권한이 부여 된 웹 API에서 파트너 센터에 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; 

우리가 아약스 호출에서 얻은 웹 API에 토큰 여기에 동일한 ID를 사용 하는가 : 우리는 다음과 같은 코드를 우리에게 제공 한 설명서에 따라. 또는 액세스 토큰을 새로 고쳐야합니다. 그렇다면 웹 API에서이를 수행하는 방법은 무엇입니까?

또한 WebAPI에서 tokenCache를 어떻게 생성 할 수 있습니까?

답변

0

설명에 따르면 Azure AD에서 보호하는 웹 API에 액세스 한 것으로 보입니다. 웹 API에서 파트너 센터 API에 액세스하려고합니다.

그리고 MSAL (Azure AD V2.0 끝점)을 사용하여 타사 응용 프로그램과 웹 API를 통합했습니다. 그러나 AFAIK Azure AD V2.0은 Partner Perter API (Restrictions on services and APIs 참조)를 지원하지 않습니다.

client credentials flow을 사용하여 획득 한 토큰을 통해 파트너 센터 API에 액세스 할 수있는 경우이 흐름을 사용하여 웹 API에서 토큰을 획득하고 파트너 센터 API를 호출 할 수 있습니다.

다른 방법은 on-behalf-flow를 사용하고 있습니다. 이 흐름의 진행 상황은 다음과 같습니다. 타사 응용 프로그램이 access_token을 획득하여 웹 API를 호출합니다. 그런 다음 웹 API는 on-behalf-flow을 사용하여 파트너 센터 API 토큰을 획득하고 새 토큰을 사용하여 파트너 센터 API에 전화합니다. 이 솔루션은 v2.0 대신 Azure AD 엔드 포인트를 사용합니다 (Azure 포털에서 앱 등록). 이 라이브러리는 Azure AD V2.0 엔드 포인트 용이므로 MSAL을 사용하여 로그인 할 수 없습니다. azure-activedirectory-library-for-js을 사용하여 Azure AD 엔드 포인트로 로그인 할 수 있습니다.