Поделиться через


Аутентификация в Azure с помощью учетных данных пользователя

В этой статье рассматривается, как библиотека удостоверений Azure поддерживает проверку подлинности токена Microsoft Entra с предоставленными пользователем учетными данными. Эта поддержка возможна с помощью набора реализаций TokenCredential, рассмотренных в этой статье.

В этой статье рассматриваются следующие темы:

учетные данные кода устройства

Учетные данные для входа с помощью кода устройства позволяют интерактивно выполнять аутентификацию пользователя на устройствах с ограниченным пользовательским интерфейсом. Он работает путем запроса пользователя посетить URL-адрес входа на компьютере с поддержкой браузера, когда приложение пытается пройти проверку подлинности. Затем пользователь вводит код устройства, упомянутый в инструкциях, вместе с учетными данными для входа. После успешной аутентификации приложение, которое запросило аутентификацию, успешно пройдет проверку на устройстве, на котором оно выполняется.

Для получения дополнительной информации см. в идентификационной платформе Microsoft и потоке предоставления авторизации устройства OAuth 2.0.

Настройка потока кода устройства для приложений

Чтобы настроить проверку подлинности пользователя в потоке кода устройства, выполните следующие шаги.

  1. Перейдите к идентификатору Microsoft Entra в портал Azure и найдите регистрацию приложения.
  2. Перейдите к разделуПроверка подлинности.
  3. В Suggested Redirected URIs проверьте URI, который заканчивается на /common/oauth2/nativeclient.
  4. В разделе Тип клиента по умолчанию, выберите yes для Treat application as a public client.

Эти действия позволяют приложению проходить проверку подлинности, но у него по-прежнему нет разрешения на вход в идентификатор Microsoft Entra или доступ к ресурсам от вашего имени. Чтобы устранить эту проблему, перейдите к разрешениям API и включите Microsoft Graph и ресурсы, к которым вы хотите получить доступ, например Key Vault.

Вы также должны быть администратором вашей организации, чтобы предоставить согласие вашему приложению, когда вы входите в систему впервые.

Если вы не можете настроить параметр потока кода устройства на идентификаторе Microsoft Entra, может потребоваться, чтобы приложение было мультитенантным. Чтобы обеспечить поддержку нескольких арендаторов в вашем приложении, перейдите на панель Аутентификация, а затем выберите Учетные записи в любом каталоге организации. Затем выберите значение Да для параметра Treat application as Public Client (Считать приложение общедоступным клиентом).

Аутентификация учетной записи пользователя с использованием потока кода устройства

В следующем примере демонстрируется аутентификация SecretClient из клиентской библиотеки секретов Azure Key Vault для Java с использованием DeviceCodeCredential на устройстве Интернета вещей.

/**
 * Authenticate with device code credential.
 */
DeviceCodeCredential deviceCodeCredential = new DeviceCodeCredentialBuilder()
    .challengeConsumer(challenge -> {
    // Lets the user know about the challenge.
    System.out.println(challenge.getMessage());
    }).build();

// Azure SDK client builders accept the credential as a parameter.
SecretClient client = new SecretClientBuilder()
    .vaultUrl("https://<your Key Vault name>.vault.azure.net")
    .credential(deviceCodeCredential)
    .buildClient();

Учетные данные для входа интерактивно через браузер

Эти учетные данные позволяют интерактивно выполнять аутентификацию пользователя через системный браузер по умолчанию и обеспечивают беспроблемность аутентификации, позволяя вам использовать собственные учетные данные для аутентификации приложения.

Включение приложений для использования интерактивного потока OAuth 2 через браузер.

Чтобы использовать InteractiveBrowserCredential, необходимо зарегистрировать приложение в Microsoft Entra ID с разрешениями на вход от имени пользователя. Выполните предыдущие действия для потока кода устройства, чтобы зарегистрировать приложение. Как упоминалось ранее, администратор клиента должен предоставить согласие приложению, прежде чем любая учетная запись пользователя сможет войти в систему.

Вы можете заметить, что в InteractiveBrowserCredentialBuilder, требуется URL-адрес перенаправления. Добавьте URL-адрес перенаправления в подраздел перенаправления URI в разделе аутентификации зарегистрированного приложения Microsoft Entra.

Интерактивная проверка подлинности учетной записи пользователя в браузере

В следующем примере демонстрируется аутентификация SecretClient из клиентской библиотеки azure-security-keyvault-secrets с помощью InteractiveBrowserCredential.

/**
 * Authenticate interactively in the browser.
 */
InteractiveBrowserCredential interactiveBrowserCredential = new InteractiveBrowserCredentialBuilder()
    .clientId("<your app client ID>")
    .redirectUrl("YOUR_APP_REGISTERED_REDIRECT_URL")
    .build();

// Azure SDK client builders accept the credential as a parameter.
SecretClient client = new SecretClientBuilder()
    .vaultUrl("https://<your Key Vault name>.vault.azure.net")
    .credential(interactiveBrowserCredential)
    .buildClient();

Следующие шаги

В этой статье рассматривается аутентификация с помощью учетных данных пользователя. Эта форма проверки подлинности является лишь одним из нескольких методов аутентификации в Azure SDK для Java. В указанных ниже статьях описаны другие способы.

  • Аутентификация Azure в средах разработки
  • Аутентификация приложений, размещенных в Azure
  • Аутентификация с помощью служебных принципалов

После настройки аутентификации ознакомьтесь со статьей Настройка ведения журнала в пакете Azure SDK для Java, чтобы получить сведения о возможностях ведения журнала, предоставляемых пакетом SDK