Samouczek: przygotowywanie aplikacji systemu iOS/macOS do uwierzytelniania natywnego
Dotyczy: Najemcy Workforce
Najemcy zewnętrzni (dowiedz się więcej)
W tym samouczku pokazano, jak dodać natywną strukturę zestawu SDK uwierzytelniania biblioteki Microsoft Authentication Library (MSAL) do aplikacji Swift dla systemu iOS/macOS.
Z tego samouczka dowiesz się, jak wykonywać następujące działania:
- Dodaj strukturę MSAL do aplikacji systemu iOS/macOS.
- Utwórz wystąpienie zestawu SDK.
Warunki wstępne
- Xcode
- Jeśli jeszcze tego nie zrobiłeś/zrobiłaś, postępuj zgodnie z instrukcjami w Logowanie użytkowników w przykładowej aplikacji mobilnej systemu iOS (Swift) przy użyciu natywnego uwierzytelniania i zarejestruj aplikację w zewnętrznej dzierżawie. Upewnij się, że wykonasz następujące kroki:
- Rejestrowanie aplikacji.
- Włącz przepływy uwierzytelniania publicznego i natywnego klienta.
- Przyznaj uprawnienia interfejsu API.
- Utwórz przepływ użytkownika.
- Skojarz aplikację z przepływem użytkownika.
- Projekt systemu iOS/macOS
Dodawanie platformy MSAL do aplikacji systemu iOS/macOS
- Otwórz projekt systemu iOS/macOS w środowisku Xcode.
- Wybierz pozycję Dodaj zależności pakietów... z menu Plik.
- Wprowadź
https://github.com/AzureAD/microsoft-authentication-library-for-objc
jako adres URL pakietu i wybierz pozycję Dodaj pakiet. - Dodaj nową grupę pęku kluczy do projektu Capabilities. Użyj
com.microsoft.adalcache
w systemach iOS icom.microsoft.identity.universalstorage
w systemie macOS.
Aby uzyskać więcej informacji na temat innych mechanizmów dodawania biblioteki MSAL do projektu, zobacz plik Readme projektu .
Utwórz instancję pakietu SDK
Zaimportuj bibliotekę MSAL do kontrolera widoku, dodając
import MSAL
w górnej części klasyViewController
.Dodaj zmienną składową
nativeAuth
do klasyViewController
, dodając następujący kod tuż przed funkcjąviewDidLoad()
:var nativeAuth: MSALNativeAuthPublicClientApplication!
Następnie dodaj następujący kod do funkcji
viewDidLoad()
:do { nativeAuth = try MSALNativeAuthPublicClientApplication( clientId: "Enter_the_Application_Id_Here", tenantSubdomain: "Enter_the_Tenant_Subdomain_Here", challengeTypes: [.OOB] ) print("Initialized Native Auth successfully.") } catch { print("Unable to initialize MSAL \(error)") }
Zastąp następujące wartości wartościami z centrum administracyjnego firmy Microsoft Entra:
Znajdź wartość
Enter_the_Application_Id_Here
i zastąp ją identyfikatorem aplikacji (klienta) zarejestrowanej wcześniej aplikacji.Znajdź
Enter_the_Tenant_Subdomain_Here
i zastąp ją poddomeną Katalog (dzierżawa). Jeśli na przykład domena podstawowa dzierżawy jestcontoso.onmicrosoft.com
, użyjcontoso
. Jeśli nie masz poddomeny katalogu (dzierżawy), dowiedz się, jak odczytywać szczegóły dzierżawy.Typy wyzwań to lista wartości, których aplikacja używa do powiadamiania firmy Microsoft Entra o obsługiwanej przez nią metodzie uwierzytelniania.
- W przypadku rejestracji i logowania z jednorazowym kodem e-mail użyj
[.OOB]
. - Dla procesów rejestracji i logowania za pomocą poczty e-mail i hasła użyj
[.OOB, .password]
. - W przypadku samoobsługowego resetowania hasła (SSPR) użyj
[.OOB]
.
- W przypadku rejestracji i logowania z jednorazowym kodem e-mail użyj
Aby zbudować, wybierz Product>Build na pasku narzędzi projektu.
Opcjonalnie: Konfiguracja rejestrowania
Biblioteka MSAL udostępnia interfejs API rejestrowania, którego można użyć do włączania i konfigurowania rejestrowania. Aby wyświetlić wszystkie dane wyjściowe debugowania z biblioteki MSAL, dodaj następujący kod na początku funkcji viewDidLoad()
:
MSALGlobalConfig.loggerConfig.logLevel = .verbose
MSALGlobalConfig.loggerConfig.setLogCallback { logLevel, message, containsPII in
if !containsPII {
print("MSAL: \(message ?? "")")
}
}
Spowoduje to wyjście wszystkich dzienników debugowania z biblioteki MSAL, które mogą być przydatne podczas diagnozowania problemów i uczenia się, jak działają przepływy uwierzytelniania natywnego. Aby dowiedzieć się więcej na temat konfigurowania poziomów logów i najlepszych praktyk, zobacz logowanie w MSAL dla systemów iOS i macOS.