2014-04-09 3 views
1

Windows Azure Active Directory 용 OWIN 공급자를 사용하여 ASP.NET 웹 API의 보안을 설정하려고합니다. 나는 아래에 따라 윈도우 Azure JWT 베어러 토큰을 사용하도록 웹 API를 구성한 :OWIN/Katana를 사용하여 ASP.NET MVC 웹 API를 보호하려면 어떻게해야합니까?

public void Configuration(IAppBuilder app) 
{ 
    app.UseWindowsAzureBearerToken(new WindowsAzureJwtBearerAuthenticationOptions() 
    { 
     Audience = "http://mywebsitename.azurewebsites.net", 
     Tenant = "mydefaultdirectory.onmicrosoft.com" 
    }); 
} 

나는 다음 웹 API를 세입자와 동일한 디렉토리에 속하는 클라이언트 응용 프로그램을 만들었습니다. 클라이언트 응용 프로그램에 웹 API 액세스 권한을 부여하는 권한을 지정했습니다. 문제는 클라이언트 응용 프로그램을 만들고 API에 대해 인증하려고했을 때 발생했습니다.

클라이언트 인 윈도우 푸른에 대해 인증 할 수있는 버튼 클릭 방법 및 클릭에 대한 코드와 단순한 윈도우 스토어 앱도 다음과 같습니다 :

private async void myButton_Click(object sender, RoutedEventArgs e) 
    { 

     AuthenticationContext ac = new AuthenticationContext("https://login.windows.net/nameofazureactivedirectorytenant"); 
     AuthenticationResult ar = 
     await ac.AcquireTokenAsync("api/pathtoresource", 
      "xxxxxxxx-xxxx-xxxxx-xxxx-xxxxxxxxxxxx"); 
     // Call Web API 
     string authHeader = ar.CreateAuthorizationHeader(); 
     HttpClient client = new HttpClient(); 
     HttpRequestMessage request = new HttpRequestMessage(
      HttpMethod.Get, "http://mywebsitename.azurewebsites.net/api/pathtoresource"); 
     request.Headers.TryAddWithoutValidation("Authorization", authHeader); 
     HttpResponseMessage response = await client.SendAsync(request); 
     string responseString = await response.Content.ReadAsStringAsync(); 
    } 

응용 올바르게 인증을 만드는 데 실패 컨텍스트, 그래서 나는 그것이 잘못된 매개 변수를 전달 오전 믿습니다. 나는 많은 블로그 게시물과 그래서 대답을 겪어 왔지만, 지금까지 아무 것도 도움이되지 않았다, 어떤 도움을 주시면 감사하겠습니다!

답변

관련 문제