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.
Uwierzytelnianie obsługiwane przez brokera zbiera poświadczenia użytkownika przy użyciu brokera uwierzytelniania systemu w celu uwierzytelnienia aplikacji. Broker uwierzytelniania systemu to aplikacja uruchamiana na komputerze użytkownika, która zarządza uzgadnianiem uwierzytelniania i utrzymywaniem tokenów dla wszystkich połączonych kont.
Uwierzytelnianie obsługiwane przez brokera oferuje następujące korzyści:
- Enables Single Sign-On (SSO): Umożliwia aplikacjom uproszczenie sposobu uwierzytelniania użytkowników przy użyciu Microsoft Entra ID i ochrony Microsoft Entra ID tokenów odświeżania przed eksfiltracją i nieprawidłowym użyciem.
- Zwiększone zabezpieczenia: Wiele ulepszeń zabezpieczeń jest dostarczanych z brokerem bez konieczności aktualizowania logiki aplikacji.
- Rozszerzona obsługa funkcji: Dzięki pomocy brokera deweloperzy mogą uzyskiwać dostęp do rozbudowanych funkcji systemu operacyjnego i usług.
- Integracja systemu: Aplikacje używające brokera plug-and-play z wbudowanym wybierakiem kont, co umożliwia użytkownikowi szybki wybór istniejącego konta zamiast wielokrotnego wprowadzania tych samych poświadczeń.
- Ochrona tokenów: Gwarantuje, że tokeny odświeżania są powiązane z urządzeniem i umożliwiają aplikacjom uzyskiwanie tokenów dostępu powiązanych z urządzeniem. Zobacz Ochrona tokenów.
Windows udostępnia brokera uwierzytelniania o nazwie Web Account Manager (WAM). WAM umożliwia dostawcom tożsamości, takim jak Microsoft Entra ID, natywne integrowanie się z systemem operacyjnym i zapewnianie bezpiecznych usług logowania do aplikacji. Uwierzytelnianie pośredniczone przez brokera umożliwia aplikacji wykonywanie wszystkich operacji dozwolonych przez poświadczenia logowania interakcyjnego.
Obsługiwane są osobiste konta Microsoft i konta służbowe. W obsługiwanych wersjach Windows domyślny interfejs użytkownika oparty na przeglądarce jest zastępowany łagodniejszym środowiskiem uwierzytelniania, podobnie jak wbudowane aplikacje Windows.
Konfigurowanie aplikacji na potrzeby uwierzytelniania obsługiwanego przez brokera
Aby włączyć uwierzytelnianie obsługiwane przez brokera w aplikacji, wykonaj następujące kroki:
W portalu Azure przejdź do Microsoft Entra ID i wybierz App registrations w menu po lewej stronie.
Wybierz rejestrację aplikacji, a następnie wybierz pozycję Uwierzytelnianie.
Dodaj odpowiednią ścieżkę przekierowania URI do rejestracji aplikacji, korzystając z konfiguracji platformy.
W obszarze Konfiguracje platformy wybierz pozycję + Dodaj platformę.
W obszarze Konfigurowanie platform wybierz kafelek dla typu aplikacji (platformy), aby skonfigurować jego ustawienia, takie jak aplikacje mobilne i klasyczne.
W polu Niestandardowe identyfikatory URI przekierowania wprowadź następujący identyfikator URI przekierowania:
ms-appx-web://Microsoft.AAD.BrokerPlugin/{your_client_id}Z okienka Przegląd rejestracji aplikacji zastąp
{your_client_id}identyfikatorem aplikacji (klienta).Wybierz Konfiguruj.
Aby dowiedzieć się więcej, zobacz Dodawanie identyfikatora URI przekierowania do rejestracji aplikacji.
Po powrocie do okienka Uwierzytelnianie w obszarze Ustawienia zaawansowane wybierz pozycję Tak w obszarze Zezwalaj na przepływy klientów publicznych.
Wybierz Zapisz, aby zastosować zmiany.
Aby autoryzować aplikację dla określonych zasobów, przejdź do danego zasobu, wybierz API Permissions i włącz Microsoft Graph i inne zasoby, do których chcesz uzyskać dostęp.
Ważna
Musisz również być administratorem dzierżawy, aby wyrazić zgodę na aplikację podczas pierwszego logowania.
Przypisywanie ról
Aby pomyślnie uruchomić kod aplikacji z uwierzytelnianiem obsługiwanym przez brokera, przyznaj uprawnienia konta użytkownika przy użyciu kontroli dostępu Azure opartej na rolach (RBAC). Przypisz odpowiednią rolę do konta użytkownika dla odpowiedniej usługi Azure. Przykład:
- Azure Blob Storage: Przypisz rolę współautora danych konta Storage.
- Azure Key Vault: Przypisz rolę Key Vault Secrets Officer.
Jeśli określono aplikację, musi mieć ustawione uprawnienia interfejsu API dla user_impersonation Access Azure Storage (krok 6 w poprzedniej sekcji). To uprawnienie interfejsu API umożliwia aplikacji dostęp do magazynu Azure w imieniu zalogowanego użytkownika po udzieleniu zgody podczas logowania.
Implementowanie kodu
Biblioteka Azure Identity obsługuje uwierzytelnianie obsługiwane przez brokera przy użyciu InteractiveBrowserCredential. Biblioteka azure-identity-broker zapewnia InteractiveBrowserBrokerCredentialBuilder, który tworzy InteractiveBrowserCredential zdolny do korzystania z brokera uwierzytelniania systemu. Aby na przykład użyć uwierzytelniania obsługiwanego przez brokera w aplikacji konsolowej Java do uwierzytelniania w Azure Key Vault za pomocą SecretClient wykonaj następujące kroki:
Dodaj zależność
azure-identity-brokerdo plikupom.xml:<dependency> <groupId>com.azure</groupId> <artifactId>azure-identity-broker</artifactId> </dependency>Pobierz odwołanie do okna nadrzędnego, na którym powinno zostać wyświetlone okno dialogowe wyboru konta. Aby zapoznać się z przykładami, zobacz Uzyskaj uchwyt okna.
Utwórz wystąpienie
InteractiveBrowserCredentialprzy użyciuInteractiveBrowserBrokerCredentialBuilder.import com.azure.identity.InteractiveBrowserCredential; import com.azure.identity.broker.InteractiveBrowserBrokerCredentialBuilder; import com.azure.security.keyvault.secrets.SecretClient; import com.azure.security.keyvault.secrets.SecretClientBuilder; import com.azure.security.keyvault.secrets.models.KeyVaultSecret; long windowHandle = getWindowHandle(); // See examples below InteractiveBrowserCredential credential = new InteractiveBrowserBrokerCredentialBuilder() .setWindowHandle(windowHandle) .useDefaultBrokerAccount() .build(); SecretClient client = new SecretClientBuilder() .vaultUrl("https://<your-key-vault-name>.vault.azure.net") .credential(credential) .buildClient(); KeyVaultSecret secret = client.getSecret("MySecret"); System.out.println("Retrieved secret: " + secret.getName());
W poprzednim przykładzie useDefaultBrokerAccount wyraża zgodę na dyskretny przepływ uwierzytelniania obsługiwanego przez brokera przy użyciu domyślnego konta systemowego. W ten sposób użytkownik nie musi wielokrotnie wybierać tego samego konta. Jeśli ciche uwierzytelnianie obsługiwane przez brokera nie powiedzie się, InteractiveBrowserCredential powraca do interakcyjnego uwierzytelniania obsługiwanego przez brokera.
Poniższy zrzut ekranu przedstawia alternatywne środowisko uwierzytelniania interakcyjnego obsługiwanego przez brokera:
Pobieranie uchwytu okna
W przypadku uwierzytelniania interakcyjnego przy użyciu programu InteractiveBrowserCredentialpotrzebna jest obsługa okna nadrzędnego, aby upewnić się, że okno dialogowe uwierzytelniania jest poprawnie wyświetlane w oknie, które wysyła żądanie.
Aplikacja JavaFX
W przypadku aplikacji JavaFX użyj narzędzia JNA (Java Native Access), aby uzyskać dojście do okna:
import com.sun.jna.Pointer;
import com.sun.jna.platform.win32.User32;
import com.sun.jna.platform.win32.WinDef;
public long getWindowHandle(Stage stage) {
WinDef.HWND hwnd = User32.INSTANCE.FindWindow(null, stage.getTitle());
return Pointer.nativeValue(hwnd.getPointer());
}
Aplikacja konsolowa
W przypadku aplikacji konsolowej w Windows użyj narzędzia JNA, aby uzyskać dojście do okna konsoli:
import com.sun.jna.Pointer;
import com.sun.jna.platform.win32.Kernel32;
import com.sun.jna.platform.win32.WinDef;
WinDef.HWND hwnd = Kernel32.INSTANCE.GetConsoleWindow();
long windowHandle = Pointer.nativeValue(hwnd.getPointer());