Sdílet prostřednictvím


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

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

Diagram znázorňující, jak funguje ukázková aplikace generovaná v tomto rychlém startu

Registrace aplikace pro rychlý start

Tip

Postup v tomto článku se může mírně lišit v závislosti na portálu, od který začínáte.

Pokud chcete zaregistrovat aplikaci a ručně přidat informace o registraci aplikace ke svému řešení, postupujte následovně:

  1. Přihlaste se do Centra pro správu Microsoft Entra jako alespoň vývojář aplikací.
  2. Pokud máte přístup k více tenantům, pomocí ikony Nastavení v horní nabídce přepněte na tenanta, ve kterém chcete aplikaci zaregistrovat z nabídky Adresáře a předplatná.
  3. Přejděte k aplikacím> identit>Registrace aplikací.
  4. Vyberte Nová registrace.
  5. Zadejte název aplikace. Uživatelé vaší aplikace můžou vidět tento název a později ho můžete změnit.
  6. Vyberte Zaregistrovat.
  7. V části Spravovat vyberte Možnost Přidat platformu pro iOS pro>ověřování.>
  8. Zadejte identifikátor sady prostředků pro vaši aplikaci. Identifikátor sady je jedinečný řetězec, který jednoznačně identifikuje vaši aplikaci, například com.<yourname>.identitysample.MSALMacOS. Poznamenejte si hodnotu, kterou používáte. Všimněte si, že konfigurace iOS se vztahuje také na aplikace macOS.
  9. Vyberte Konfigurovat a uložit podrobnosti konfigurace MSAL pro pozdější použití v tomto rychlém startu.
  10. Vyberte Hotovo.

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 spusťte pod install instalaci nejnovější knihovny MSAL.

Krok 4: Konfigurace projektu

Pokud jste vybrali možnost 1 výše, můžete tyto kroky přeskočit.

  1. Otevřete projekt v XCode.

  2. Upravte ViewController.swift a nahraďte řádek začínající řetězcem let kClientID následujícím fragmentem kódu. Nezapomeňte aktualizovat hodnotu kClientID id klienta, které jste si uložili při registraci aplikace dříve v tomto rychlém startu:

    let kClientID = "Enter_the_Application_Id_Here"
    
  3. Pokud vytváříte aplikaci pro národní cloudy Microsoft Entra, nahraďte řádek začínající na 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"
    
  4. Tady jsou popsané další koncové body. 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"
    
  5. Otevřete nastavení projektu. V části Identita zadejte identifikátor sady.

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

  7. V kořenovém uzlu diktování nahraďte Enter_the_bundle_Id_HereID sady, které jste použili na portálu. msauth. Všimněte si předpony v řetězci.

    <key>CFBundleURLTypes</key>
    <array>
       <dict>
          <key>CFBundleURLSchemes</key>
          <array>
             <string>msauth.Enter_the_Bundle_Id_Here</string>
          </array>
       </dict>
    </array>
    
  8. Sestavte a spusťte aplikaci.

Další informace

Další informace o tomto rychlém startu najdete v následujících částech.

Získání knihovny MSAL

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

$ 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

Inicializace knihovny MSAL

Odkaz na knihovnu MSAL můžete přidat tak, že přidáte následující kód:

import MSAL

Potom inicializujte knihovnu 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 z aplikace zaregistrované na webu portal.azure.com
authority Platforma Microsoft Identity Platform. Ve většině případů to bude https://login.microsoftonline.com/common
redirectUri Identifikátor URI přesměrování aplikace. Pokud chcete použít výchozí hodnotu, můžete předat hodnotu nil nebo vlastní identifikátor URI přesměrování.

Pouze pro iOS další požadavky na aplikace

Ve vaší AppDelegateaplikaci musí být také následující. To umožňuje sadě MSAL SDK zpracovat odpověď tokenu z aplikace zprostředkovatele ověřování při 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+, místo toho tento UIApplicationDelegateUISceneDelegate kód nasadíte do zpětného scene:openURLContexts: volání (viz dokumentace společnosti Apple). Pokud podporujete jak UISceneDelegate, tak UIApplicationDelegate kvůli kompatibilitě se starším iOSem, musí být zpětné volání MSAL umístěné na obou místech.

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

Aplikace musí mít LSApplicationQueriesSchemes v souboru Info.plist položku vedle CFBundleURLTypessouboru . Součástí této ukázky je i tato ukázka.

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

Přihlášení uživatelů a vyžádání tokenů

Knihovna MSAL používá k získání tokenů dvě metody: 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í 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.webViewParamaters!)
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 Pro účet se požaduje token. Tento rychlý start se týká jedné aplikace účtu. 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 chyb. 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.