Közvetítőt használó Android-alkalmazások migrálása ADAL.NET-ból MSAL.NET

Ha egy Xamarin Android-alkalmazás jelenleg az Azure Active Directory Authentication Library for .NET -t (ADAL.NET) és egy hitelesítési közvetítőt használ, ideje áttelepíteni a Microsoft Authentication Library for .NET-be (MSAL.NET).

Előfeltételek

1. lépés: A közvetítő engedélyezése

Aktuális ADAL-kód:MSAL-megfelelő:
A ADAL.NET a közvetítők támogatása hitelesítésenként engedélyezve van.

A közvetítő meghívásához igaz értéket kellett beállítania useBroker a PlatformParameters konstruktorban:

public PlatformParameters(
        Activity callerActivity,
        bool useBroker)

Az Android platformspecifikus lapmegjelenítő kódjában állítsa a useBroker jelölőt igaz értékre:

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

Ezután adja meg a paramétereket a beolvasási jogkivonat-hívásban:

AuthenticationResult result =
        await
            AuthContext.AcquireTokenAsync(
                Resource,
                ClientId,
                new Uri(RedirectURI),
                platformParameters)
                .ConfigureAwait(false);
A MSAL.NET a közvetítők támogatása NyilvánosclientApplication-alapú alapon engedélyezve van.

A közvetítő meghívásához használja a WithBroker() paramétert (amely alapértelmezés szerint igaz értékre van állítva):

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

Ezután a AcquireToken hívásban:

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

2. lépés: Tevékenység beállítása

A ADAL.NET a PlatformParameters részeként adott át egy tevékenységet (általában a MainActivity-t) az 1. lépésben látható módon: Engedélyezze a közvetítőt.

MSAL.NET is használ tevékenységet, de ez nem kötelező a rendszeres Android-használat nélkül közvetítő. A közvetítő használatához állítsa be a tevékenységet úgy, hogy válaszokat küldjön és fogadjon a közvetítőtől.

Aktuális ADAL-kód:MSAL-megfelelő:
A tevékenység az Android-specifikus platform PlatformParameters szolgáltatásába kerül.
page.BrokerParameters = new PlatformParameters(
          this,
          true,
          PromptBehavior.SelectAccount);

Az MSAL.NET két dolgot kell elvégeznie az Android-tevékenység beállításához:

  1. Ebben MainActivity.csa beállításban állítsa be a App.RootViewControllerMainActivity kívánt értéket, és győződjön meg arról, hogy van tevékenység a közvetítő hívásával.

    Ha nincs megfelelően beállítva, a következő hibaüzenet jelenhet meg: "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. A AcquireTokenInteractive hívásban használja a .WithParentActivityOrWindow(App.RootViewController) használni kívánt tevékenységre mutató hivatkozást, és adja meg azt. Ez a példa a MainActivity-t fogja használni.

Például:

A App.cs:

   public static object RootViewController { get; set; }

A MainActivity.cs:

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

A AcquireToken hívásban:

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

Következő lépések

Az Android-specifikus szempontokról a Xamarinnal való MSAL.NET használatakor a Xamarinnal kapcsolatos konfigurációs követelményekről és hibaelhárítási tippekről a Xamarin Android és MSAL.NET című cikkben talál további információt.