Migrera iOS-program som använder Microsoft Authenticator från ADAL.NET till MSAL.NET
Du har använt Azure Active Directory Authentication Library för .NET (ADAL.NET) och iOS-koordinatorn. Nu är det dags att migrera till Microsoft Authentication Library for .NET (MSAL.NET), som stöder asynkron meddelandekö på iOS från version 4.3 och senare.
Var ska du börja? Den här artikeln hjälper dig att migrera din Xamarin iOS-app från ADAL till MSAL.
Förutsättningar
Den här artikeln förutsätter att du redan har en Xamarin iOS-app som är integrerad med iOS-mäklaren. Om du inte gör det går du direkt till MSAL.NET och påbörjar implementeringen av koordinatorn där. Information om hur du anropar iOS-koordinatorn i MSAL.NET med ett nytt program finns i den här dokumentationen.
Bakgrund
Vad är mäklare?
Brokers är program som tillhandahålls av Microsoft på Android och iOS. (Se Microsoft Authenticator-appen på iOS och Android samt Intune-företagsportal-appen på Android.)
De aktiverar:
- Enkel inloggning.
- Enhetsidentifiering, vilket krävs av vissa principer för villkorsstyrd åtkomst. Mer information finns i Enhetshantering.
- Verifiering av programidentifiering, vilket också krävs i vissa företagsscenarier. Mer information finns i Intune mobile application management (MAM).
Migrera från ADAL till MSAL
Steg 1: Aktivera asynkron meddelandekö
Aktuell ADAL-kod: | MSAL-motsvarighet: |
I ADAL.NET aktiverades asynkron support per autentisering. Som standard är den inaktiverad. Du var tvungen att ställa in en
I den plattformsspecifika koden anger du i det här exemplet i sidåtergivningen för iOS
Inkludera sedan parametrarna i anropet för att hämta token:
|
I MSAL.NET aktiveras asynkron support per PublicClientApplication. Som standard är den inaktiverad. Om du vill aktivera den använder du
I anropet för att hämta token:
|
Steg 2: Ange ett UIViewController()
I ADAL.NET skickade du in en UIViewController som en del av PlatformParameters
. (Se exemplet i steg 1.) I MSAL.NET används ett objektfönster för att ge utvecklare mer flexibilitet, men det krävs inte i vanlig iOS-användning. Om du vill använda asynkron meddelandekö anger du objektfönstret för att skicka och ta emot svar från asynkron meddelandekö.
Aktuell ADAL-kod: | MSAL-motsvarighet: |
En UIViewController skickas till
|
I MSAL.NET gör du två saker för att ange objektfönstret för iOS:
Till exempel: I
I
I anropet för att hämta token:
|
Steg 3: Uppdatera AppDelegate för att hantera återanropet
Både ADAL och MSAL anropar mäklaren, och mäklaren anropar i sin tur tillbaka till ditt program via OpenUrl
-metoden för AppDelegate
klassen. Mer information finns i den här dokumentationen.
Det finns inga ändringar här mellan ADAL.NET och MSAL.NET.
Steg 4: Registrera ett URL-schema
ADAL.NET och MSAL.NET använda URL:er för att anropa asynkron meddelandekö och returnera koordinatorsvaret tillbaka till appen. Registrera URL-schemat i Info.plist
filen för din app på följande sätt:
Aktuell ADAL-kod: | MSAL-motsvarighet: |
URL-schemat är unikt för din app. |
som ett prefix, följt av din Till exempel:
Kommentar Det här URL-schemat blir en del av den omdirigerings-URI som används för att unikt identifiera appen när den tar emot svaret från asynkron meddelandekö. |
Steg 5: Lägg till koordinatoridentifieraren i avsnittet LSApplicationQueriesSchemes
ADAL.NET och MSAL.NET båda använder -canOpenURL:
för att kontrollera om asynkron meddelandekö är installerad på enheten. Lägg till rätt identifierare för iOS-koordinatorn i avsnittet LSApplicationQueriesSchemes i filen info.plist på följande sätt:
Aktuell ADAL-kod: | MSAL-motsvarighet: |
Använder
|
Använder
|
Steg 6: Registrera din omdirigerings-URI i Azure-portalen
ADAL.NET och MSAL.NET lägger båda till ett extra krav på omdirigerings-URI:n när den riktar sig mot koordinatorn. Registrera omdirigerings-URI:n med ditt program i Azure-portalen.
Aktuell ADAL-kod: | MSAL-motsvarighet: |
Exempel:
|
Exempel:
|
Mer information om hur du registrerar omdirigerings-URI:n i Azure-portalen finns i Steg 7: Lägg till en omdirigerings-URI i din appregistrering.
Steg 7: Ange entitlements.plist
Aktivera åtkomst till nyckelringar i filen Entitlements.plist :
<key>keychain-access-groups</key>
<array>
<string>$(AppIdentifierPrefix)com.microsoft.adalcache</string>
</array>
Mer information om hur du aktiverar åtkomst till nyckelringar finns i Aktivera åtkomst till nyckelringar.
Nästa steg
Lär dig mer om Xamarin iOS-specifika överväganden med MSAL.NET.