2017-04-02 8 views
1

데이터 카탈로그에 연결하고 테이블과 관련된 정보를 가져 오는 것으로 간주되는 백그라운드 응용 프로그램이 있습니다. 백그라운드 애플리케이션 이래로 데이터 카탈로그 요청을 인증하기 위해 사용자가 개입 할 수 없습니다. 그래서 대신 ClientID와 ClientSecret을 사용하여 인증을 시도하고 있습니다.응용 프로그램 토큰 기반 요청이 401 권한이 없음을 반환 함

string authorityUri = "https://login.microsoftonline.com/{adtenanthere}"; 

string resourceUri = "https://datacatalog.azure.com"; 

string clientId = "{clientidhere}"; 

string clientSecret = "{clientsecrethere}"; 

AuthenticationContext authContext1 = new AuthenticationContext(authorityUri, false); 

ClientCredential credential = new ClientCredential(clientId, clientSecret); 

AuthenticationResult authResult = authContext1.AcquireTokenAsync(resourceUri, credential).Result; 

string token = authResult.CreateAuthorizationHeader(); 

나는 데이터 카탈로그 API 요청에 대해이 토큰을 사용하면 성공적인, 그러나, 요청이 "401을 반환되고있는이 방법을 사용하여 토큰 얻기 - 권한이 :. 잘못된 자격 증명 때문에 액세스가 거부되었습니다 당신은 필요는 없습니다 제공 한 자격 증명을 사용하여이 디렉토리 또는 페이지를 볼 수있는 권한 "이 있어야합니다.

내가 여기에서 누락 될 수있는 제안을하시기 바랍니다.

문자열 authorityUri = "https://login.windows.net/common/oauth2/authorize";

답변

0

먼저 푸른 광고 권한에서 응용 프로그램의 권한을 확인합니다. 나는 Application Azure 데이터 카탈로그에서 허가를 확인하지 않았다. 따라서 사용자 자격 증명을 사용하여 액세스해야합니다. 이미지 아래를 참조하십시오.

응용 프로그램 권한은 클라이언트 자격 증명을 기반으로합니다. 대리인 로그인 사용자 권한을 기반으로 권한.

사용자가 로그인 팝업없이 필요하면 을 authContext1.AcquireTokenAsync에 직접 입력해야합니다. 그래서

enter image description here

enter image description here

변경하고 당신은 401 권한

을하지 확인 나는 당신을 위해 도움을 생각합니다.

+0

모니카의 권한 url과 리소스 url에 올바른 값이 있는지 확인하십시오. – umasankar