Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Проверка подлинности через брокер собирает учетные данные пользователя с помощью брокера проверки подлинности системы для проверки подлинности приложения. Брокер проверки подлинности системы — это приложение, работающее на компьютере пользователя, которое управляет процессами проверки подлинности и управлением токенами для всех подключенных учетных записей.
Проверка подлинности с помощью брокера обеспечивает следующие преимущества:
- Enables Single Sign-On (SSO): Позволяет приложениям упростить проверку подлинности пользователей с помощью Microsoft Entra ID и защищает маркеры обновления Microsoft Entra ID от кражи и неправильного использования.
- Улучшенная безопасность: Многие улучшения безопасности предоставляются брокером без необходимости обновлять логику приложения.
- Расширенная поддержка функций: С помощью брокера разработчики могут получить доступ к расширенным возможностям ОС и службы.
- Интеграция системы: Приложения, использующие подключаемый модуль брокера с встроенным средство выбора учетных записей, позволяют пользователю быстро выбрать существующую учетную запись вместо повторного ввода одинаковых учетных данных.
- Защита маркеров: Гарантирует, что маркеры обновления привязаны к устройству и позволяют приложениям получать маркеры доступа, привязанные к устройству. См. раздел "Защита маркеров".
Windows предоставляет брокер проверки подлинности Web Account Manager (WAM). WAM позволяет поставщикам удостоверений, таким как Microsoft Entra ID, нативно интегрироваться в ОС и предоставлять безопасные службы аутентификации для приложений. Проверка подлинности с помощью брокера позволяет приложению выполнять все операции, разрешенные интерактивными учетными данными для входа.
Поддерживаются личные учетные записи Майкрософт и рабочие или учебные учетные записи. В поддерживаемых версиях Windows пользовательский интерфейс на основе браузера по умолчанию заменяется более плавной проверкой подлинности, аналогично встроенным приложениям Windows.
Настройка приложения для проверки подлинности с помощью брокера
Чтобы включить проверку подлинности через брокер в приложении, выполните следующие действия.
На портале Azure перейдите к Microsoft Entra ID и выберите App registrations в меню слева.
Выберите регистрацию приложения, а затем выберите проверку подлинности.
Добавьте соответствующий URI перенаправления в регистрацию приложения с помощью конфигурации платформы:
В разделе "Конфигурации платформы" выберите +Добавить платформу.
В разделе "Настройка платформ" выберите плитку для типа приложения (платформы), чтобы настроить его параметры, такие как мобильные и классические приложения.
В настраиваемых URI перенаправления введите следующий URI перенаправления:
ms-appx-web://Microsoft.AAD.BrokerPlugin/{your_client_id}Замените
{your_client_id}на идентификатор приложения (клиента) из панели Обзор в регистрации приложения.Выберите и настройте.
Дополнительные сведения см. в разделе "Добавление URI перенаправления в регистрации приложения".
Вернитесь на панель проверки подлинности в разделе "Дополнительные параметры" выберите "Да ", чтобы разрешить потоки общедоступного клиента.
Выберите Сохранить, чтобы применить изменения.
Чтобы авторизовать приложение для определенных ресурсов, перейдите к ресурсу, на который идет речь, выберите API Permissions и включите Microsoft Graph и другие ресурсы, к которым вы хотите получить доступ.
Это важно
Вы также должны быть администратором вашего арендатора, чтобы предоставить согласие приложению, когда вы впервые входите в систему.
Назначьте роли
Чтобы успешно запустить код вашего приложения с проверкой подлинности через брокера, предоставьте разрешения для учетной записи пользователя с помощью контроля доступа на основе ролей Azure (RBAC). Назначьте соответствующую роль учетной записи пользователя для соответствующей службы Azure. Рассмотрим пример.
- Azure Blob Storage: назначьте роль участника данных учетной записи Storage.
- Azure Key Vault: назначьте роль Офицер по работе с секретами Key Vault.
Если указано приложение, оно должно иметь разрешения API для user_impersonation Access Azure Storage (шаг 6 в предыдущем разделе). Это разрешение API позволяет приложению получать доступ к хранилищу Azure от имени пользователя, выполнившего вход после предоставления согласия во время входа.
Реализация кода
Библиотека удостоверений Azure поддерживает проверку подлинности с помощью InteractiveBrowserCredential. Библиотека azure-identity-broker предоставляет InteractiveBrowserBrokerCredentialBuilder, которая создает InteractiveBrowserCredential с возможностью использования системного брокера проверки подлинности. Например, чтобы использовать проверку подлинности через брокер в консольном приложении Java для проверки подлинности в Azure Key Vault с помощью SecretClient выполните следующие действия.
Добавьте зависимость
azure-identity-brokerв вашpom.xmlфайл:<dependency> <groupId>com.azure</groupId> <artifactId>azure-identity-broker</artifactId> </dependency>Получите ссылку на родительское окно, поверх которого должно появиться диалоговое окно выбора учетной записи. Примеры см. в разделе "Получение дескриптора окна".
Создание экземпляра
InteractiveBrowserCredentialс помощьюInteractiveBrowserBrokerCredentialBuilder: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());
В предыдущем примере useDefaultBrokerAccount выбирает участие в беззвучном процессе аутентификации через брокера, используя системную учетную запись по умолчанию. Таким образом, пользователю не нужно многократно выбирать одну и ту же учетную запись. Если неявная проверка подлинности с помощью брокера завершается ошибкой, InteractiveBrowserCredential возвращается к интерактивной проверке подлинности с помощью брокера.
На следующем снимку экрана показан альтернативный интерактивный интерфейс проверки подлинности с брокером:
Получение дескриптора окна
При интерактивной проверке подлинности с использованием InteractiveBrowserCredential требуется дескриптор родительского окна, чтобы гарантировать, что диалоговое окно проверки подлинности отображается правильно поверх окна, которое отправляет запрос.
Приложение JavaFX
Для приложения JavaFX используйте JNA (Java Native Access), чтобы получить дескриптор окна:
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());
}
Консольное приложение
Для консольного приложения на Windows используйте JNA, чтобы получить дескриптор окна консоли:
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());