2016-03-17 12 views
6

adında bir kiracıda bulunamadı Azure AD'ye karşı bir uygulamayı doğrulamak zorundayım. Web API'sini oluşturdum ve bunu Azure AD uygulama bölümüne ekledim. bildirim dosyası değiştirildi, bir web API oluşturuldu ve Azure AD ile doğrulanmış ve aşağıdaki kodu içeren bir Windows form oluşturuldu: tip aitHTTPS://test113.onmicrosoft.com/FTP adlı uygulama, test113.onmicrosoft.com

Bir istisna: Bir istisna var

private async void button1_Click(object sender, EventArgs e) 
{ 
    string authority = "https://login.windows.net/test113.onmicrosoft.com"; 
    string resourceURI = "https://test113.onmicrosoft.com/ftp"; 
    string clientID = "5177ef76-cbb4-43a8-a7d0-899d3e886b34"; 
    Uri returnURI = new Uri("http://keoftp"); 

    AuthenticationContext authContext = 
     new AuthenticationContext(authority); 
    AuthenticationResult authResult = 
     authContext.AcquireToken(resourceURI, clientID, returnURI); 

    string authHeader = authResult.CreateAuthorizationHeader(); 

    // don't do this in prod 
    System.Net.ServicePointManager.ServerCertificateValidationCallback = 
      ((s, c, c2, se) => true); 

    HttpClient client = new HttpClient(); 
    HttpRequestMessage request = 
     new HttpRequestMessage(HttpMethod.Get, "https://localhost:44300/api/tasks"); 
    request.Headers.TryAddWithoutValidation("Authorization", authHeader); 
    var response = await client.SendAsync(request); 
    string responseString = await response.Content.ReadAsStringAsync(); 
    MessageBox.Show(responseString); 
} 

'Microsoft.IdentityModel.Clients.ActiveDirectory.AdalServiceException' Microsoft.IdentityModel.Clients.ActiveDirectory.dll oluştu ama kullanıcı kodu

bilgiye ele edilmedi: AADSTS5000 1: https://test113.onmicrosoft.com/ftp adlı uygulama, test113.onmicrosoft.com adında kiracıda bulunamadı. Bu uygulama, kiracının yöneticisi tarafından yüklenmemişse veya kiracıda herhangi bir kullanıcı tarafından tarafından kabul edilmişse oluşabilir. Doğru kiracıya isteğinizi gönderebilirsiniz.

İz numarası: e782d60e-b861-46a3-b32b-f3df78396bd0 Korelasyon numarası: b4809815-2755-4de1-bd1b-0221d74fd0f0 zaman damgası: 2016/03/17 11: 20: in 08Z

+2

Neden "https: // test113.onmicrosoft.com/ftp" yi sourceURI olarak kullandığınızdan emin değilim. Genellikle, Azure Hizmet Yönetimi için https: // management.core.windows.net/'ve Graph API için 'https: // graph.windows.net' kullanıyorum. –

cevap

4

Kaynak istek, belirli kiracıda erişmek istediğiniz kaynağı ifade eder. Yerel istemcinin Azure Active Directory'den bir jeton alması gerektiğinde, bunun için bir jeton istediği kaynağı belirtmesi gerekir. Bu senaryoda, istemci uygulaması Web API'sine erişim istiyor, böylece Web API'sı için APP ID URI, kaynak adı olarak kullanılır.

// Resource settings this application wants to access 
private string resource = "https://cloudalloc.com/CloudAlloc.WebAPI"; 
private Uri WebAPIUri = new Uri("https://localhost:44313"); 

Bu ayarların her ikisi tek oturum bulunabilir: o simgesi var sonra o da bu durumda, kaynak ulaşılabilir URL'yi bilmek örnek API.For Web adresi olması gerekir Azure Management portalındaki Web API uygulaması için YAPILANDIRMA sayfasının bölümü.

Ayrıntılar için tıklayın here.

+0

Merhaba Nan, yapılandırma bölümünde görebildiğim tek şey isim, clientid, yönlendirme ve logo. APP ID URI – Rinu

+0

'u göremiyorum Sadece NATIVE CLIENT UYGULAMA – Rinu

+0

@ Rinu kullandığımı belirtmek istedim, bu uygulama kimliği web api yapılandırma sayfasında. –