Rövid útmutató: Bejelentkezés a felhasználókba, és a Microsoft Graph meghívása iOS- vagy macOS-alkalmazásból
Ebben a rövid útmutatóban letölthet és futtathat egy kódmintát, amely bemutatja, hogy egy natív iOS- vagy macOS-alkalmazás hogyan tud bejelentkezni a felhasználókba, és hogyan kérhet le egy hozzáférési jogkivonatot a Microsoft Graph API meghívásához.
A rövid útmutató iOS- és macOS-alkalmazásokra is vonatkozik. Néhány lépésre csak iOS-alkalmazások esetén van szükség, és ennek megfelelően jelennek meg.
Előfeltételek
- Egy Azure-fiók, aktív előfizetéssel. Fiók ingyenes létrehozása.
- XCode 10+
- iOS 10+
- macOS 10.12+
A minta működése
Gyorsútmutató-alkalmazás regisztrálása
Tipp.
A cikkben szereplő lépések a portáltól függően kissé eltérhetnek.
Az alkalmazás regisztrálásához és az alkalmazás regisztrációs információinak a megoldáshoz való kézi hozzáadásához kövesse az alábbi lépéseket:
- Jelentkezzen be a Microsoft Entra felügyeleti központba legalább alkalmazásfejlesztőként.
- Ha több bérlőhöz is hozzáfér, a felső menü Gépház ikonjávalválthat arra a bérlőre, amelyben regisztrálni szeretné az alkalmazást a Könyvtárak + előfizetések menüből.
- Keresse meg az identitásalkalmazásokat>> Alkalmazásregisztrációk.
- Új regisztráció kiválasztása.
- Adja meg az alkalmazás nevét. Előfordulhat, hogy az alkalmazás felhasználói látják ezt a nevet, és később módosíthatja.
- Válassza ki a pénztárgépet.
- A Kezelés területen válassza a Hitelesítés>hozzáadása platform>iOS-hez lehetőséget.
- Adja meg az alkalmazás csomagazonosítóját . A csomagazonosító egy egyedi sztring, amely egyedileg azonosítja az alkalmazást, például
com.<yourname>.identitysample.MSALMacOS
. Jegyezze fel a használt értéket. Vegye figyelembe, hogy az iOS-konfiguráció macOS-alkalmazásokra is alkalmazható. - A rövid útmutató későbbi részében válassza a Konfigurálás és az MSAL-konfiguráció részleteinek mentését.
- Válassza a Kész lehetőséget.
2. lépés: A mintaprojekt letöltése
3. lépés: Függőségek telepítése
- Csomagolja ki a tömörített fájlt.
- A terminálablakban keresse meg a letöltött kódmintát tartalmazó mappát, és futtassa
pod install
a legújabb MSAL-kódtár telepítéséhez.
4. lépés: A projekt konfigurálása
Ha a fenti 1. lehetőséget választotta, kihagyhatja ezeket a lépéseket.
Nyissa meg a projektet az XCode-ban.
Szerkessze a ViewController.swift fájlt , és cserélje le a "let kClientID" kezdetű sort a következő kódrészletre. Ne felejtse el frissíteni a rövid útmutatóban az alkalmazás regisztrálásakor mentett ügyfélazonosító értékét
kClientID
:let kClientID = "Enter_the_Application_Id_Here"
Ha a Microsoft Entra nemzeti felhőkhöz készít alkalmazást, cserélje le a sort a "let kGraphEndpoint" és a "let kAuthority" kifejezésre a megfelelő végpontokra. Globális hozzáféréshez használja az alapértelmezett értékeket:
let kGraphEndpoint = "https://graph.microsoft.com/" let kAuthority = "https://login.microsoftonline.com/common"
A többi végpontot itt dokumentáljuk. A Microsoft Entra Germany rövid útmutatójának futtatásához például használja a következőket:
let kGraphEndpoint = "https://graph.microsoft.de/" let kAuthority = "https://login.microsoftonline.de/common"
Nyissa meg a projekt beállításait. Az Identitás szakaszban adja meg a csomagazonosítót.
Kattintson a jobb gombbal az Info.plist elemre, és válassza a Megnyitás forráskódként>lehetőséget.
A diktálás gyökércsomópontja alatt cserélje le
Enter_the_bundle_Id_Here
a portálon használt csomagazonosítóra. Figyelje meg azmsauth.
előtagot a sztringben.<key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleURLSchemes</key> <array> <string>msauth.Enter_the_Bundle_Id_Here</string> </array> </dict> </array>
Hozza létre és futtassa az alkalmazást!
További információ
Az erre a rövid útmutatóra vonatkozó további információért tekintse meg ezeket a szakaszokat.
MSAL lekérése
Az MSAL (MSAL.framework) a felhasználók bejelentkezéséhez és a Microsoft Identitásplatform által védett API eléréséhez használt jogkivonatok lekéréséhez használt kódtár. Az MSAL-t az alábbi eljárással adhatja hozzá az alkalmazáshoz:
$ vi Podfile
Adja hozzá a következőket ehhez a podfile-hoz (a projekt céljával):
use_frameworks!
target 'MSALiOS' do
pod 'MSAL'
end
Futtassa a CocoaPods telepítési parancsát:
pod install
MSAL inicializálása
Az MSAL-re mutató hivatkozás hozzáadásához adja hozzá az alábbi kódot:
import MSAL
Ezután inicializálja az MSAL-t az alábbi kóddal:
let authority = try MSALAADAuthority(url: URL(string: kAuthority)!)
let msalConfiguration = MSALPublicClientApplicationConfig(clientId: kClientID, redirectUri: nil, authority: authority)
self.applicationContext = try MSALPublicClientApplication(configuration: msalConfiguration)
Ahol: | Leírás |
---|---|
clientId |
A portal.azure.com webhelyen regisztrált alkalmazásból származó alkalmazásazonosító |
authority |
A Microsoft Identitásplatform. A legtöbb esetben ez a https://login.microsoftonline.com/common |
redirectUri |
Az alkalmazás átirányítási URI-ja. Az alapértelmezett érték vagy az egyéni átirányítási URI használatához "nulla" értéket adhat meg. |
Csak iOS esetén további alkalmazáskövetelmények
Az alkalmazásnak a következőket is tartalmaznia kell az Ön AppDelegate
alkalmazásban. Ez lehetővé teszi, hogy az MSAL SDK kezelje a hitelesítéskor az Auth broker alkalmazás jogkivonat-válaszát.
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
return MSALPublicClientApplication.handleMSALResponse(url, sourceApplication: options[UIApplication.OpenURLOptionsKey.sourceApplication] as? String)
}
Feljegyzés
Az iOS 13+-on, ha ahelyett alkalmazza UISceneDelegate
a kódot, helyezze a kódot a scene:openURLContexts:
visszahívásba (lásd az Apple dokumentációját).UIApplicationDelegate
Ha támogatja az UISceneDelegate és az UIApplicationDelegate használatát a régebbi iOS-ekkel való kompatibilitás érdekében, az MSAL visszahívást mindkét helyre el kell helyezni.
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)
}
Végül az alkalmazásnak rendelkeznie kell egy LSApplicationQueriesSchemes
bejegyzéssel az Info.plist webhelyen a CFBundleURLTypes
. A minta tartalmazza ezt a részt.
<key>LSApplicationQueriesSchemes</key>
<array>
<string>msauthv2</string>
<string>msauthv3</string>
</array>
Bejelentkezési felhasználók > jogkivonatok kérése
Az MSAL a következő két metódust használja a jogkivonatok beszerzéséhez: acquireToken
és acquireTokenSilent
acquireToken: Jogkivonat interaktív lekérése
Bizonyos helyzetekben a felhasználóknak Microsoft Identitásplatform kell használniuk. Ezekben az esetekben előfordulhat, hogy a végfelhasználónak ki kell választania a fiókját, meg kell adnia a hitelesítő adatait, vagy hozzá kell adnia az alkalmazás engedélyeit. Például:
- Az első alkalommal, amikor felhasználók bejelentkeznek az alkalmazásba
- Ha egy felhasználó visszaállítja a jelszavát, meg kell adnia a hitelesítő adatait
- Amikor az alkalmazás első alkalommal kér hozzáférést egy erőforráshoz
- Ha MFA- vagy egyéb feltételes hozzáférési szabályzatra van szükség
let parameters = MSALInteractiveTokenParameters(scopes: kScopes, webviewParameters: self.webViewParamaters!)
self.applicationContext!.acquireToken(with: parameters) { (result, error) in /* Add your handling logic */}
Ahol: | Leírás |
---|---|
scopes |
A kért hatóköröket tartalmazza (azaz [ "user.read" ] a Microsoft Graphhoz vagy [ "<Application ID URL>/scope" ] egyéni webes API-khoz (api://<Application ID>/access_as_user )) |
acquireTokenSilent: Hozzáférési jogkivonat csendes lekérése
Az alkalmazások nem követelhetik meg a felhasználóktól, hogy minden alkalommal jelentkezzenek be, amikor jogkivonatot kérnek. Ha a felhasználó már bejelentkezett, ez a módszer lehetővé teszi, hogy az alkalmazások csendesen kérjenek jogkivonatokat.
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 */}
}
Ahol: | Leírás |
---|---|
scopes |
A kért hatóköröket tartalmazza (azaz [ "user.read" ] a Microsoft Graphhoz vagy [ "<Application ID URL>/scope" ] egyéni webes API-khoz (api://<Application ID>/access_as_user )) |
account |
Az a fiók, amelyhez jogkivonatot kérnek. Ez a rövid útmutató egyetlen fiókalkalmazásról szól. Ha többfiókos alkalmazást szeretne létrehozni, meg kell határoznia a logikát annak azonosításához, hogy melyik fiókot használja a tokenkérelmekhez a megfelelő használatával accountsFromDeviceForParameters:completionBlock: és átadásával accountIdentifier |
Súgó és támogatás
Ha segítségre van szüksége, szeretne jelentést készíteni egy problémáról, vagy szeretne többet megtudni a támogatási lehetőségekről, olvassa el a súgót és a fejlesztők támogatását.
Következő lépések
Lépjen tovább a lépésenkénti oktatóanyagra, amelyben létrehoz egy iOS- vagy macOS-alkalmazást, amely lekéri a hozzáférési jogkivonatot a Microsoft Identitásplatform, és a Microsoft Graph API meghívására használja.