2017-08-06 1 views
0

Recherche d'un exemple pour Azure Mobile Services développé dans Xamarin Forms authentifié via Azure AD B2C. J'ai une solution de travail où je peux m'authentifier en utilisant Azure B2C dans Xamarin Forms mais incapable d'utiliser le jeton résultant dans Azure Mobile Services. Voir l'extrait de code ci-dessous:Azure AD Services B2C Azure Mobile Xamrin Forms Exemple

public static PublicClientApplication AuthenticationClient { get; private set; } 
public static MobileServiceClient MobileService = new MobileServiceClient(Constants.MobileServiceClientName);     
result = App.AuthenticationClient.AcquireTokenAsync(
         Constants.Scopes, 
         string.Empty, 
         UIBehavior.SelectAccount, 
         string.Empty, 
         null, 
         Constants.Authority, null); 
        JObject objToken = new JObject(); 
objToken.Add("authenticationToken", result.IdToken); 

//I am successfully able to get an Id token for Microsoft, Google and Twitter providers but when I use the token to login to my Azure Mobile Service app, I get a "Not Authorized" error 

MobileServiceUser user = await MobileService.LoginAsync(MobileServiceAuthenticationProvider.MicrosoftAccount, objToken); 

Toutes les idées sont appréciées.

+0

Voir les modifications de code ci-dessus: – sidsud

+0

Voir les modifications de code ci-dessus: objToken.Add ("authenticationToken", result.IdToken); a été changé en objToken.Add ("access_token", result.IdToken) et j'ai changé MobileServiceAuthenticationProvider.MicrosoftAccount en MobileServiceAuthenticationProvider.WindowsAzzureActiveDirectory – sidsud

Répondre

0

J'ai été capable de résoudre le problème. La configuration du fournisseur Azure AD sur mon application Azure Mobile n'a pas été configurée correctement.

Voici le code corrigé:

public static PublicClientApplication AuthenticationClient { get; private set; } 
public static MobileServiceClient MobileService = new MobileServiceClient(Constants.MobileServiceClientName);     
result = App.AuthenticationClient.AcquireTokenAsync(
         Constants.Scopes, 
         string.Empty, 
         UIBehavior.SelectAccount, 
         string.Empty, 
         null, 
         Constants.Authority, null); 
        JObject objToken = new JObject(); 
objToken.Add("access_token", result.IdToken); 

//I am successfully able to get an Id token for Microsoft, Google and Twitter providers but when I use the token to login to my Azure Mobile Service app, I get a "Not Authorized" error 

MobileServiceUser user = await MobileService.LoginAsync(MobileServiceAuthenticationProvider.WindowsAzureActiveDirectory, objToken); 

Je peux fournir plus de détails sur la configuration AD Azure si quelqu'un est intéressé. Alors maintenant, j'ai une application mobile Xamarin Forms Azure qui fonctionne et qui est authentifiée à l'aide d'Azure AD B2C et fonctionne jusqu'à présent avec les fournisseurs Microsoft, Google et Twitter.

+0

Je suis intéressé, si vous pourriez partager plus de détails qui seraient appréciés. J'ai XF fonctionnant avec l'authentification Azure AD B2C complète avec MVC/mobile backend; Cependant, je reçois toujours "Non autorisé" lors de l'accès à un contrôleur de table sécurisé à partir de l'application mobile. –