Rövid útmutató: Jelentkezzen be a felhasználókba, és hívja meg a Microsoft Graph API-t egy iOS- vagy macOS-alkalmazásból

Üdvözöljük! Valószínűleg nem ez az a lap, amire számított. Amíg dolgozunk a javításon, ez a hivatkozás a megfelelő cikkre viszi:

Rövid útmutató: Bejelentkezés a felhasználókba, és a Microsoft Graph meghívása iOS- vagy macOS-alkalmazásból

Elnézést kérünk a kellemetlenségért, és köszönjük türelmét, amíg dolgozunk a probléma megoldásán.

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

A minta működése

Az ebben a rövid útmutatóban létrehozott mintaalkalmazás működése

1. lépés: Az alkalmazás konfigurálása

A rövid útmutató kódmintájának működéséhez adjon hozzá egy átirányítási URI-t , amely kompatibilis az Auth-közvetítővel.

Már konfigurálva van Az alkalmazás konfigurálva van ezekkel az attribútumokkal

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

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

  1. Csomagolja ki a tömörített fájlt.
  2. 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: Az alkalmazás konfigurálva van, és készen áll a futtatásra

Konfiguráltuk a projektet az alkalmazás tulajdonságainak értékeivel, és készen áll a futtatásra.

Feljegyzés

Enter_the_Supported_Account_Info_Here

  1. 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"
    
  2. 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"
    
  3. Nyissa meg a projekt beállításait. Az Identitás szakaszban adja meg a portálon megadott csomagazonosítót.

  4. Kattintson a jobb gombbal az Info.plist elemre, és válassza a Megnyitás forráskódként>lehetőséget.

  5. 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 az msauth. előtagot a sztringben.

    <key>CFBundleURLTypes</key>
    <array>
       <dict>
          <key>CFBundleURLSchemes</key>
          <array>
             <string>msauth.Enter_the_Bundle_Id_Here</string>
          </array>
       </dict>
    </array>
    
  6. 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 AppDelegatealkalmazá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.