Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Benvenuto! Questa probabilmente non è la pagina che ti aspettavi. Mentre si lavora su una correzione, questo collegamento dovrebbe portare all'articolo corretto:
Avvio rapido: Concedere l'accesso agli utenti e chiamare Microsoft Graph da un'app iOS o macOS
Ci scusiamo per l'inconveniente e apprezziamo la vostra pazienza mentre lavoriamo per risolvere questo problema.
In questa guida introduttiva si scarica ed esegue un esempio di codice che illustra come un'applicazione iOS o macOS nativa può accedere agli utenti e ottenere un token di accesso per chiamare l'API Microsoft Graph.
La guida introduttiva si applica sia alle app iOS sia alle app macOS. Alcuni passaggi sono necessari solo per le app iOS e verranno indicati come tali.
Prerequisiti
- Un account Azure con una sottoscrizione attiva. Creare un account gratuito.
- XCode 10+
- iOS 10+
- macOS 10.12+
Funzionamento dell'esempio
Passaggio 1: Configurare l'applicazione
Per il funzionamento dell'esempio di codice per questa guida introduttiva, aggiungere un URI di reindirizzamento compatibile con il broker di autenticazione.
L'applicazione è configurata con questi attributi
Passaggio 2: Scaricare il progetto di esempio
Passaggio 3: Installare le dipendenze
- Estrarre il file ZIP.
- In una finestra del terminale passare alla cartella con l'esempio di codice scaricato ed eseguire
pod installper installare la libreria MSAL più recente.
Passaggio 4: l'app è configurata e pronta per l'esecuzione
Il progetto è stato configurato con i valori delle proprietà dell'app ed è pronto per essere eseguito.
Annotazioni
Enter_the_Supported_Account_Info_Here
Se stai creando un'app per i cloud nazionali di Microsoft Entra, sostituisci le righe che iniziano con "let kGraphEndpoint" e "let kAuthority" con gli endpoint corretti. Per l'accesso globale, usare i valori predefiniti:
let kGraphEndpoint = "https://graph.microsoft.com/" let kAuthority = "https://login.microsoftonline.com/common"Altri endpoint sono documentati qui. Ad esempio, per eseguire il quickstart con Microsoft Entra Germania, usare quanto segue:
let kGraphEndpoint = "https://graph.microsoft.de/" let kAuthority = "https://login.microsoftonline.de/common"Aprire le impostazioni del progetto. Nella sezione Identità, inserisci l'Identificatore del Bundle che hai inserito nel portale.
Fare clic con il pulsante destro del mouse su Info.plist e selezionare Apri come>Codice sorgente.
Nel nodo radice dict, sostituisci
Enter_the_bundle_Id_Herecon il Bundle ID che hai utilizzato nel portale. Si noti il prefissomsauth.nella stringa.<key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleURLSchemes</key> <array> <string>msauth.Enter_the_Bundle_Id_Here</string> </array> </dict> </array>Compilare ed eseguire l'app.
Altre informazioni
Leggete queste sezioni per saperne di più su questa guida introduttiva.
Ottieni MSAL
MSAL (MSAL.framework) è la libreria usata per accedere agli utenti e richiedere token usati per accedere a un'API protetta da Microsoft Identity Platform. È possibile aggiungere MSAL all'applicazione usando il processo seguente:
$ vi Podfile
Aggiungere quanto segue a questo podfile (con la destinazione del progetto):
use_frameworks!
target 'MSALiOS' do
pod 'MSAL'
end
Eseguire il comando di installazione di CocoaPods:
pod install
Inizializzare MSAL
È possibile aggiungere il riferimento per MSAL aggiungendo il codice seguente:
import MSAL
Inizializzare quindi MSAL usando il codice seguente:
let authority = try MSALAADAuthority(url: URL(string: kAuthority)!)
let msalConfiguration = MSALPublicClientApplicationConfig(clientId: kClientID, redirectUri: nil, authority: authority)
self.applicationContext = try MSALPublicClientApplication(configuration: msalConfiguration)
Dove: Descrizione clientIdID dell'applicazione registrata in portal.azure.com authorityLa piattaforma di identità Microsoft. Nella maggior parte dei casi sarà https://login.microsoftonline.com/common>redirectUriURI di reindirizzamento dell'applicazione. È possibile passare 'nil' per usare il valore predefinito o l'URI di reindirizzamento personalizzato.
Solo per iOS, requisiti aggiuntivi per le app
La tua app deve inoltre includere quanto segue nel AppDelegate. Ciò consente a MSAL SDK di gestire la risposta del token dall'app broker di autenticazione quando si esegue l'autenticazione.
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
return MSALPublicClientApplication.handleMSALResponse(url, sourceApplication: options[UIApplication.OpenURLOptionsKey.sourceApplication] as? String)
}
Annotazioni
In iOS 13+, se adotti UISceneDelegate invece di UIApplicationDelegate, inserisci questo codice nel callback scene:openURLContexts: (vedi la documentazione di Apple ).
Se si supportano sia UISceneDelegate che UIApplicationDelegate per la compatibilità con iOS meno recenti, è necessario inserire il callback MSAL in entrambe le posizioni.
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)
}
Infine, la tua app deve includere una voce di LSApplicationQueriesSchemes nel Info.plist insieme al CFBundleURLTypes. L'esempio include questo elemento.
<key>LSApplicationQueriesSchemes</key>
<array>
<string>msauthv2</string>
<string>msauthv3</string>
</array>
Gli utenti effettuano l'accesso & richiedono token
MSAL include due metodi usati per acquisire i token: acquireToken e acquireTokenSilent.
acquireToken: ottenere un token in modo interattivo
Alcune situazioni richiedono agli utenti di interagire con Microsoft Identity Platform. In questi casi, l'utente finale potrebbe dover selezionare il proprio account, inserire le credenziali o fornire il consenso alle autorizzazioni dell'app. Ad esempio:
- La prima volta che gli utenti accedono all'applicazione
- Se un utente reimposta la password, dovrà immettere le proprie credenziali
- Quando l'applicazione richiede l'accesso a una risorsa per la prima volta
- Quando è necessaria l'autenticazione a più fattori o altri criteri di accesso condizionale
let parameters = MSALInteractiveTokenParameters(scopes: kScopes, webviewParameters: self.webViewParameters!)
self.applicationContext!.acquireToken(with: parameters) { (result, error) in /* Add your handling logic */}
Dove: Descrizione scopesContiene gli ambiti richiesti ( ovvero [ "user.read" ]per Microsoft Graph o[ "<Application ID URL>/scope" ]per le API Web personalizzate (api://<Application ID>/access_as_user))
acquireTokenSilent: Ottenere un token di accesso silenziosamente
Le app non devono richiedere agli utenti di accedere ogni volta che richiedono un token. Se l'utente ha già eseguito l'accesso, questo metodo consente alle app di richiedere i token in modo invisibile all'utente.
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 */}
}
Dove: Descrizione scopesContiene gli ambiti richiesti, ovvero [ "user.read" ]per Microsoft Graph o[ "<Application ID URL>/scope" ]per le API Web personalizzate (api://<Application ID>/access_as_user)accountL'account per cui viene richiesto un token. Questa guida introduttiva riguarda un'applicazione con un singolo account. Se si vuole creare un'app con più account, è necessario definire la logica per identificare l'account da usare per le richieste di token usando accountsFromDeviceForParameters:completionBlock:e il passaggio diaccountIdentifiercorretti
Assistenza e supporto
Se è necessaria assistenza, si vuole segnalare un problema o si vogliono ottenere informazioni sulle opzioni di supporto, vedere Assistenza e supporto per gli sviluppatori.
Passaggi successivi
Passare all'esercitazione dettagliata in cui si compila un'app iOS o macOS che ottiene un token di accesso da Microsoft Identity Platform e la usa per chiamare l'API Microsoft Graph.