Een mobiele app configureren die web-API's aanroept
Artikel
Van toepassing op: Werknemershuurders Externe huurders (meer informatie)
Nadat u een toepassing hebt gemaakt, leert u hoe u de code configureert met behulp van de parameters voor app-registratie. Mobiele toepassingen leveren enkele uitdagingen op met betrekking tot het inpassen in het creatieframework.
Microsoft-bibliotheken die mobiele apps ondersteunen
De volgende Microsoft-bibliotheken ondersteunen mobiele apps:
In deze sectie wordt uitgelegd hoe u de toepassing kunt instantiëren voor Xamarin.iOS-, Xamarin.Android- en UWP-apps.
Notitie
MSAL.NET versies 4.61.0 en hoger bieden geen ondersteuning voor Universeel Windows-platform (UWP), Xamarin Android en Xamarin iOS. U wordt aangeraden uw Xamarin-toepassingen te migreren naar moderne frameworks zoals MAUI. Lees meer over de afschaffing in Aankondiging van de geplande afschaffing van MSAL.NET voor Xamarin en UWP.
De toepassing instantiëren
In Xamarin of UWP kunt u de toepassing het eenvoudigst instantiëren door de volgende code te gebruiken. In deze code is ClientId de GUID van uw geregistreerde app.
C#
var app = PublicClientApplicationBuilder.Create(clientId)
.Build();
Aanvullende With<Parameter>-methoden stellen de bovenliggende gebruikersinterface in, overschrijven de standaardautorisatie en specificeren een clientnaam en -versie voor telemetrie, een omleidings-URI en de te gebruiken HTTP-factory. De HTTP-factory kan bijvoorbeeld worden gebruikt om proxy's te verwerken en telemetrie en logboekregistratie op te geven.
De volgende gedeelten bevatten meer informatie over het instantiëren van de toepassing.
Geef de bovenliggende gebruikersinterface, het venster of de activiteit op.
Geef op Android de activiteit van de ouder door voordat je de interactieve authenticatie uitvoert. Wanneer u op iOS een broker gebruikt, geef dan ViewController door. Op dezelfde manier wilt u op UWP mogelijk het bovenliggende venster doorgeven. U geeft het door wanneer u het token ophaalt. Maar wanneer u de app maakt, kunt u ook een callback opgeven als gemachtigde die UIParent retourneert.
De toepassing configureren voor het gebruik van de broker
Op Android en iOS schakelen brokers het volgende in:
Eenmalige aanmelding (SSO): u kunt eenmalige aanmelding gebruiken voor apparaten die zijn geregistreerd bij Microsoft Entra ID. Wanneer u eenmalige aanmelding gebruikt, hoeven uw gebruikers zich niet bij elke toepassing aan te melden.
Apparaatidentificatie: Met deze instelling wordt beleid voor voorwaardelijke toegang ingeschakeld dat is gerelateerd aan Microsoft Entra-apparaten. Het verificatieproces maakt gebruik van het apparaatcertificaat dat is gemaakt toen het apparaat aan de werkplek werd toegevoegd.
Verificatie van toepassingsidentificatie: wanneer een toepassing de broker aanroept, wordt de omleidings-URL doorgegeven. Vervolgens controleert de makelaar deze.
De broker inschakelen op Xamarin
Als u de broker op Xamarin wilt inschakelen, gebruikt u de parameter WithBroker() wanneer u de methode PublicClientApplicationBuilder.CreateApplication aanroept.
.WithBroker() is standaard ingesteld op waar.
Als u brokered verificatie voor Xamarin.iOS wilt inschakelen, volgt u de stappen in de sectie Xamarin.iOS in dit artikel.
Brokered-verificatie is standaard ingeschakeld voor Microsoft Entra-scenario's in MSAL voor iOS en macOS.
De volgende secties bevatten instructies om uw toepassing te configureren voor ondersteuning van bemiddelde verificatie met behulp van MSAL voor Xamarin.iOS of MSAL voor iOS en macOS. De twee reeksen instructies bevatten enkele verschillende stappen.
Brokered authenticatie inschakelen voor Xamarin iOS
Volg de stappen in deze sectie om uw Xamarin.iOS-app te laten communiceren met de Microsoft Authenticator-app.
Stap 1: Broker-ondersteuning inschakelen
Broker-ondersteuning is standaard uitgeschakeld. U schakelt deze in voor een afzonderlijke PublicClientApplication-klasse. Gebruik de parameter WithBroker() wanneer u de PublicClientApplication-klasse maakt via PublicClientApplicationBuilder. De parameter WithBroker() is standaard ingesteld op true.
C#
var app = PublicClientApplicationBuilder
.Create(ClientId)
.WithBroker()
.WithReplyUri(redirectUriOnIos) // $"msauth.{Bundle.Id}://auth" (see step 6 below)
.Build();
Stap 2: AppDelegate bijwerken om de callback af te handelen
Wanneer MSAL.NET de broker aanroept, belt de broker vervolgens terug naar uw toepassing. Het roept terug door de AppDelegate.OpenUrl-methode te gebruiken. Omdat MSAL wacht op het antwoord van de broker, moet uw toepassing samenwerken om MSAL.NET terug te roepen. U stelt dit gedrag in door het AppDelegate.cs-bestand bij te werken om de methode te overschrijven, zoals in de volgende code wordt weergegeven.
Deze methode wordt aangeroepen wanneer de toepassing wordt gestart. Het is een mogelijkheid om het antwoord van de broker te verwerken en het verificatieproces te voltooien dat MSAL.NET heeft gestart.
Stap 3: een UIViewController() instellen
Voor Xamarin iOS hoeft u normaal gesproken geen objectvenster in te stellen. Maar in dit geval moet u het zo instellen dat u antwoorden kunt verzenden naar en ontvangen van een broker. Als u een objectvenster wilt instellen, stelt u in AppDelegate.cs een ViewController in.
Voer de volgende stappen uit om het objectvenster in te stellen:
Stel in AppDelegate.cs de App.RootViewController in op een nieuwe UIViewController(). Deze instelling zorgt ervoor dat de aanroep naar de broker UIViewController omvat. Als deze niet juist is ingesteld, wordt mogelijk deze fout weergegeven:
"uiviewcontroller_required_for_ios_broker":"UIViewController is null, so MSAL.NET cannot invoke the iOS broker. See https://aka.ms/msal-net-ios-broker."
Bij het gesprek AcquireTokenInteractive, gebruik .WithParentActivityOrWindow(App.RootViewController). Geef de verwijzing door naar het objectvenster dat u gaat gebruiken. Hier volgt een voorbeeld:
LoadApplication(new App());
App.RootViewController = new UIViewController();
In de aanroep AcquireToken:
C#
result = await app.AcquireTokenInteractive(scopes)
.WithParentActivityOrWindow(App.RootViewController)
.ExecuteAsync();
Stap 4: Een URL-schema registreren
MSAL.NET gebruikt URL's om de broker aan te roepen en vervolgens het antwoord van de broker naar uw app terug te sturen. Om de rondreis af te ronden, registreer het URL-schema van uw app in het bestand Info.plist.
Voer de volgende stappen uit om het URL-schema van uw app te registreren:
Plaats msauth voor CFBundleURLSchemes.
Voeg CFBundleURLName toe aan het einde. Volg dit patroon:
$"msauth.(BundleId)"
Hier identificeert BundleId uw apparaat op unieke wijze. Als bijvoorbeeld BundleIdyourcompany.xforms is, dan is msauth.com.yourcompany.xforms uw URL-schema.
Dit URL-schema wordt onderdeel van de omleidings-URI die uw app uniek identificeert wanneer deze het antwoord van de broker ontvangt.
Stap 5: Toevoegen aan de sectie LSApplicationQueriesSchemes
MSAL gebruikt –canOpenURL: om te controleren of de broker is geïnstalleerd op het apparaat. In iOS 9 heeft Apple de schema's vergrendeld waarvoor een toepassing query's kan uitvoeren.
Voeg msauthv2 toe aan de sectie LSApplicationQueriesSchemes van het bestand Info.plist, zoals in het volgende voorbeeld:
Geïntegreerde authenticatie voor MSAL voor iOS en macOS
Brokered-verificatie is standaard ingeschakeld voor Microsoft Entra-scenario's.
Stap 1: AppDelegate bijwerken om de callback af te handelen
Wanneer MSAL voor iOS en macOS de broker aanroept, geeft de broker een antwoord aan uw toepassing met behulp van de methode openURL. Omdat MSAL wacht op het antwoord van de broker, moet uw toepassing samenwerken om MSAL terug te roepen. U stelt deze mogelijkheid in door het AppDelegate.m-bestand bij te werken om de methode te overschrijven, zoals in de volgende codevoorbeelden wordt weergegeven.
Als u UISceneDelegate in gebruikt hebt genomen op iOS 13 of hoger, plaatst u de MSAL-callback in plaats daarvan in de scene:openURLContexts: van UISceneDelegate. MSAL handleMSALResponse:sourceApplication: mag slechts één keer worden aangeroepen voor elke URL.
MSAL voor iOS en macOS gebruikt URL's om de broker aan te roepen en vervolgens het broker-antwoord naar uw app te retourneren. Registreer een URL-schema voor uw app in het bestand Info.plist om de rondrit te voltooien.
Een schema voor uw app registreren:
Voeg het voorvoegsel msauth toe aan uw aangepaste URL-schema.
Voeg uw bundel-id toe aan het einde van uw schema. Volg dit patroon:
$"msauth.(BundleId)"
Hier identificeert BundleId uw apparaat op unieke wijze. Als BundleId bijvoorbeeld yourcompany.xforms is, is het URL-schema msauth.com.yourcompany.xforms.
Dit URL-schema wordt onderdeel van de omleidings-URI die uw app uniek identificeert wanneer deze het antwoord van de broker ontvangt. Zorg ervoor dat de omleidings-URI in de indeling msauth.(BundleId)://auth is geregistreerd voor uw toepassing.
Demonstreer de functies van Microsoft Entra ID om identiteitsoplossingen te moderniseren, hybride oplossingen te implementeren en identiteitsbeheer te implementeren.
Meer informatie over het aanmelden van gebruikers en het openen van web-API's in mobiele toepassingen met onze quickstarts, zelfstudies en uitgebreide handleidingen.
In deze quickstart leert u hoe u met Android-toepassingen een API kunt aanroepen waarvoor toegangstokens zijn vereist die zijn verstrekt door het Microsoft-identiteitsplatform.
In deze zelfstudie bouwt u een Android-app die gebruikmaakt van het Microsoft-identiteitsplatform voor het aanmelden van gebruikers. U krijgt een toegangstoken waarmee u de Microsoft Graph API namens hen kunt aanroepen.
In deze quickstart leert u hoe u met Android-toepassingen een API kunt aanroepen waarvoor toegangstokens zijn vereist die zijn verstrekt door het Microsoft-identiteitsplatform.
In deze quickstart leert u hoe een iOS- of macOS-app gebruikers kan aanmelden, een toegangstoken kan ophalen van het Microsoft Identity Platform en de Microsoft Graph API kan aanroepen.