Notatka
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.
Note
Obsługa brokera uwierzytelniania systemu macOS jest wprowadzana w msal wersji 1.31.0.
Korzystanie z brokera uwierzytelniania w systemie macOS pozwala uprościć sposób uwierzytelniania użytkowników w aplikacji za pomocą usługi Microsoft Entra ID, a także umożliwia korzystanie z przyszłych funkcji, które zabezpieczają tokeny odświeżania Microsoft Entra ID przed wykradaniem i niewłaściwym użyciem.
Brokerzy uwierzytelniania nie są wstępnie instalowani w systemie macOS, ale są aplikacjami opracowanymi przez Microsoft, takimi jak Portal firmy. Te aplikacje są zwykle instalowane, gdy komputer z systemem macOS jest zarejestrowany w floty urządzeń firmy za pośrednictwem rozwiązania do zarządzania punktami końcowymi, takiego jak Microsoft Intune. Aby dowiedzieć się więcej na temat konfigurowania urządzenia firmy Apple przy użyciu platformy tożsamości Microsoft, zapoznaj się z artykułem Microsoft Enterprise SSO plug-in for Apple devices (Wtyczka logowania jednokrotnego dla przedsiębiorstw dla urządzeń firmy Apple).
Użycie
Aby korzystać z brokera, należy zainstalować pakiety powiązane z brokerem oprócz podstawowej biblioteki MSAL z repozytorium PyPI:
pip install msal[broker]>=1.31,<2
Ważna
Jeśli pakiety związane z brokerem nie są zainstalowane i spróbujesz użyć brokera uwierzytelniania, zostanie wyświetlony błąd: ImportError: You need to install dependency by: pip install "msal[broker]>=1.31,<2".
Zazwyczaj w systemie macOS Twoje aplikacje Python typu public clientpozyskują tokeny za pośrednictwem przeglądarki systemowej. Aby zamiast tego użyć brokerów uwierzytelniania zainstalowanych w systemie macOS, należy przekazać dodatkowy argument w konstruktorze PublicClientApplication — : enable_broker_on_mac
from msal import PublicClientApplication
app = PublicClientApplication(
"CLIENT_ID",
authority="https://login.microsoftonline.com/common",
enable_broker_on_mac =True)
Ważna
Jeśli piszesz aplikację dla wielu platform, musisz również użyć elementu enable_broker_on_windows, zgodnie z opisem w artykule Using MSAL Python with Web Account Manager (Korzystanie z biblioteki MSAL Python z menedżerem kont sieci Web).
Oprócz zmiany konstruktora Twoja aplikacja musi obsługiwać identyfikatory URI przekierowania właściwe dla brokera. W przypadku aplikacji niepodpisanych identyfikator URI to:
msauth.com.msauth.unsignedapp://auth
W przypadku podpisanych aplikacji identyfikator URI przekierowania powinien mieć następującą wartość:
msauth.BUNDLE_ID://auth
Jeśli adresy URI przekierowania nie są prawidłowo skonfigurowane w konfiguracji aplikacji w portalu Entra, pojawi się błąd taki jak ten:
Error detected...
tag=508170375
context=AADSTS50011 Description: (pii), Domain: MSAIMSIDOAuthErrorDomain.Error was thrown in location: Broker
errorCode=-51411
status=Response_Status.Status_Unexpected
Po skonfigurowaniu można wywołać acquire_token_interactive, aby uzyskać token.
result = app.acquire_token_interactive(["User.ReadBasic.All"],
parent_window_handle=app.CONSOLE_WINDOW_HANDLE)
Note
Parametr parent_window_handle jest wymagany, mimo że w systemie macOS nie jest używany. W przypadku aplikacji z graficznym interfejsem użytkownika lokalizacja monitu logowania zostanie określona ad hoc i obecnie nie może być powiązana z określonym oknem. W przyszłej aktualizacji ten parametr zostanie użyty do określenia rzeczywistego okna nadrzędnego .
Buforowanie tokenów
Broker uwierzytelniania obsługuje buforowanie tokenów odświeżania i dostępu. Nie trzeba konfigurować niestandardowego buforowania.
Obsługiwane wersje i architektury systemu macOS
Broker systemu macOS obsługuje następujące konfiguracje:
| Component | Obsługiwane wersje |
|---|---|
| Architektura | ARM64 (Apple Silicon) i x64 (Intel) |
| Wersja systemu macOS | macOS 10.15 (Catalina) i nowsze |
Wskazówka
Zalecamy zaktualizowanie do najnowszej wersji systemu macOS w celu zapewnienia zgodności z najnowszymi funkcjami zabezpieczeń i możliwościami brokera.