Megosztás a következőn keresztül:


Rövid útmutató: Felhasználók bejelentkeztetése és a Microsoft Graph használata 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 gyorsú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

A minta működése

diagram, amely bemutatja, hogyan működik az ebben a rövid útmutatóban létrehozott mintaalkalmazás.

Gyorsindító alkalmazás regisztrálása

Az alkalmazás regisztrálásához és az alkalmazás regisztrációs adatainak manuális hozzáadásához kövesse az alábbi lépéseket:

  1. Jelentkezzen be az Microsoft Entra felügyeleti központba, legalább mint alkalmazásfejlesztő.
  2. Ha több bérlőhöz is hozzáfér, a felső menü Beállítások ikon segítségével válthat arra a bérlőre, amelyben regisztrálni szeretné az alkalmazást a Könyvtárak + előfizetések menüből.
  3. Böngésszen a(z) Identitás>alkalmazások>alkalmazásregisztrációk.
  4. Válassza Új regisztráció.
  5. Adjon meg egy nevet az alkalmazáshoz . Előfordulhat, hogy az alkalmazás felhasználói látják ezt a nevet, és később módosíthatja.
  6. Válassza a Jelentkezzen belehetőséget.
  7. A Kezelésalatt válassza a Hitelesítés>Platform hozzáadása>iOSlehetőséget.
  8. 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ó.
  9. Válassza a Konfigurálás lehetőséget, és mentse el a MSAL-konfiguráció részleteit későbbre a rövid útmutatóban.
  10. Válassza a Készlehetőséget.

2. lépés: A mintaprojekt letöltése

  • Az iOS- kódmintájának letöltése
  • A macOS- kódmintájának letöltése

3. lépés: Függőségek telepítése

  1. Bontsa ki a zip-fájlt.
  2. Egy terminálablakban keresse meg a letöltött kódmintát tartalmazó mappát, és futtassa a 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.

  1. Nyissa meg a projektet az XCode-ban.

  2. Szerkessze ViewController.swift, és cserélje le a "let kClientID"-del kezdődő sort a következő kódrészletre. Ne felejtse el frissíteni a kClientID értékét az app regisztrálásakor mentett ügyfélazonosítóval, ahogyan azt korábban ebben a gyors indítási útmutatóban tette.

    let kClientID = "Enter_the_Application_Id_Here"
    
  3. Ha alkalmazást készít Microsoft Entra nemzeti felhőkhöz, cserélje le az 'let kGraphEndpoint' és 'let kAuthority' változókat tartalmazó sorokat a megfelelő végpontokkal. 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"
    
  4. A többi végpontot itt dokumentáljuk. A Microsoft Entra Germany gyorsindításá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"
    
  5. Nyissa meg a projekt beállításait. Az Identitás szakaszban adja meg a csomagazonosító.

  6. Kattintson a jobb gombbal Info.plist, és válassza a Megnyitás mint>Forráskódlehetőséget.

  7. A "dict" gyökércsomópont alatt cserélje le a Enter_the_bundle_Id_Here-at arra a csomagazonosítóra, amelyet a portálon használt. Figyelje meg a msauth. előtagot a karakterláncban.

    <key>CFBundleURLTypes</key>
    <array>
       <dict>
          <key>CFBundleURLSchemes</key>
          <array>
             <string>msauth.Enter_the_Bundle_Id_Here</string>
          </array>
       </dict>
    </array>
    
  8. Hozza létre és futtassa az alkalmazást!

További információ

A gyors útmutatóról további információkért olvassa el 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-k eléréséhez használt jogkivonatok lekéréséhez használt kódtár. Az MSAL az alábbi eljárással vehető fel az alkalmazásba:

$ 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-ra vonatkozó hivatkozást a következő kód hozzáadásával adhatja hozzá:

import MSAL

Ezután inicializálja az MSAL-t a következő 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)
Hol: Leírás
clientId A portal.azure.com regisztrált alkalmazás alkalmazásazonosítója
authority A Microsoft identitásplatformja. A legtöbb esetben ez 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

A(z) AppDelegate-ban az alkalmazásnak a következőket is tartalmaznia kell. Ez lehetővé teszi, hogy az MSAL SDK kezelje a hitelesítés során az Auth broker alkalmazás token 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)
}

Jegyzet

Ha az iOS 13+-on a UIApplicationDelegatehelyett a UISceneDelegate-t fogadod el, helyezd el ezt a kódot a scene:openURLContexts: visszahívásban (lásd az Apple dokumentációrészletét). Ha kompatibilis akar maradni a régebbi iOS-ekkel, és ezért támogatja mind az UISceneDelegate, mind az UIApplicationDelegate használatát, 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 a Info.plist a CFBundleURLTypesmellett. A minta tartalmazza ezt a részt.

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

Bejelentkezett felhasználók & jogkivonatokat kérnek

Az MSAL két módszert használ a jogkivonatok beszerzésére: acquireToken és acquireTokenSilent.

acquireToken: Token interaktív lekérése

Bizonyos helyzetekben a felhasználóknak a Microsoft identitásplatformjával kell kommuniká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 a 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 */}
Hol: 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 tokent kérnek. Ha a felhasználó már bejelentkezett, ez a módszer lehetővé teszi, hogy az alkalmazások észrevétlenül kérjenek tokeneket.

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 */}
}
Hol: 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 tokent kérnek. Ez a rövid útmutató egyetlen felhasználói fiók alkalmazásáról szól. Ha többfiókos alkalmazást szeretne létrehozni, meg kell határoznia a logikát, hogy azonosítsa a jogkivonat-kérelmekhez használandó fiókot, a accountsFromDeviceForParameters:completionBlock: használatával és a megfelelő accountIdentifier átadásával.

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, tekintse meg fejlesztőknek szóló súgót és támogatást.

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 hozzáférési jogkivonatot kap a Microsoft identitásplatformjáról, és a Microsoft Graph API meghívására használja.