Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Välkommen! Det här är förmodligen inte den sida du förväntade dig. När vi arbetar med en korrigering bör den här länken ta dig till rätt artikel:
Snabbstart: Logga in användare och anropa Microsoft Graph från en iOS- eller macOS-app
Vi ber om ursäkt för besväret och uppskattar ditt tålamod medan vi arbetar för att få detta löst.
I den här snabbstarten laddar du ned och kör ett kodexempel som visar hur ett inbyggt iOS- eller macOS-program kan logga in användare och få en åtkomsttoken för att anropa Microsoft Graph API.
Snabbstarten gäller för både iOS- och macOS-appar. Vissa steg behövs endast för iOS-appar och anges som sådana.
Förutsättningar
- Ett Azure-konto med en aktiv prenumeration. Skapa ett konto utan kostnad.
- XCode 10+
- iOS 10+
- macOS 10.12+
Så här fungerar exemplet
Steg 1: Konfigurera programmet
För att kodexemplet för den här snabbstarten ska fungera lägger du till en omdirigerings-URI som är kompatibel med Auth Broker.
Ditt program har konfigurerats med dessa attribut
Steg 2: Ladda ned exempelprojektet
Steg 3: Installera beroenden
- Extrahera zip-filen.
- I ett terminalfönster navigerar du till mappen med det nedladdade kodexemplet och kör
pod installför att installera det senaste MSAL-biblioteket.
Steg 4: Din app är konfigurerad och redo att köras
Vi har konfigurerat projektet med värden för appens egenskaper och är redo att köras.
Anmärkning
Enter_the_Supported_Account_Info_Here
Om du skapar en app för nationella Microsoft Entra-molnersätter du raden som börjar med "let kGraphEndpoint" och "let kAuthority" med rätt slutpunkter. Använd standardvärden för global åtkomst:
let kGraphEndpoint = "https://graph.microsoft.com/" let kAuthority = "https://login.microsoftonline.com/common"Andra slutpunkter är dokumenterade här. Om du till exempel vill köra snabbstarten med Microsoft Entra Tyskland använder du följande:
let kGraphEndpoint = "https://graph.microsoft.de/" let kAuthority = "https://login.microsoftonline.de/common"Öppna projektinställningarna. I avsnittet Identitet anger du den paketidentifierare som du angav i portalen.
Högerklicka på Info.plist och välj Öppna som>källkod.
Under rotnoden för diktering ersätter du
Enter_the_bundle_Id_Heremed paket-ID som du använde i portalen. Observeramsauth.prefixet i strängen.<key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleURLSchemes</key> <array> <string>msauth.Enter_the_Bundle_Id_Here</string> </array> </dict> </array>Skapa och kör appen!
Mer information
Läs de här avsnitten om du vill veta mer om den här snabbstarten.
Hämta MSAL
MSAL (MSAL.framework) är det bibliotek som används för att logga in användare och begära token som används för att komma åt ett API som skyddas av Microsofts identitetsplattform. Du kan lägga till MSAL i ditt program med hjälp av följande process:
$ vi Podfile
Lägg till följande i den här poddfilen (med projektets mål):
use_frameworks!
target 'MSALiOS' do
pod 'MSAL'
end
Kör installationskommandot för CocoaPods:
pod install
Initiera MSAL
Du kan lägga till referensen för MSAL genom att lägga till följande kod:
import MSAL
Initiera sedan MSAL med hjälp av följande kod:
let authority = try MSALAADAuthority(url: URL(string: kAuthority)!)
let msalConfiguration = MSALPublicClientApplicationConfig(clientId: kClientID, redirectUri: nil, authority: authority)
self.applicationContext = try MSALPublicClientApplication(configuration: msalConfiguration)
Var: Beskrivning clientIdProgram-ID:t från programmet som registrerats i portal.azure.com authorityMicrosofts identitetsplattform. I de flesta fall kommer detta att https://login.microsoftonline.com/common>redirectUriProgrammets omdirigerings-URI. Du kan skicka "nil" för att använda standardvärdet eller din anpassade omdirigerings-URI.
Endast för iOS, ytterligare appkrav
Din app måste också ha följande i din AppDelegate. På så sätt kan MSAL SDK hantera tokensvar från Auth Broker-appen när du utför autentisering.
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
return MSALPublicClientApplication.handleMSALResponse(url, sourceApplication: options[UIApplication.OpenURLOptionsKey.sourceApplication] as? String)
}
Anmärkning
Om du använder UISceneDelegate i stället för UIApplicationDelegatei iOS 13+ ska du placera koden i callback:en scene:openURLContexts: i stället (se Apples dokumentation).
Om du stöder både UISceneDelegate och UIApplicationDelegate för kompatibilitet med äldre iOS måste MSAL-återanrop placeras på båda platserna.
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)
}
Slutligen måste din app ha en LSApplicationQueriesSchemes post i Info.plist-fil samt CFBundleURLTypes. Exemplet medföljer detta.
<key>LSApplicationQueriesSchemes</key>
<array>
<string>msauthv2</string>
<string>msauthv3</string>
</array>
Användare som är inloggade begär tokens &
MSAL har två metoder som används för att hämta token: acquireToken och acquireTokenSilent.
acquireToken: Hämta en token interaktivt
Vissa situationer kräver att användarna interagerar med Microsofts identitetsplattform. I dessa fall kan slutanvändaren behöva välja sitt konto, ange sina autentiseringsuppgifter eller godkänna appens behörigheter. Ett exempel:
- Första gången användare loggar in på programmet
- Om en användare återställer sitt lösenord måste de ange sina autentiseringsuppgifter
- När ditt program begär åtkomst till en resurs för första gången
- När MFA eller andra principer för villkorsstyrd åtkomst krävs
let parameters = MSALInteractiveTokenParameters(scopes: kScopes, webviewParameters: self.webViewParameters!)
self.applicationContext!.acquireToken(with: parameters) { (result, error) in /* Add your handling logic */}
Var: Beskrivning scopesInnehåller de omfång som begärs (dvs. [ "user.read" ]för Microsoft Graph eller[ "<Application ID URL>/scope" ]för anpassade webb-API:er (api://<Application ID>/access_as_user))
acquireTokenSilent: Hämta en åtkomsttoken tyst
Appar bör inte kräva att användarna loggar in varje gång de begär en token. Om användaren redan har loggat in tillåter den här metoden att appar begär token tyst.
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 */}
}
Var: Beskrivning scopesInnehåller de omfång som begärs (dvs. [ "user.read" ]för Microsoft Graph eller[ "<Application ID URL>/scope" ]för anpassade webb-API:erapi://<Application ID>/access_as_user)accountKontot för vilket en token begärs. Den här snabbstarten handlar om en enda kontoansökan. Om du vill skapa en app med flera konton måste du definiera logik för att identifiera vilket konto som ska användas för tokenbegäranden med accountsFromDeviceForParameters:completionBlock:och skicka rättaccountIdentifier
Hjälp och stöd
Om du behöver hjälp, vill rapportera ett problem eller vill lära dig mer om dina supportalternativ kan du läsa Hjälp och support för utvecklare.
Nästa steg
Gå vidare till den stegvisa självstudien där du skapar en iOS- eller macOS-app som hämtar en åtkomsttoken från Microsofts identitetsplattform och använder den för att anropa Microsoft Graph API.