Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Проверка подлинности через брокер собирает учетные данные пользователя с помощью брокера проверки подлинности системы для проверки подлинности приложения. Брокер аутентификации системы — это приложение, работающее на компьютере пользователя, которое управляет процессами аутентификации и обслуживанием токенов для всех подключенных учетных записей пользователем.
Проверка подлинности с помощью брокера обеспечивает следующие преимущества:
- Включает единую систему входа (Single Sign-On): Позволяет приложениям упростить проверку подлинности пользователей с помощью Microsoft Entra ID и защитить обновляемые токены Microsoft Entra ID от кражи и неправильного использования.
- Улучшенная безопасность: Многие улучшения безопасности предоставляются брокером без необходимости обновлять логику приложения.
- Расширенная поддержка функций: С помощью брокера разработчики могут получить доступ к расширенным возможностям ОС и службы.
- Интеграция системы: Приложения, использующие подключаемый модуль брокера с встроенным средство выбора учетных записей, позволяют пользователю быстро выбрать существующую учетную запись вместо повторного ввода одинаковых учетных данных.
- Защита маркеров: Гарантирует, что маркеры обновления привязаны к устройству и позволяют приложениям получать маркеры доступа, привязанные к устройству. См. раздел "Защита маркеров".
Windows предоставляет брокер аутентификации под названием Диспетчер веб-учетных записей (WAM). WAM позволяет поставщикам идентификационных данных, таким как Microsoft Entra ID, непосредственно интегрироваться с ОС и предоставлять безопасные службы входа в приложения. Проверка подлинности с помощью брокера позволяет приложению выполнять все операции, разрешенные интерактивными учетными данными для входа.
Поддерживаются личные учетные записи Майкрософт и рабочие или учебные учетные записи. В поддерживаемых версиях Windows пользовательский интерфейс на основе браузера по умолчанию заменяется более плавной проверкой подлинности, аналогично встроенным приложениям Windows.
macOS не включает встроенный брокер проверки подлинности. Библиотека клиентских удостоверений Azure реализует функции авторизации брокером с помощью механизмов, специфичных для платформы, и может интегрироваться с такими приложениями, как Корпоративный портал Майкрософт, при управлении устройствами. Дополнительные сведения см. в разделе плагин единого входа Microsoft Enterprise для устройств Apple.
Linux использует Microsoft единый вход для Linux в качестве брокера аутентификации.
Настройка приложения для проверки подлинности с помощью брокера
Чтобы включить проверку подлинности через брокер в приложении, выполните следующие действия.
На портале Azure перейдите к идентификатору Microsoft Entra и выберите регистрации приложений в меню слева.
Выберите регистрацию приложения, а затем выберите проверку подлинности.
Добавьте соответствующий URI перенаправления в регистрацию приложения с помощью конфигурации платформы:
В разделе "Конфигурации платформы" выберите +Добавить платформу.
В разделе "Настройка платформ" выберите плитку для типа приложения (платформы), чтобы настроить его параметры, такие как мобильные и классические приложения.
В пользовательских URI перенаправления введите следующий URI перенаправления для своей платформы:
Platform URI-адрес перенаправления Windows 10+ или WSL ms-appx-web://Microsoft.AAD.BrokerPlugin/{your_client_id}macOS msauth.com.msauth.unsignedapp://authдля неподписанных приложений
msauth.{bundle_id}://authдля подписанных приложенийЛинукс https://login.microsoftonline.com/common/oauth2/nativeclientЗамените
{your_client_id}или{bundle_id}с идентификатором приложения (клиента) в разделе Обзор регистрации приложения.Выберите и настройте.
Дополнительные сведения см. в разделе "Добавление URI перенаправления для регистрации приложения".
Вернитесь на панель проверки подлинности в разделе "Дополнительные параметры" выберите "Да ", чтобы разрешить потоки общедоступного клиента.
Выберите Сохранить, чтобы применить изменения.
Чтобы авторизовать приложение для определенных ресурсов, перейдите к указанному ресурсу, выберите API разрешения и включите Microsoft Graph и другие необходимые ресурсы.
Это важно
Вы также должны быть администратором вашего клиента, чтобы предоставить согласие приложению при первом входе.
Назначьте роли
Чтобы успешно запустить код приложения с проверкой подлинности через брокер, предоставьте разрешения учетной записи пользователя с помощью управления доступом на основе ролей Azure (RBAC). Назначьте соответствующую роль учетной записи пользователя для соответствующей службы Azure. Рассмотрим пример.
- Хранилище BLOB-объектов Azure: назначьте роль Storage Account Data Contributor.
- Azure Key Vault: назначьте роль Key Vault Secrets Officer.
Если задано приложение, оно должно иметь разрешения API для user_impersonation Доступ к хранилищу Azure (шаг 6 в предыдущем разделе). Это разрешение API позволяет приложению получить доступ к хранилищу Azure от имени пользователя, выполнившего вход после предоставления согласия во время входа.
Реализация кода
Библиотека удостоверений Azure поддерживает аутентификацию с помощью брокера InteractiveBrowserCredential. Например, чтобы использовать InteractiveBrowserCredential в приложении MAUI для аутентификации в Azure Key Vault с помощью SecretClient, выполните следующие действия.
Библиотека удостоверений Azure предоставляет интерактивную брокерскую аутентификацию с помощью InteractiveBrowserCredential. Например, чтобы использовать InteractiveBrowserCredential в консольном приложении для проверки подлинности в Azure Key Vault с помощью SecretClient, выполните следующие действия:
Установите пакеты Azure.Identity и Azure.Identity.Broker .
dotnet add package Azure.Identity dotnet add package Azure.Identity.BrokerПолучите ссылку на родительское окно, вверху которого должно отображаться диалоговое окно выбора учетной записи.
Создайте экземпляр InteractiveBrowserCredential с помощью InteractiveBrowserCredentialBrokerOptions.
// Get the parent window handle for MAUI on Windows
Microsoft.Maui.Controls.Window? parentWindow = this.GetParentWindow();
Microsoft.UI.Xaml.Window? windowHandle = parentWindow?.Handler?.PlatformView as Microsoft.UI.Xaml.Window;
IntPtr hwnd = windowHandle != null ? WinRT.Interop.WindowNative.GetWindowHandle(windowHandle) : IntPtr.Zero;
// Configure InteractiveBrowserCredentialBrokerOptions with parent window reference
InteractiveBrowserCredentialBrokerOptions options = new(hwnd)
{
UseDefaultBrokerAccount = true,
};
// Create credential that will use WAM broker on Windows
InteractiveBrowserCredential credential = new(options);
SecretClient client = new(new Uri(KeyVaultUrl), credential);
KeyVaultSecret secret = await client.GetSecretAsync(SecretName);
Установите пакеты Azure.Identity и Azure.Identity.Broker .
dotnet add package Azure.Identity dotnet add package Azure.Identity.BrokerЗамечание
Поддержка macOS существует в
Azure.Identity.Brokerверсиях 1.3.0 и более поздних версиях.Получите ссылку на родительское окно, вверху которого должно отображаться диалоговое окно выбора учетной записи.
Создайте экземпляр InteractiveBrowserCredential с помощью InteractiveBrowserCredentialBrokerOptions.
// Get the parent window handle for MAUI on Mac Catalyst
Microsoft.Maui.Controls.Window? parentWindow = this.GetParentWindow();
UIWindow? uiWindow = parentWindow?.Handler?.PlatformView as UIWindow;
IntPtr hwnd = uiWindow != null ? uiWindow.Handle : IntPtr.Zero;
// Configure InteractiveBrowserCredentialBrokerOptions with parent window reference
InteractiveBrowserCredentialBrokerOptions options = new(hwnd)
{
UseDefaultBrokerAccount = true,
};
// Create credential that will use the broker on macOS
InteractiveBrowserCredential credential = new(options);
SecretClient client = new(new Uri(KeyVaultUrl), credential);
KeyVaultSecret secret = await client.GetSecretAsync(SecretName);
Установите пакеты Azure.Identity и Azure.Identity.Broker .
dotnet add package Azure.Identity dotnet add package Azure.Identity.BrokerЗамечание
Поддержка Linux существует в
Azure.Identity.Brokerверсиях 1.3.0 и более поздних версиях.Получите ссылку на родительское окно, вверху которого должно отображаться диалоговое окно выбора учетной записи.
Создайте экземпляр InteractiveBrowserCredential с помощью InteractiveBrowserCredentialBrokerOptions.
/// <summary> /// Get the handle of the console window for Linux /// </summary> [DllImport("libX11")] static extern IntPtr XOpenDisplay(string? display); [DllImport("libX11")] static extern IntPtr XRootWindow(IntPtr display, int screen); try { IntPtr parentWindowHandle = XRootWindow(XOpenDisplay(null), 0); Func<IntPtr> consoleWindowHandleProvider = () => parentWindowHandle; InteractiveBrowserCredentialBrokerOptions options = new(parentWindowHandle) { UseDefaultBrokerAccount = true, }; // Create the InteractiveBrowserCredential using broker support InteractiveBrowserCredential credential = new(options); Uri vaultUri = new("https://<your-key-vault-name>.vault.azure.net/"); SecretClient client = new(vaultUri, credential); Console.WriteLine("Retrieving secret 'MySecret' from Key Vault..."); KeyVaultSecret secret = await client.GetSecretAsync("MySecret"); return 0; }
Подсказка
Просмотрите полный пример кода приложения в репозитории GitHub документации .NET.
В предыдущем примере свойство UseDefaultBrokerAccount установлено в true, что позволяет использовать тихую, опосредованную потоковую аутентификацию с системной учетной записью по умолчанию. Таким образом, пользователю не нужно многократно выбирать одну и ту же учетную запись. Если тихая проверка подлинности с помощью брокера завершается ошибкой или UseDefaultBrokerAccount установлено в false, InteractiveBrowserCredential возвращается к интерактивной проверке подлинности с брокером.
На следующем снимку экрана показан альтернативный интерактивный интерфейс проверки подлинности с брокером:
На следующем снимку экрана показан альтернативный интерактивный интерфейс проверки подлинности с брокером:
В следующем видео показано альтернативное интерактивное взаимодействие с проверкой подлинности с помощью брокера: