Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy: Dzierżawcy siły roboczej
Dzierżawcy zewnętrzni (dowiedz się więcej)
Jest to drugi samouczek z serii samouczków, który pokazuje, jak dodać bibliotekę Microsoft Authentication Library (MSAL) dla systemów iOS i macOS do aplikacji Swift dla systemu iOS.
Przed rozpoczęciem użyj selektora Wybierz typ najemcy na górze tej strony, aby wybrać typ najemcy. Microsoft Entra ID udostępnia dwie konfiguracje dzierżawy, siła robocza i zewnętrzni. Konfiguracja tenantowa dla siły roboczej dotyczy twoich pracowników, aplikacji wewnętrznych i innych zasobów organizacyjnych. Najemca zewnętrzny jest przeznaczony dla aplikacji dla klientów.
W tym samouczku:
- Dodaj strukturę MSAL do aplikacji systemu iOS (Swift).
- Utwórz instancję zestawu SDK.
- Skonfiguruj ustawienia projektu Xcode.
Warunki wstępne
- Zarejestruj nową aplikację internetową klienta w centrum administracyjnym firmy Microsoft Entra, skonfigurowaną dla kont w dowolnym katalogu organizacyjnym i osobistych kontach Microsoft. Aby uzyskać więcej informacji, zobacz Rejestrowanie aplikacji . Zapisz następujące wartości na stronie Przegląd aplikacji do późniejszego użycia:
- Identyfikator aplikacji (klienta)
- Identyfikator katalogu (klienta)
- Xcode .
- Projekt systemu iOS (Swift).
Dodaj adres URL przekierowania platformy
Aby określić typ aplikacji do rejestracji aplikacji, wykonaj następujące kroki:
- W obszarze Zarządzajwybierz pozycję Uwierzytelnianie>Dodaj platformę>iOS/macOS.
- Wprowadź identyfikator pakietu projektu. Jeśli pobrano przykładowy kod, identyfikator pakietu to
com.microsoft.identitysample.MSALiOS
. Jeśli tworzysz własny projekt, wybierz projekt w środowisku Xcode i otwórz kartę Ogólne. Identyfikator pakietu zostanie wyświetlony w sekcji Identity. - Wybierz Skonfiguruj i zapisz Konfigurację MSAL, która pojawi się na stronie Konfiguracja MSAL, aby móc ją wprowadzić podczas późniejszego konfigurowania aplikacji.
- Wybierz pozycję Gotowe.
Dodawanie platformy MSAL do aplikacji systemu iOS (Swift)
Wybierz jeden z następujących sposobów instalowania biblioteki MSAL w aplikacji:
CocoaPods (Orzechy kokosowe)
Jeśli używasz CocoaPods, zainstaluj
MSAL
, tworząc najpierw pusty plik o nazwie podfile w tym samym folderze co plik .xcodeproj projektu. Dodaj następujące elementy do podfile:use_frameworks! target '<your-target-here>' do pod 'MSAL' end
Zastąp
<your-target-here>
nazwą projektu.W oknie terminalu przejdź do folderu zawierającego plik podfile utworzony i uruchom
pod install
, aby zainstalować bibliotekę MSAL.Zamknij program Xcode i otwórz
<your project name>.xcworkspace
, aby ponownie załadować projekt w środowisku Xcode.
Kartagina
Jeśli używasz Carthage, zainstaluj MSAL
, poprzez dodanie go do Cartfile:
github "AzureAD/microsoft-authentication-library-for-objc" "master"
W oknie terminalu w tym samym katalogu co zaktualizowany Cartfile, uruchom następujące polecenie, aby Carthage zaktualizował zależności w projekcie.
Ios:
carthage update --platform iOS
System operacyjny macOS:
carthage update --platform macOS
Ręcznie
Możesz również użyć modułu podrzędnego Git lub zapoznać się z najnowszą wersją, aby użyć jej jako struktury w aplikacji.
Dodaj rejestrację aplikacji
Następnie dodamy rejestrację aplikacji do kodu.
Najpierw dodaj następującą instrukcję importowania na początku pliku ViewController.swift i AppDelegate.swift lub SceneDelegate.swift:
import MSAL
Następnie dodaj następujący kod do ViewController.swift przed viewDidLoad()
:
// Update the below to your client ID. The below is for running the demo only
let kClientID = "Your_Application_Id_Here"
let kGraphEndpoint = "https://graph.microsoft.com/" // the Microsoft Graph endpoint
let kAuthority = "https://login.microsoftonline.com/common" // this authority allows a personal Microsoft account and a work or school account in any organization's Azure AD tenant to sign in
let kScopes: [String] = ["user.read"] // request permission to read the profile of the signed-in user
var accessToken = String()
var applicationContext : MSALPublicClientApplication?
var webViewParameters : MSALWebviewParameters?
var currentAccount: MSALAccount?
Jedyną wartością, którą zmieniasz, jest ta przypisana kClientID
jako Twój identyfikator aplikacji . Ta wartość jest częścią danych konfiguracji MSAL, które zapisałeś w trakcie kroku na początku tego samouczka, aby zarejestrować aplikację.
Utwórz instancję SDK
Aby utworzyć instancję MSAL w swoim projekcie, postępuj zgodnie z poniższymi krokami:
Do klasy ViewController
dodaj metodę initMSAL
:
func initMSAL() throws {
guard let authorityURL = URL(string: kAuthority) else {
self.updateLogging(text: "Unable to create authority URL")
return
}
let authority = try MSALAADAuthority(url: authorityURL)
let msalConfiguration = MSALPublicClientApplicationConfig(clientId: kClientID, redirectUri: nil, authority: authority)
self.applicationContext = try MSALPublicClientApplication(configuration: msalConfiguration)
self.initWebViewParams()
}
Nadal w klasie ViewController
i po metodzie initMSAL
dodaj metodę initWebViewParams
:
Kod systemu iOS:
func initWebViewParams() {
self.webViewParameters = MSALWebviewParameters(authPresentationViewController: self)
}
Kod systemu macOS:
func initWebViewParams() {
self.webViewParameters = MSALWebviewParameters()
}
Konfigurowanie ustawień projektu Xcode
Dodaj nową grupę breloków do projektu w sekcji Podpisywanie & Możliwości. Grupa pęku kluczy powinna być com.microsoft.adalcache
w systemie iOS i com.microsoft.identity.universalstorage
w systemie macOS.
Tylko w przypadku systemu iOS skonfiguruj schematy adresów URL
W tym kroku zarejestrujesz CFBundleURLSchemes
, aby użytkownik mógł zostać przekierowany z powrotem do aplikacji po zalogowaniu. Dzięki temu LSApplicationQueriesSchemes
umożliwia również aplikacji korzystanie z aplikacji Microsoft Authenticator.
W programie Xcode otwórz plik Info.plist jako plik kodu źródłowego i dodaj następujący kod w sekcji <dict>
. Zastąp [BUNDLE_ID]
wcześniej użytą wartością. Jeśli pobrano kod, identyfikator pakietu jest com.microsoft.identitysample.MSALiOS
. Jeśli tworzysz własny projekt, wybierz projekt w środowisku Xcode i otwórz kartę Ogólne. Identyfikator pakietu zostanie wyświetlony w sekcji Identity.
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLSchemes</key>
<array>
<string>msauth.[BUNDLE_ID]</string>
</array>
</dict>
</array>
<key>LSApplicationQueriesSchemes</key>
<array>
<string>msauthv2</string>
<string>msauthv3</string>
</array>
Tylko w przypadku systemu macOS skonfiguruj App Sandbox
- Przejdź do karty Ustawienia projektu Xcode >Funkcje>Piaskownica aplikacji
- Zaznacz pole wyboru Wychodzące połączenia (klient).
Następne kroki
Jest to drugi samouczek z serii samouczków, który pokazuje, jak dodać bibliotekę Microsoft Authentication Library (MSAL) dla systemów iOS i macOS do aplikacji Swift dla systemu iOS.
Przed rozpoczęciem użyj selektora Wybierz typ najemcy na górze tej strony, aby wybrać typ najemcy. Microsoft Entra ID udostępnia dwie konfiguracje dzierżawy, siła robocza i zewnętrzni. Konfiguracja tenantowa dla siły roboczej dotyczy twoich pracowników, aplikacji wewnętrznych i innych zasobów organizacyjnych. Najemca zewnętrzny jest przeznaczony dla aplikacji dla klientów.
W tym samouczku, ty;
- Dodaj strukturę MSAL do aplikacji systemu iOS (Swift).
- Utwórz instancję zestawu SDK.
Warunki wstępne
- Zarejestruj nową aplikację internetową klienta w centrum administracyjnym firmy Microsoft Entra, skonfigurowaną dla kont w dowolnym katalogu organizacyjnym i osobistych kontach Microsoft. Aby uzyskać więcej informacji, zobacz Rejestrowanie aplikacji . Zapisz następujące wartości na stronie Przegląd aplikacji do późniejszego użycia:
- Identyfikator aplikacji (klienta)
- Identyfikator katalogu (klienta)
- Xcode .
- Projekt systemu iOS (Swift).
Dodaj adres URL przekierowania platformy
Aby określić typ aplikacji do rejestracji aplikacji, wykonaj następujące kroki:
- W obszarze Zarządzajwybierz pozycję Uwierzytelnianie>Dodaj platformę>iOS/macOS.
- Wprowadź identyfikator pakietu projektu. Jeśli pobrano przykładowy kod, identyfikator pakietu to
com.microsoft.identitysample.MSALiOS
. Jeśli tworzysz własny projekt, wybierz projekt w środowisku Xcode i otwórz kartę Ogólne. Identyfikator pakietu zostanie wyświetlony w sekcji Identity. - Wybierz Skonfiguruj i zapisz Konfigurację MSAL, która pojawi się na stronie Konfiguracja MSAL, aby móc ją wprowadzić podczas późniejszego konfigurowania aplikacji.
- Wybierz pozycję Gotowe.
Włącz publiczny przepływ klienta
Aby zidentyfikować aplikację jako klienta publicznego, wykonaj następujące kroki:
W obszarze Zarządzanie wybierz pozycję Uwierzytelnianie.
W Ustawieniach Zaawansowanych dla opcji Zezwalaj na przepływy klientów publicznych wybierz opcję Tak.
Wybierz Zapisz, aby zapisać zmiany.
Dodawanie platformy MSAL do aplikacji systemu iOS (Swift)
Biblioteka SDK uwierzytelniania MSAL służy do integrowania uwierzytelniania z aplikacjami przy użyciu standardowych protokołów OAuth2 i OpenID Connect. Umożliwia ona logowanie użytkowników lub aplikacji przy użyciu tożsamości firmy Microsoft. Aby dodać bibliotekę MSAL do projektu systemu iOS (Swift), wykonaj następujące kroki:
- Otwórz projekt systemu iOS 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
Aktualizowanie identyfikatora pakietu
W ekosystemie firmy Apple identyfikator pakietu jest unikatowym identyfikatorem aplikacji. Aby zaktualizować identyfikator pakietu w projekcie, wykonaj następujące kroki:
Otwórz ustawienia projektu. W sekcji Identity wprowadź identyfikator pakietu.
Kliknij prawym przyciskiem myszy plik Info.plist i wybierz pozycję Otwórz jako kod źródłowy>.
W węźle głównym dict zastąp
Enter_the_bundle_Id_Here
identyfikatorem pakietu użytym w portalu. Zwróć uwagę na prefiksmsauth.
w ciągu tekstowym.<key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleURLSchemes</key> <array> <string>msauth.Enter_the_Bundle_Id_Here</string> </array> </dict> </array>
Utwórz instancję SDK
Aby utworzyć instancję MSAL w swoim projekcie, postępuj zgodnie z poniższymi krokami:
Zaimportuj bibliotekę MSAL do kontrolera widoku, dodając
import MSAL
w górnej części klasyViewController
.Dodaj zmienną składową
applicationContext
do klasy ViewController, dodając następujący kod tuż przed funkcjąviewDidLoad()
:var applicationContext : MSALPublicClientApplication? var webViewParameters : MSALWebviewParameters?
Kod deklaruje dwie zmienne:
applicationContext
, która przechowuje wystąpienieMSALPublicClientApplication
iwebViewParameters
, które przechowuje wystąpienieMSALWebviewParameters
.MSALPublicClientApplication
jest klasą dostarczaną przez bibliotekę MSAL do obsługi publicznych aplikacji klienckich.MSALWebviewParameters
to klasa dostarczana przez bibliotekę MSAL, która definiuje parametry konfigurowania widoku internetowego używanego podczas procesu uwierzytelniania.Dodaj następujący kod do funkcji widoku
viewDidLoad()
:do { try self.initMSAL() } catch let error { self.updateLogging(text: "Unable to create Application Context \(error)") }
Kod próbuje zainicjować bibliotekę MSAL, obsługując wszelkie błędy występujące podczas procesu. Jeśli wystąpi błąd, aktualizuje on rejestrowanie ze szczegółami błędu.
Dodaj następujący kod, który tworzy funkcję
initMSAL()
, która inicjuje bibliotekę 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) }
Ten kod inicjuje bibliotekę MSAL dla systemu iOS. Najpierw próbuje utworzyć adres URL dla urzędu przy użyciu podanego ciągu Configuration.kAuthority. Jeśli się powiedzie, tworzy obiekt autorytetu MSAL na podstawie tego adresu URL. Następnie konfiguruje
MSALPublicClientApplication
przy użyciu danego identyfikatora klienta, identyfikatora URI przekierowania i autorytetu. Jeśli wszystkie konfiguracje są poprawnie skonfigurowane, inicjuje kontekst aplikacji za pomocą skonfigurowanegoMSALPublicClientApplication
. Jeśli podczas procesu wystąpią jakiekolwiek błędy, wyrzuca błąd.Utwórz plik Configuration.swift i dodaj następujące konfiguracje:
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" }
Ten kod konfiguracji swift definiuje klasę o nazwie
Configuration
i jest oznaczony@objcMembers
. Zawiera ona stałe statyczne dla różnych parametrów konfiguracji związanych z konfiguracją uwierzytelniania. Te parametry obejmują poddomenę dzierżawcy , identyfikator klienta , identyfikator URI przekierowania , chroniony punkt końcowy API oraz zakresy . Te stałe konfiguracji należy zaktualizować przy użyciu odpowiednich wartości specyficznych dla konfiguracji aplikacji.Znajdź symbol zastępczy:
-
Enter_the_Application_Id_Here
i zastąp go identyfikatorem aplikacji (klienta) aplikacji zarejestrowanej wcześniej. -
Enter_the_Redirect_URI_Here
i zastąp to wartością kRedirectUri w pliku konfiguracji MSAL, który pobrałeś wcześniej, gdy dodawałeś URL przekierowania platformy. -
Enter_the_Protected_API_Scopes_Here
i zastąp je zakresami zapisanymi wcześniej. Jeśli nie zarejestrowano żadnych zakresów, możesz pozostawić tę listę zakresów pustą. -
Enter_the_Tenant_Subdomain_Here
i zastąp ją poddomeną Katalog (dzierżawa). Na przykład, jeśli podstawowa domena najemcy tocontoso.onmicrosoft.com
, użyjcontoso
. Jeśli nie znasz swojej subdomeny najemcy, dowiedz się, jak sprawdzić szczegóły najemcy.
-
Użyj niestandardowej domeny adresu URL (opcjonalnie)
Użyj domeny niestandardowej, aby w pełni oznaczyć adres URL uwierzytelniania. Z perspektywy użytkownika użytkownicy pozostają na twojej domenie podczas procesu uwierzytelniania, a nie są przekierowywani na domenę ciamlogin.com.
Aby użyć domeny niestandardowej, wykonaj następujące czynności:
Wykonaj kroki opisane w Włączanie niestandardowych domen adresów URL dla aplikacji w dzierżawach zewnętrznych, które umożliwiają włączenie niestandardowej domeny adresu URL dla twojej dzierżawy zewnętrznej.
Otwórz plik Configuration.swift:
- Zaktualizuj wartość właściwości
kAuthority
na https://Enter_the_Custom_Domain_Here/Enter_the_Tenant_ID_Here. ZastąpEnter_the_Custom_Domain_Here
domeną własnego adresu URL iEnter_the_Tenant_ID_Here
identyfikatorem dzierżawy. Jeśli nie masz identyfikatora najemcy, dowiedz się, jak uzyskać dostęp do danych swojego najemcy.
- Zaktualizuj wartość właściwości
Po wprowadzeniu zmian w pliku Configuration.swift, jeśli domena niestandardowego adresu URL to login.contoso.com, a identyfikator dzierżawy to aaaabbbb-0000-cccc-1111-dddd2222eeee, plik powinien wyglądać podobnie do następującego fragmentu kodu:
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"
}