Kurz: Příprava aplikace pro iOS (Swift) na ověřování
Toto je druhý kurz série kurzů, který ukazuje, jak přidat knihovnu Microsoft Authentication Library (MSAL) pro iOS a macOS do aplikace iOS Swift.
V tomto kurzu budete;
- Přidejte rozhraní MSAL do aplikace pro iOS (Swift).
- Vytvořte instanci sady SDK.
Požadavky
- Xcode.
- Pokud jste to ještě neudělali, postupujte podle pokynů v kurzu: Registrace a konfigurace mobilní aplikace pro iOS (Swift) a registrace aplikace v externím tenantovi. Ujistěte se, že jste dokončili následující kroky:
- Zaregistrujte aplikaci.
- Přidejte adresu URL pro přesměrování platformy.
- Povolte tok veřejného klienta.
- Delegovaná oprávnění k Microsoft Graphu
- Projekt iOS (Swift).
Přidání architektury MSAL do aplikace pro iOS (Swift)
Sada MSAL Authentication SDK se používá k integraci ověřování do vašich aplikací pomocí standardního OAuth2 a OpenID Connect. Umožňuje přihlásit se uživatelům nebo aplikacím pomocí identit Microsoftu. Pokud chcete do projektu iOS (Swift) přidat MSAL, postupujte takto:
- Otevřete projekt iOS v Xcode.
- V nabídce Soubor vyberte Přidat závislosti balíčku...
- Zadejte
https://github.com/AzureAD/microsoft-authentication-library-for-objc
jako adresu URL balíčku a zvolte Přidat balíček.
Aktualizace identifikátoru sady
V ekosystému Apple je identifikátor sady jedinečným identifikátorem aplikace. Chcete-li aktualizovat identifikátor sady v projektu, postupujte takto:
Otevřete nastavení projektu. V části Identita zadejte identifikátor sady.
Klikněte pravým tlačítkem na Soubor Info.plist a vyberte Otevřít jako>zdrojový kód.
V kořenovém uzlu diktování nahraďte
Enter_the_bundle_Id_Here
ID 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>
Vytvoření instance sady SDK
Pokud chcete v projektu vytvořit instanci MSAL, postupujte takto:
Importujte knihovnu MSAL do kontroleru zobrazení přidáním
import MSAL
v horní částiViewController
třídy.Přidejte do
applicationContext
třídy ViewController členské proměnné přidáním následujícího kódu těsně předviewDidLoad()
funkci:var applicationContext : MSALPublicClientApplication? var webViewParamaters : MSALWebviewParameters?
Kód deklaruje dvě proměnné:
applicationContext
, která ukládá instanciMSALPublicClientApplication
, awebViewParameters
, která ukládá instanciMSALWebviewParameters
.MSALPublicClientApplication
je třída poskytovaná knihovnou MSAL pro zpracování veřejných klientských aplikací. JeMSALWebviewParameters
třída poskytovaná knihovnou MSAL, která definuje parametry pro konfiguraci webového zobrazení používaného během procesu ověřování.Do funkce zobrazení
viewDidLoad()
přidejte následující kód:do { try self.initMSAL() } catch let error { self.updateLogging(text: "Unable to create Application Context \(error)") }
Kód se pokusí inicializovat knihovnu MSAL a zpracuje všechny chyby, ke kterým dochází během procesu. Pokud dojde k chybě, aktualizuje protokolování podrobnostmi o chybě.
Přidejte následující kód, který vytvoří
initMSAL()
funkci, která inicializuje knihovnu MSAL:func initMSAL() throws { guard let authorityURL = URL(string: Configuration.kAuthority) else { self.updateLogging(text: "Unable to create authority URL") return } let authority = try MSALCIAMAuthority(url: authorityURL) let msalConfiguration = MSALPublicClientApplicationConfig(clientId: Configuration.kClientID, redirectUri: Configuration.kRedirectUri, authority: authority) self.applicationContext = try MSALPublicClientApplication(configuration: msalConfiguration) }
Tento kód inicializuje knihovnu MSAL pro iOS. Nejprve se pokusí vytvořit adresu URL pro autoritu pomocí zadaného řetězce Configuration.kAuthority . V případě úspěchu vytvoří objekt autority MSAL na základě této adresy URL. Potom nakonfiguruje
MSALPublicClientApplication
dané ID klienta, identifikátor URI přesměrování a autoritu. Pokud jsou všechny konfigurace nastaveny správně, inicializuje kontext aplikace s nakonfigurovanýmMSALPublicClientApplication
. Pokud během procesu dojde k nějakým chybám, dojde k chybě.Vytvořte soubor Configuration.swift a přidejte následující konfigurace:
import Foundation @objcMembers class Configuration { static let kTenantSubdomain = "Enter_the_Tenant_Subdomain_Here" // Update the below to your client ID you received in the portal. static let kClientID = "Enter_the_Application_Id_Here" static let kRedirectUri = "Enter_the_Redirect_URI_Here" static let kProtectedAPIEndpoint = "Enter_the_Protected_API_Full_URL_Here" static let kScopes = ["Enter_the_Protected_API_Scopes_Here"] static let kAuthority = "https://\(kTenantSubdomain).ciamlogin.com" }
Tento konfigurační kód Swiftu definuje pojmenovanou
Configuration
třídu a je označena znakem@objcMembers
. Zahrnuje statické konstanty pro různé parametry konfigurace související s nastavením ověřování. Mezi tyto parametry patří subdoména tenanta, ID klienta, identifikátor URI přesměrování, chráněný koncový bod rozhraní API a obory. Tyto konstanty konfigurace by se měly aktualizovat odpovídajícími hodnotami specifickými pro nastavení aplikace.Vyhledejte zástupný symbol:
Enter_the_Application_Id_Here
a nahraďte ho ID aplikace (klienta), kterou jste zaregistrovali dříve.Enter_the_Redirect_URI_Here
a nahraďte ji hodnotou kRedirectUri v konfiguračním souboru MSAL, který jste stáhli dříve při přidání adresy URL pro přesměrování platformy.Enter_the_Protected_API_Scopes_Here
a nahraďte ho obory zaznamenanými dříve. Pokud jste nezaznamenali žádné obory, můžete tento seznam oborů ponechat prázdný.Enter_the_Tenant_Subdomain_Here
a nahraďte ji subdoménou adresáře (tenanta). Pokud je například primární doména vašeho tenantacontoso.onmicrosoft.com
, použijtecontoso
. Pokud subdoménu tenanta neznáte, přečtěte si, jak si přečíst podrobnosti o tenantovi.
Použití vlastní domény URL (volitelné)
Pomocí vlastní domény plně označte adresu URL ověřování. Z pohledu uživatele zůstanou uživatelé ve vaší doméně během procesu ověřování místo přesměrování na ciamlogin.com název domény.
Pomocí následujících kroků použijte vlastní doménu:
Pomocí kroků v části Povolit vlastní domény URL pro aplikace v externích tenantech povolte pro externího tenanta vlastní doménu URL.
Otevřete soubor Configuration.swift :
- Aktualizujte hodnotu
kAuthority
vlastnosti na https://Enter_the_Custom_Domain_Here/Enter_the_Tenant_ID_Herehodnotu . NahraďteEnter_the_Custom_Domain_Here
vlastní doménou URL aEnter_the_Tenant_ID_Here
ID tenanta. Pokud nemáte ID tenanta, přečtěte si, jak si přečíst podrobnosti o tenantovi.
- Aktualizujte hodnotu
Po provedení změn v souboru Configuration.swift , pokud je vaše vlastní doména URL login.contoso.com a ID vašeho tenanta je aaaabbbbbb-0000-cccc-1111-dddd2222eeeeee, měl by váš soubor vypadat podobně jako v následujícím fragmentu kódu:
import Foundation
@objcMembers
class Configuration {
static let kTenantSubdomain = "login.contoso.com"
// Update the below to your client ID you received in the portal.
static let kClientID = "Enter_the_Application_Id_Here"
static let kRedirectUri = "Enter_the_Redirect_URI_Here"
static let kProtectedAPIEndpoint = "Enter_the_Protected_API_Full_URL_Here"
static let kScopes = ["Enter_the_Protected_API_Scopes_Here"]
static let kAuthority = "https://\(kTenantSubdomain)/aaaabbbb-0000-cccc-1111-dddd2222eeee"
}
Další kroky
Kurz: Přihlášení uživatelů v mobilní aplikaci pro iOS (Swift)