Sdílet prostřednictvím


Rychlý start: Přihlášení uživatelů a volání rozhraní Microsoft Graph API z aplikace pro iOS nebo macOS

Vítejte! Pravděpodobně to není stránka, kterou jste očekávali. Zatímco pracujeme na opravě, měl by vás tento odkaz dostat na správný článek:

Rychlý start: Přihlášení uživatelů a volání Microsoft Graphu z aplikace pro iOS nebo macOS

Omlouváme se za nepříjemnosti a vážíme si vaší trpělivosti, zatímco pracujeme na vyřešení tohoto problému.

V tomto rychlém startu si stáhnete a spustíte ukázku kódu, která předvádí, jak může nativní aplikace pro iOS nebo macOS přihlásit uživatele a získat přístupový token pro volání rozhraní Microsoft Graph API.

Rychlý start platí pro aplikace pro iOS i macOS. Některé kroky jsou potřeba jenom pro aplikace pro iOS a budou označeny jako takové.

Požadavky

Jak ukázka funguje

Ukazuje, jak funguje ukázková aplikace vygenerovaná v tomto rychlém startu.

Krok 1: Konfigurace aplikace

Aby ukázka kódu pro tento rychlý start fungovala, přidejte identifikátor URI přesměrování kompatibilní s zprostředkovatelem ověřování.

Už nakonfigurované Vaše aplikace je nakonfigurovaná s těmito atributy.

Krok 2: Stažení ukázkového projektu

Krok 3: Instalace závislostí

  1. Extrahujte soubor ZIP.
  2. V okně terminálu přejděte do složky s ukázkou staženého kódu a spuštěním pod install nainstalujte nejnovější knihovnu MSAL.

Krok 4: Aplikace je nakonfigurovaná a připravená ke spuštění

Nakonfigurovali jsme váš projekt s hodnotami vlastností vaší aplikace a je připravený ke spuštění.

Poznámka:

Enter_the_Supported_Account_Info_Here

  1. Pokud vytváříte aplikaci pro národní cloudy Microsoft Entra, nahraďte řádek začínající 'let kGraphEndpoint' a 'let kAuthority' správnými koncovými body. Pro globální přístup použijte výchozí hodnoty:

    let kGraphEndpoint = "https://graph.microsoft.com/"
    let kAuthority = "https://login.microsoftonline.com/common"
    
  2. Další koncové body jsou zdokumentované zde. Pokud chcete například spustit rychlý start s Microsoft Entra Germany, použijte následující:

    let kGraphEndpoint = "https://graph.microsoft.de/"
    let kAuthority = "https://login.microsoftonline.de/common"
    
  3. Otevřete nastavení projektu. V části Identita zadejte identifikátor balíčku, který jste zadali na portálu.

  4. Klikněte pravým tlačítkem na Info.plist a vyberte Otevřít jako>Zdrojový kód.

  5. V rámci kořenového uzlu ‚dict‘ nahraďte Enter_the_bundle_Id_Here s Bundle ID, které jste použili na portálu. Všimněte si předpony msauth. v řetězci.

    <key>CFBundleURLTypes</key>
    <array>
       <dict>
          <key>CFBundleURLSchemes</key>
          <array>
             <string>msauth.Enter_the_Bundle_Id_Here</string>
          </array>
       </dict>
    </array>
    
  6. Vytvořte a spusťte aplikaci.

Další informace

Další informace o tomto rychlém startu najdete v těchto částech.

Získejte MSAL

MSAL (MSAL.framework) je knihovna, která slouží k přihlášení uživatelů a vyžádání tokenů používaných pro přístup k rozhraní API chráněnému platformou Microsoft Identity Platform. MsAL můžete do aplikace přidat pomocí následujícího procesu:

$ vi Podfile

Do tohoto souboru podfile přidejte následující položky (s cílem projektu):

use_frameworks!

target 'MSALiOS' do
   pod 'MSAL'
end

Spusťte instalační příkaz CocoaPods:

pod install

Inicializujte MSAL

Odkaz na knihovnu MSAL můžete přidat přidáním následujícího kódu:

import MSAL

Potom inicializujte MSAL pomocí následujícího kódu:

let authority = try MSALAADAuthority(url: URL(string: kAuthority)!)

let msalConfiguration = MSALPublicClientApplicationConfig(clientId: kClientID, redirectUri: nil, authority: authority)
self.applicationContext = try MSALPublicClientApplication(configuration: msalConfiguration)
Kde: Popis
clientId ID aplikace registrované v portal.azure.com
authority Platforma Microsoft Identity Platform. Ve většině případů to bude https://login.microsoftonline.com/common>
redirectUri Adresa URI přesměrování aplikace. Pokud chcete použít výchozí hodnotu, můžete předat 'nil' nebo svůj vlastní identifikátor URI pro přesměrování.

Pouze pro iOS další požadavky na aplikace

Vaše aplikace musí mít také následující ve vašem AppDelegate. To umožňuje MSAL SDK zpracovat odpověď tokenu z aplikace zprostředkovatele ověřování během ověřování.

func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {

    return MSALPublicClientApplication.handleMSALResponse(url, sourceApplication: options[UIApplication.OpenURLOptionsKey.sourceApplication] as? String)
}

Poznámka:

Pokud v iOSu 13 nebo novějším používáte UISceneDelegate místo UIApplicationDelegate, umístěte tento kód do zpětného volání scene:openURLContexts: (viz dokumentace Apple). Pokud podporujete jak UISceneDelegate, tak i UIApplicationDelegate kvůli kompatibilitě se staršími verzemi iOS, musí být zpětné volání MSAL umístěno na obě místa.

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)
}

Nakonec musí vaše aplikace obsahovat položku LSApplicationQueriesSchemes v Info.plist společně s CFBundleURLTypes. Tato ukázka obsahuje toto.

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

Uživatelé & žádají o tokeny.

Knihovna MSAL má dvě metody, které se používají k získání tokenů: acquireToken a acquireTokenSilent.

acquireToken: Interaktivní získání tokenu

Některé situace vyžadují, aby uživatelé komunikovali s platformou Microsoft Identity Platform. V těchto případech může být koncový uživatel nutný k výběru svého účtu, zadání přihlašovacích údajů nebo souhlasu s oprávněními vaší aplikace. Příklad:

  • Při prvním přihlášení uživatelů k aplikaci
  • Pokud uživatel resetuje heslo, bude muset zadat svoje přihlašovací údaje.
  • Když aplikace žádá o přístup k prostředku poprvé
  • Pokud se vyžadují vícefaktorové ověřování nebo jiné zásady podmíněného přístupu
let parameters = MSALInteractiveTokenParameters(scopes: kScopes, webviewParameters: self.webViewParameters!)
self.applicationContext!.acquireToken(with: parameters) { (result, error) in /* Add your handling logic */}
Kde: Popis
scopes Obsahuje požadované obory (to znamená [ "user.read" ] pro Microsoft Graph nebo [ "<Application ID URL>/scope" ] pro vlastní webová rozhraní API (api://<Application ID>/access_as_user)).

acquireTokenSilent: Bezobslužné získání přístupového tokenu

Aplikace by neměly vyžadovat, aby se uživatelé při každém vyžádání tokenu přihlásili. Pokud se uživatel už přihlásil, tato metoda umožňuje aplikacím bezobslužně požadovat tokeny.

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 */}
}
Kde: Popis
scopes Obsahuje požadované obory (to znamená [ "user.read" ] pro Microsoft Graph nebo [ "<Application ID URL>/scope" ] pro vlastní webová rozhraní API (api://<Application ID>/access_as_user).
account Účet, pro který je token požadován. Tento rychlý průvodce se týká jednoúčtové aplikace. Pokud chcete vytvořit aplikaci s více účty, budete muset definovat logiku pro identifikaci účtu, který se má použít pro žádosti o tokeny, pomocí accountsFromDeviceForParameters:completionBlock: a předání správných accountIdentifier

Nápověda a podpora

Pokud potřebujete pomoc, chcete nahlásit problém nebo se chcete dozvědět o možnostech podpory, přečtěte si Nápovědu a podporu pro vývojáře.

Další kroky

Přejděte k podrobnému kurzu, ve kterém vytvoříte aplikaci pro iOS nebo macOS, která získá přístupový token z platformy Microsoft Identity Platform a použije ho k volání rozhraní Microsoft Graph API.