2016-03-25 18 views
0

Azure AD aracılığıyla bir Azure Mobile Service (.NET arka ucu) doğrulamasıyla mücadele ediyorum.
Bu eğitimi izledim: https://azure.microsoft.com/en-us/documentation/articles/app-service-mobile-how-to-configure-active-directory-authentication/
Azure AD'nin kendisinin kimlik doğrulaması başarılı (result.Status == AuthenticationStatus.Success), ancak MobileService.LoginAsync'de HTTP 401'i alıyorum.UWP istemcisinden Azure Mobile Service ile kimlik doğrulaması

Mobil Servis Azure AD uygulaması yapılandırma
Oturum Açma URL'si: https://contososervice.azurewebsites.net
İstemci Kimliği: c710fe9b-4dd2-406b-ae68-ea5825c2c103
Uygulama Kimliği URI: https://contososervice.azurewebsites.net
Cevap URL: https://contososervice.azurewebsites.net/.auth/login/aad/callback

Yerel istemci Azure AD app yapılandırması
Müşteri Kimliği: d79fea3f-2357-4797-9be8-48d630f6e1a3
Yönlendirme URI'ları:
- https://contososervice.azurewebsites.net/.auth/login/done
- ms-app: ContosoService

devredilebilir // S-1-15-2-4177921760-2458829842-3328621796-4043898254-238447652-453539330-2174227773
izni

Azure mobil servis kimlik doğrulama yapılandırma: gelişmiş mod
İstemci kimliği: c710fe9b-4dd2-406b-ae68-ea5825c2c103
Yayıncı URL: https://sts.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47

Mobil hizmet web.conf ig
<add key="ida:Tenant" value="contoso.onmicrosoft.com" /> <add key="ida:Audience" value="https://contososervice.azurewebsites.net" />

Mobil hizmet doğrulama kurulumu Aslında bu çözmek başardı

 string appIDUri = "https://contososervice.azurewebsites.net"; 
     string clientID = "d79fea3f-2357-4797-9be8-48d630f6e1a3"; 

     AuthenticationResult result = await _authContext.AcquireTokenAsync(
      appIDUri, 
      clientID, 
      WebAuthenticationBroker.GetCurrentApplicationCallbackUri()); 

     if (result.Status == AuthenticationStatus.Success) 
     { 
      IsUserAuthenticated = true; 
      UserData = result.UserInfo; 
      success = true; 

      JObject payload = new JObject(); 
      payload.Add("access_token", result.AccessToken); 

      var user = await ServiceClient.ServiceClient.MobileService.LoginAsync(
       MobileServiceAuthenticationProvider.WindowsAzureActiveDirectory, 
       payload); 
     } 

cevap

0


public void ConfigureAuth(IAppBuilder app) 
    { 
     app.UseWindowsAzureActiveDirectoryBearerAuthentication(
      new WindowsAzureActiveDirectoryBearerAuthenticationOptions 
      { 
       Tenant = ConfigurationManager.AppSettings["ida:Tenant"], 
       TokenValidationParameters = new TokenValidationParameters 
       { 
        ValidAudience = ConfigurationManager.AppSettings["ida:Audience"] 
       }, 

      }); 
    } 

UWP istemcisi.

Bu belirteçleri yayınlanır URL kodu appIDUri aslında aynı olduğunu anlamak için biraz zaman aldı ve bu da kaynak tanımlar çünkü ben ilgili App ID URI ayarını değiştirmek zorunda Mobil Hizmet Azure AD uygulaması yapılandırmasında.
Böylece

https://contososervice.azurewebsites.net/.auth/login/aad/callback
için Azure AD hem appIDUri ve Uygulama Kimliği URI değiştirmek zorunda kaldı ve şimdi çalışıyor.