Szybki start: logowanie użytkowników i wywoływanie interfejsu API programu Microsoft Graph z poziomu aplikacji dla systemu iOS lub macOS
Witamy! Prawdopodobnie nie jest to oczekiwana strona. Chociaż pracujemy nad poprawką, ten link powinien podjąć Cię do odpowiedniego artykułu:
Przepraszamy za niedogodności i doceniamy cierpliwość, podczas gdy pracujemy nad rozwiązaniem tego problemu.
W tym przewodniku Szybki start pobierzesz i uruchomisz przykładowy kod, który pokazuje, jak natywna aplikacja dla systemu iOS lub macOS może logować użytkowników i uzyskiwać token dostępu w celu wywołania interfejsu API programu Microsoft Graph.
Przewodnik Szybki start dotyczy zarówno aplikacji systemu iOS, jak i macOS. Niektóre kroki są wymagane tylko w przypadku aplikacji systemu iOS i będą wskazywane jako takie.
Wymagania wstępne
- Konto platformy Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.
- XCode 10+
- iOS 10+
- macOS 10.12+
Jak działa przykład
Krok 1. Konfigurowanie aplikacji
Aby przykładowy kod działał w tym przewodniku Szybki start, dodaj identyfikator URI przekierowania zgodny z brokerem uwierzytelniania.
Aplikacja jest skonfigurowana przy użyciu tych atrybutów
Krok 2. Pobieranie przykładowego projektu
Krok 3. Instalowanie zależności
- Wyodrębnij pliki z archiwum zip.
- W oknie terminalu przejdź do folderu z pobranym przykładem kodu i uruchom polecenie
pod install
, aby zainstalować najnowszą bibliotekę MSAL.
Krok 4. Aplikacja jest skonfigurowana i gotowa do uruchomienia
Skonfigurowaliśmy projekt z wartościami właściwości aplikacji i wszystko jest gotowe do uruchomienia.
Uwaga
Enter_the_Supported_Account_Info_Here
Jeśli tworzysz aplikację dla chmur krajowych firmy Microsoft Entra, zastąp wiersz rozpoczynający się od "let kGraphEndpoint" i "let kAuthority" poprawnymi punktami końcowymi. W przypadku dostępu globalnego użyj wartości domyślnych:
let kGraphEndpoint = "https://graph.microsoft.com/" let kAuthority = "https://login.microsoftonline.com/common"
Inne punkty końcowe są udokumentowane tutaj. Aby na przykład uruchomić przewodnik Szybki start z firmą Microsoft Entra Germany, użyj następującego polecenia:
let kGraphEndpoint = "https://graph.microsoft.de/" let kAuthority = "https://login.microsoftonline.de/common"
Otwórz ustawienia projektu. W sekcji Tożsamość wprowadź identyfikator pakietu wprowadzony w portalu.
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 element
Enter_the_bundle_Id_Here
identyfikatorem pakietu użytym w portalu. Zwróć uwagę namsauth.
prefiks w ciągu.<key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleURLSchemes</key> <array> <string>msauth.Enter_the_Bundle_Id_Here</string> </array> </dict> </array>
Skompiluj i uruchom aplikację!
Więcej informacji
Zapoznaj się z następującymi sekcjami, aby dowiedzieć się więcej na temat tego przewodnika Szybki start.
Uzyskiwanie biblioteki MSAL
BIBLIOTEKA MSAL (MSAL.framework) to biblioteka używana do logowania użytkowników i żądania tokenów używanych do uzyskiwania dostępu do interfejsu API chronionego przez Platforma tożsamości Microsoft. Możesz dodać bibliotekę MSAL do aplikacji w następujący sposób:
$ vi Podfile
Dodaj następujący kod do tego pliku podfile (z obiektem docelowym projektu):
use_frameworks!
target 'MSALiOS' do
pod 'MSAL'
end
Uruchom polecenie instalacji cocoaPods:
pod install
Inicjowanie biblioteki MSAL
Aby dodać odwołanie do biblioteki MSAL, dodaj następujący kod:
import MSAL
Następnie zainicjuj bibliotekę MSAL, używając następującego kodu:
let authority = try MSALAADAuthority(url: URL(string: kAuthority)!)
let msalConfiguration = MSALPublicClientApplicationConfig(clientId: kClientID, redirectUri: nil, authority: authority)
self.applicationContext = try MSALPublicClientApplication(configuration: msalConfiguration)
Gdzie: opis clientId
Identyfikator aplikacji z aplikacji zarejestrowanej w witrynie portal.azure.com authority
Platforma tożsamości Microsoft. W większości przypadków będzie to https://login.microsoftonline.com/common
>redirectUri
Identyfikator URI przekierowania aplikacji. Możesz przekazać wartość "nil", aby użyć wartości domyślnej lub niestandardowego identyfikatora URI przekierowania.
Tylko w przypadku systemu iOS dodatkowe wymagania dotyczące aplikacji
Aplikacja musi również mieć następujące elementy w pliku AppDelegate
. Dzięki temu zestaw SDK biblioteki MSAL obsługuje odpowiedź tokenu z aplikacji brokera uwierzytelniania podczas uwierzytelniania.
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
return MSALPublicClientApplication.handleMSALResponse(url, sourceApplication: options[UIApplication.OpenURLOptionsKey.sourceApplication] as? String)
}
Uwaga
W systemie iOS 13 lub nowszym, jeśli przyjmujesz UISceneDelegate
zamiast UIApplicationDelegate
, umieść ten kod w scene:openURLContexts:
wywołaniu zwrotnym (zobacz dokumentację firmy Apple).
Jeśli obsługujesz zarówno interfejs użytkownikaSceneDelegate, jak i UIApplicationDelegate w celu zapewnienia zgodności ze starszym systemem iOS, wywołanie zwrotne biblioteki MSAL musi zostać umieszczone w obu miejscach.
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)
}
Na koniec aplikacja musi mieć LSApplicationQueriesSchemes
wpis w pliku Info.plist obok pliku CFBundleURLTypes
. Przykład jest dostarczany z tym dołączonym elementem.
<key>LSApplicationQueriesSchemes</key>
<array>
<string>msauthv2</string>
<string>msauthv3</string>
</array>
Logowanie użytkowników i tokenów żądań
Biblioteka MSAL oferuje dwie metody uzyskiwania tokenów: acquireToken
i acquireTokenSilent
.
acquireToken: interaktywne uzyskiwanie tokenu
Niektóre sytuacje wymagają od użytkowników interakcji z Platforma tożsamości Microsoft. W takich przypadkach użytkownik końcowy może być zobowiązany do wybrania swojego konta, wprowadzenia poświadczeń lub zgody na uprawnienia aplikacji. Przykład:
- Gdy nowi użytkownicy logują się do aplikacji po raz pierwszy.
- Jeśli użytkownik resetuje swoje hasło, musi wprowadzić swoje poświadczenia
- Gdy aplikacja żąda dostępu do zasobu po raz pierwszy
- Gdy wymagane są uwierzytelnianie wieloskładnikowe lub inne zasady dostępu warunkowego
let parameters = MSALInteractiveTokenParameters(scopes: kScopes, webviewParameters: self.webViewParamaters!)
self.applicationContext!.acquireToken(with: parameters) { (result, error) in /* Add your handling logic */}
Gdzie: opis scopes
Zawiera żądane zakresy (czyli [ "user.read" ]
dla programu Microsoft Graph lub[ "<Application ID URL>/scope" ]
niestandardowych internetowych interfejsów API (api://<Application ID>/access_as_user
))
acquireTokenSilent: dyskretne uzyskiwanie tokenu dostępu
Aplikacje nie powinny wymagać od użytkowników logowania się za każdym razem, gdy żądają tokenu. Jeśli użytkownik już się zalogował, ta metoda umożliwia aplikacjom dyskretne żądanie tokenów.
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 */}
}
Gdzie: opis scopes
Zawiera żądane zakresy (czyli [ "user.read" ]
dla programu Microsoft Graph lub[ "<Application ID URL>/scope" ]
niestandardowych internetowych interfejsów API (api://<Application ID>/access_as_user
)account
Konto, dla którego jest wymagany token. Ten przewodnik Szybki start dotyczy pojedynczej aplikacji konta. Jeśli chcesz utworzyć aplikację z wieloma kontami, musisz zdefiniować logikę, aby określić, które konto ma być używane na potrzeby żądań tokenów, i accountsFromDeviceForParameters:completionBlock:
przekazywać poprawneaccountIdentifier
Pomoc i obsługa techniczna
Jeśli potrzebujesz pomocy, chcesz zgłosić problem lub poznać opcje pomocy technicznej, zobacz Pomoc i obsługa techniczna dla deweloperów.
Następne kroki
Przejdź do samouczka krok po kroku, w którym tworzysz aplikację dla systemu iOS lub macOS, która pobiera token dostępu z Platforma tożsamości Microsoft i używa go do wywoływania interfejsu API programu Microsoft Graph.