Share via


Android-toepassingen die een broker gebruiken migreren van ADAL.NET naar MSAL.NET

Als u momenteel een Xamarin Android-app hebt die gebruikmaakt van de Azure Active Directory Authentication Library voor .NET (ADAL.NET) en een verificatiebroker, is het tijd om te migreren naar de Microsoft Authentication Library voor .NET (MSAL.NET).

Vereisten

Stap 1: De broker inschakelen

Huidige ADAL-code:MSAL-tegenhanger:
In ADAL.NET wordt brokerondersteuning ingeschakeld per verificatiecontext.

Als u de broker wilt aanroepen, moest u een useBroker op true instellen in de PlatformParameters constructor:

public PlatformParameters(
        Activity callerActivity,
        bool useBroker)

In de platformspecifieke paginaweergavecode voor Android stelt u de useBroker vlag in op true:

page.BrokerParameters = new PlatformParameters(
        this,
        true,
        PromptBehavior.SelectAccount);

Neem vervolgens de parameters op in de aanroep van het acquiretoken:

AuthenticationResult result =
        await
            AuthContext.AcquireTokenAsync(
                Resource,
                ClientId,
                new Uri(RedirectURI),
                platformParameters)
                .ConfigureAwait(false);
In MSAL.NET wordt brokerondersteuning ingeschakeld op basis van PublicClientApplication.

Gebruik de WithBroker() parameter (die standaard is ingesteld op true) om broker aan te roepen:

var app = PublicClientApplicationBuilder
                .Create(ClientId)
                .WithBroker()
                .WithRedirectUri(redirectUriOnAndroid)
                .Build();

Voer vervolgens in de aanroep AcquireToken het volgende uit:

result = await app.AcquireTokenInteractive(scopes)
             .WithParentActivityOrWindow(App.RootViewController)
             .ExecuteAsync();

Stap 2: Een activiteit instellen

In ADAL.NET hebt u een activiteit (meestal de MainActivity) doorgegeven als onderdeel van de PlatformParameters, zoals wordt weergegeven in stap 1: De broker inschakelen.

MSAL.NET maakt ook gebruik van een activiteit, maar dit is niet vereist bij normaal Android-gebruik zonder broker. Als u de broker wilt gebruiken, stelt u de activiteit in om reacties van broker te verzenden en te ontvangen.

Huidige ADAL-code:MSAL-tegenhanger:
De activiteit wordt doorgegeven aan de PlatformParameters in het Android-specifieke platform.
page.BrokerParameters = new PlatformParameters(
          this,
          true,
          PromptBehavior.SelectAccount);

Voer in MSAL.NET twee dingen uit om de activiteit voor Android in te stellen:

  1. Stel MainActivity.csin op de App.RootViewControllerMainActivity knop om ervoor te zorgen dat er een activiteit is met de aanroep van de broker.

    Als deze niet juist is ingesteld, krijgt u mogelijk de volgende fout: "Activity_required_for_android_broker":"Activity is null, so MSAL.NET cannot invoke the Android broker. See https://aka.ms/Brokered-Authentication-for-Android"

  2. Gebruik in de aanroep AcquireTokenInteractive de .WithParentActivityOrWindow(App.RootViewController) verwijzing naar de activiteit die u wilt gebruiken en geef deze door. In dit voorbeeld wordt de MainActivity gebruikt.

Bijvoorbeeld:

In App.cs:

   public static object RootViewController { get; set; }

In MainActivity.cs:

   LoadApplication(new App());
   App.RootViewController = this;

In de aanroep AcquireToken:

result = await app.AcquireTokenInteractive(scopes)
             .WithParentActivityOrWindow(App.RootViewController)
             .ExecuteAsync();

Volgende stappen

Zie Configuratievereisten en tips voor probleemoplossing voor Xamarin met MSAL.NET voor meer informatie over Android-specifieke overwegingen bij het gebruik van MSAL.NET met Xamarin.