2014-05-14 2 views
1

OAuth2.0 인증 프로토콜을 사용하여 OneDrive for Business에 액세스하려고합니다. 나는이 예제를 따랐다 : http://msdn.microsoft.com/EN-US/library/dn605894(v=office.15).aspx 이 지금까지 내 코드입니다 :OneDrive for business Oauth2 인증

 // Create an authentication context 
     AuthenticationContext ac = new AuthenticationContext(string.Format("https://login.windows.net/{0}", 
     ClaimsPrincipal.Current.FindFirst(TenantIdClaimType).Value)); 

     String id = ClaimsPrincipal.Current.FindFirst(TenantIdClaimType).Value; 

     // Create a client credential based on the application id and secret. 
     ClientCredential clcred = new ClientCredential(AppPrincipalId, AppKey); 

     // Using the authorization code acquire an access token. 
     var arAD = ac.AcquireTokenByAuthorizationCode(code, new Uri(appRedirect), clcred); 

나는 인증 코드를 얻고 잘못된 오류입니다. 이 메시지를받는 이유를 이해할 수 없습니다.

도움이 될 것입니다.

+0

문제를 해결 된 것으로 표시하지 마십시오. 대신, 솔루션에 대한 응답을 게시하고 해당 대답을 수락하십시오. 이제 당신이 그것을 제거하고, 그것은 매우 혼란 스럽습니다 ... –

+0

안녕하세요, 정말 혼란에 대해 죄송합니다. 대신 Java로 구현하여 문제를 해결했습니다. 나는 HttpClient 3.1 Post Method를 사용하여 인증 코드, 액세스 권한 및 가져 오기 토큰을 가져 왔습니다. 다시 한 번 혼란에 빠져서 죄송합니다. – Saurabh

답변

0

인증 코드를 수동으로 가져 와서 콘솔 응용 프로그램에서 사용하려고 할 때 같은 문제가 발생했습니다. 왜 그것이 저를 위해 작동하지 않는지 확실하지 않습니다.

그러나 Webapp에서 사용할 때 권한 부여를 수행하고 리턴 코드를받은 동일한 앱 (returnURL로 지정했기 때문에) - 모든 것이 작동합니다.

http://blogs.msdn.com/b/exchangedev/archive/2014/03/25/using-oauth2-to-access-calendar-contact-and-mail-api-in-exchange-online-in-office-365.aspx

추신 :

난 당신이 좋은에서 무슨 일이 일어나고 있는지 이해하기 위해이 예

https://github.com/AzureADSamples/WebApp-WebAPI-OAuth2-UserIdentity-DotNet

또한이 문서에 대한보고를하는 것이 좋습니다 OneDrive가 아니지만 정확히 동일한 문제가있어서 Exchange 또는 GraphApi로 작업하게 만들 수 있다면 OneDrive에서도 작동해야합니다.

0

인증 코드가 잘못되었습니다. 잘못된 형식으로 인증 코드를 보내면 오류가 발생합니다. 보내는 인증 코드는 authcode 및 세션 상태의 인코딩 된 값일 수 있습니다. 두 값을 구분하고 인증 코드 만 보내야합니다. 또는 인증 코드와 세션 상태 사이의 '&'기호 (분리 자)를 디코딩하고이를 두 개의 매개 변수로 보냅니다.

방법 ADAL4j의 AcquireTokenByAuthorizationCode (...)은 authcode 만 사용합니다.