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
- Účet Azure s aktivním předplatným. Vytvořit účet zdarma.
- XCode 10+
- iOS 10+
- macOS 10.12+
Jak ukázka funguje
Registrace aplikace pro rychlý start
Pokud chcete aplikaci zaregistrovat a přidat informace o registraci aplikace do řešení ručně, postupujte takto:
- Přihlaste se do centra pro správu Microsoft Entra alespoň na úrovni Vývojář aplikací.
- Pokud máte přístup k více tenantům, pomocí ikony Nastavení
v horní nabídce přepněte do tenanta, ve kterém chcete aplikaci zaregistrovat z nabídky Adresáře a předplatná.
- Přejděte na Identitu >Aplikace>Registrace aplikací.
- Vyberte Nová registrace.
- Zadejte název pro vaši aplikaci. Uživatelé vaší aplikace můžou vidět tento název a později ho můžete změnit.
- Vyberte Zaregistrovat.
- V části Spravovatvyberte Ověřování>Přidat platformu iOS>.
- Zadejte identifikátor sady vaší aplikace. 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. - Vyberte Konfigurovat a uložte podrobnosti o MSAL Configuration pro pozdější použití v tomto rychlém startu.
- Vyberte Hotovo.
Krok 2: Stažení ukázkového projektu
Krok 3: Instalace závislostí
- Extrahujte soubor ZIP.
- 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: Konfigurace projektu
Pokud jste vybrali možnost 1 výše, můžete tyto kroky přeskočit.
Otevřete projekt v XCode.
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 pro
kClientID
pomocí clientID, které jste si uložili při registraci vaší aplikace v dřívější části tohoto rychlého zahájení:let kClientID = "Enter_the_Application_Id_Here"
Pokud vytváříte aplikaci pro Microsoft Entra národní cloudy, nahraďte řádek začínající s '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"
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"
Otevřete nastavení projektu. V části Identita zadejte identifikátor sady.
Klikněte pravým tlačítkem na Info.plist a vyberte Otevřít jako>zdrojový kód.
V kořenovém uzlu dict nahraďte
Enter_the_bundle_Id_Here
ID sady , které jste použili na portálu. Všimněte si předponymsauth.
v řetězci.<key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleURLSchemes</key> <array> <string>msauth.Enter_the_Bundle_Id_Here</string> </array> </dict> </array>
Sestavte 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
Inicializace knihovny 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. Napří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.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ý 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.