Aracılığıyla paylaş


Aracı kullanan Android uygulamalarını ADAL.NET'den MSAL.NET geçirme

Şu anda .NET için Azure Active Directory Kimlik Doğrulama Kitaplığı 'nı (ADAL.NET) ve kimlik doğrulama aracısını kullanan bir Xamarin Android uygulamanız varsa, .NET için Microsoft Kimlik Doğrulama Kitaplığı'na (MSAL.NET) geçmenin zamanı geldi.

Önkoşullar

1. Adım: Aracıyı etkinleştirme

Geçerli ADAL kodu:MSAL karşılığı:
ADAL.NET aracı desteği kimlik doğrulaması başına bağlam temelinde etkinleştirilir.

Aracıyı çağırmak için oluşturucuda PlatformParameters true useBroker olarak ayarlamanız gerekiyordu:

public PlatformParameters(
        Activity callerActivity,
        bool useBroker)

Android için platforma özgü sayfa oluşturucu kodunda bayrağı true useBroker olarak ayarlarsınız:

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

Ardından, alma belirteci çağrısına parametreleri ekleyin:

AuthenticationResult result =
        await
            AuthContext.AcquireTokenAsync(
                Resource,
                ClientId,
                new Uri(RedirectURI),
                platformParameters)
                .ConfigureAwait(false);
MSAL.NET aracı desteği PublicClientApplication temelinde etkinleştirilir.

Aracıyı WithBroker() çağırmak için parametresini kullanın (varsayılan olarak true olarak ayarlanır):

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

Ardından AcquireToken çağrısında:

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

2. Adım: Etkinlik Ayarlama

ADAL.NET'de, 1. Adım: Aracıyı etkinleştirme bölümünde gösterildiği gibi PlatformParameters'ın bir parçası olarak bir etkinlik (genellikle MainActivity) geçirdiniz.

MSAL.NET ayrıca bir etkinlik kullanır, ancak aracı olmadan normal Android kullanımında gerekli değildir. Aracıyı kullanmak için etkinliği aracıdan yanıt gönderip alacak şekilde ayarlayın.

Geçerli ADAL kodu:MSAL karşılığı:
Etkinlik, Android'e özgü platformdaki PlatformParameters'a geçirilir.
page.BrokerParameters = new PlatformParameters(
          this,
          true,
          PromptBehavior.SelectAccount);

MSAL.NET'da, Android etkinliğini ayarlamak için iki şey yapın:

  1. aracısına MainActivity.csMainActivity yapılan çağrıyla bir etkinlik olduğundan emin olmak için içinde öğesini olarak ayarlayınApp.RootViewController.

    Doğru ayarlanmadıysa şu hatayı alabilirsiniz: "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. AcquireTokenInteractive çağrısında, ve komutunu kullanın .WithParentActivityOrWindow(App.RootViewController) ve kullanacağınız etkinliğe başvuruyu geçirin. Bu örnekte MainActivity kullanılır.

Örneğin:

App.cs:

   public static object RootViewController { get; set; }

MainActivity.cs:

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

AcquireToken çağrısında:

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

Sonraki adımlar

Xamarin ile MSAL.NET kullanırken Android'e özgü dikkat edilmesi gerekenler hakkında daha fazla bilgi için bkz . MSAL.NET ile Xamarin Android için yapılandırma gereksinimleri ve sorun giderme ipuçları.