Quickstart: Gebruikers aanmelden en de Microsoft Graph API aanroepen vanuit een iOS- of macOS-app

Welkom. Dit is waarschijnlijk niet de pagina die u verwachtte te zien. Terwijl we aan een oplossing voor dit probleem werken, kunt u met deze koppeling naar het juiste artikel gaan:

Quickstart: Gebruikers aanmelden en Microsoft Graph aanroepen vanuit een iOS- of macOS-app

Onze excuses voor het ongemak en bedankt voor uw geduld tijdens onze inspanningen om dit probleem op te lossen.

In deze quickstart downloadt u een codevoorbeeld en voert u dit uit. Het codevoorbeeld laat zien hoe gebruikers kunnen worden aangemeld met een systeemeigen iOS- of macOS-toepassing, en een toegangstoken kunnen krijgen om de Microsoft Graph API aan te roepen.

De quickstart is van toepassing op iOS- en macOS-apps. Sommige stappen zijn alleen nodig voor iOS-apps en worden als zodanig aangeduid.

Vereisten

Hoe het voorbeeld werkt

Toont hoe de voorbeeld-app werkt die is gegenereerd door deze snelstart

Stap 1: Uw toepassing configureren

Voeg voor het codevoorbeeld voor deze quickstart een omleidings-URI toe die compatibel is met de verificatiebroker.

Al geconfigureerd Uw toepassing is geconfigureerd met deze kenmerken

Stap 2: Het voorbeeldproject downloaden

Stap 3: Afhankelijkheden installeren

  1. Pak het zip-bestand uit.
  2. Navigeer in een terminalvenster naar de map met het gedownloade codevoorbeeld en voer pod install uit om de MSAL-bibliotheek te installeren.

Stap 4: Uw app is geconfigureerd en gereed om uit te voeren

Uw project is geconfigureerd met waarden van de eigenschappen van uw app en is klaar om te worden uitgevoerd.

Notitie

Enter_the_Supported_Account_Info_Here

  1. Als u een app bouwt voor nationale Microsoft Entra-clouds, vervangt u de regel die begint met 'let kGraphEndpoint' en 'let kAuthority' door de juiste eindpunten. Gebruik de standaardwaarden voor globale toegang:

    let kGraphEndpoint = "https://graph.microsoft.com/"
    let kAuthority = "https://login.microsoftonline.com/common"
    
  2. Andere eindpunten worden hier beschreven. Als u bijvoorbeeld de quickstart wilt uitvoeren met Microsoft Entra Duitsland, gebruikt u het volgende:

    let kGraphEndpoint = "https://graph.microsoft.de/"
    let kAuthority = "https://login.microsoftonline.de/common"
    
  3. Open de projectinstellingen. Voer in de sectie Identiteit de bundel-id in die u hebt ingevoerd in de portal.

  4. Klik met de rechtermuisknop op Info.plist en selecteer Openen als>Broncode.

  5. Vervang onder het dict-hoofdknooppunt Enter_the_bundle_Id_Here door de bundel-id die u in de portal hebt gebruikt. Let op het voorvoegsel msauth. in de tekenreeks.

    <key>CFBundleURLTypes</key>
    <array>
       <dict>
          <key>CFBundleURLSchemes</key>
          <array>
             <string>msauth.Enter_the_Bundle_Id_Here</string>
          </array>
       </dict>
    </array>
    
  6. Bouw de app en voer deze uit.

Meer informatie

Lees deze secties voor meer informatie over deze snelstart.

MSAL ophalen

MSAL (MSAL.framework) is de bibliotheek die wordt gebruikt voor het aanmelden van gebruikers en aanvragen van tokens die worden gebruikt voor toegang tot een API die wordt beveiligd door Microsoft identity platform. U kunt MSAL toevoegen aan uw toepassing met behulp van het volgende proces:

$ vi Podfile

Voeg het volgende toe aan deze podfile (met het doel van het project):

use_frameworks!

target 'MSALiOS' do
   pod 'MSAL'
end

Voer de CocoaPods-installatieopdracht uit:

pod install

MSAL initialiseren

U kunt de verwijzing voor MSAL toevoegen door de volgende code toe te voegen:

import MSAL

Vervolgens initialiseert u MSAL met de volgende code:

let authority = try MSALAADAuthority(url: URL(string: kAuthority)!)

let msalConfiguration = MSALPublicClientApplicationConfig(clientId: kClientID, redirectUri: nil, authority: authority)
self.applicationContext = try MSALPublicClientApplication(configuration: msalConfiguration)
Hierin: Beschrijving
clientId De toepassings-id van de toepassing die is geregistreerd in portal.azure.com
authority Microsoft identity platform. In de meeste gevallen is dit https://login.microsoftonline.com/common>
redirectUri De omleidings-URI van de toepassing. U kunt 'nil' doorgeven om de standaardwaarde te gebruiken, of uw aangepaste omleidings-URI gebruiken.

Alleen voor iOS: extra app-vereisten

Uw app moet ook het volgende bevatten in uw AppDelegate. Hiermee kan de tokenrespons van de verificatiebroker-app worden verwerkt door de MSAL SDK tijdens het verificatieproces.

func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {

    return MSALPublicClientApplication.handleMSALResponse(url, sourceApplication: options[UIApplication.OpenURLOptionsKey.sourceApplication] as? String)
}

Notitie

Als u in iOS 13+ UISceneDelegate gebruikt in plaats van UIApplicationDelegate, plaatst u deze code in de scene:openURLContexts: callback (zie de documentatie van Apple). Als u ondersteuning biedt voor UISceneDelegate en UIApplicationDelegate voor compatibiliteit met oudere iOS-versies, moet MSAL-callback in beide locaties worden geplaatst.

func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>) {

   guard let urlContext = URLContexts.first else {
      return
   }

   let url = urlContext.url
   let sourceApp = urlContext.options.sourceApplication

   MSALPublicClientApplication.handleMSALResponse(url, sourceApplication: sourceApp)
}

Ten slotte moet de app de vermelding LSApplicationQueriesSchemes bevatten in Info.plist, naast CFBundleURLTypes. In het voorbeeld is deze vermelding al opgenomen.

<key>LSApplicationQueriesSchemes</key>
<array>
   <string>msauthv2</string>
   <string>msauthv3</string>
</array>

Gebruikers aanmelden en tokens aanvragen

MSAL biedt twee methoden voor het verkrijgen van tokens: acquireToken en acquireTokenSilent.

acquireToken: een token interactief ophalen

In sommige situaties moeten gebruikers communiceren met Microsoft identity platform. In dergelijke gevallen kunnen eindgebruikers verplicht zijn om hun account te selecteren, hun referenties in te voeren of toestemming te geven voor de machtigingen van uw app. Voorbeeld:

  • De eerste keer dat gebruikers zich aanmelden bij de toepassing
  • Als gebruiker hun wachtwoord opnieuw instellen, moeten ze hun referenties invoeren
  • Wanneer via de toepassing voor het eerst toegang wordt aangevraagd tot een resource
  • Wanneer MFA of ander beleid voor voorwaardelijke toegang is vereist
let parameters = MSALInteractiveTokenParameters(scopes: kScopes, webviewParameters: self.webViewParamaters!)
self.applicationContext!.acquireToken(with: parameters) { (result, error) in /* Add your handling logic */}
Hierin: Beschrijving
scopes Bevat de bereiken die worden aangevraagd (dat wil gezegd, [ "user.read" ] voor Microsoft Graph of [ "<Application ID URL>/scope" ] voor aangepaste web-API's (api://<Application ID>/access_as_user))

acquireTokenSilent: Een toegangstoken op de achtergrond ophalen

Gebruikers zouden zich niet telkens moeten aanmelden wanneer apps een token aanvragen. Als de gebruiker al is aangemeld, kunnen apps via deze methode tokens op de achtergrond aanvragen.

self.applicationContext!.getCurrentAccount(with: nil) { (currentAccount, previousAccount, error) in

   guard let account = currentAccount else {
      return
   }

   let silentParams = MSALSilentTokenParameters(scopes: self.kScopes, account: account)
   self.applicationContext!.acquireTokenSilent(with: silentParams) { (result, error) in /* Add your handling logic */}
}
Hierin: Beschrijving
scopes Bevat de bereiken die worden aangevraagd (dat wil zeggen [ "user.read" ] voor Microsoft Graph of [ "<Application ID URL>/scope" ] voor aangepaste web-API's (api://<Application ID>/access_as_user)
account Het account waarvoor een token wordt aangevraagd. Deze quickstart betreft een toepassing met één account. Als u een app met meerdere accounts wilt maken, moet u logica definiëren om te bepalen welk account moet worden gebruikt voor tokenaanvragen met behulp van accountsFromDeviceForParameters:completionBlock: en doorgifte van de juiste accountIdentifier

Help en ondersteuning

Als u hulp nodig hebt, een probleem wilt melden of meer informatie wilt over uw ondersteuningsopties, raadpleegt u Hulp en ondersteuning voor ontwikkelaars.

Volgende stappen

Ga naar de stapsgewijze zelfstudie waarin u een iOS- of macOS-app bouwt die een toegangstoken van het Microsoft-identiteitsplatform ontvangt en dit gebruikt om de Microsoft Graph-API aan te roepen.