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


Добавление входа с помощью учетной записи Microsoft Entra в веб-приложение Spring

В этой статье показано, как разработать веб-приложение Spring, которое поддерживает вход учетной записи Microsoft Entra. Завершив все действия, описанные в этой статье, веб-приложение перенаправляется на страницу входа Microsoft Entra при анонимном доступе. На следующем снимке экрана показана страница входа в Microsoft Entra:

снимок экрана: диалоговое окно

Необходимые условия

Для выполнения действий, описанных в этой статье, необходимы следующие предварительные требования:

Важный

Для выполнения действий, описанных в этой статье, требуется spring Boot версии 2.5 или более поздней.

Создание приложения с помощью Spring Initializr

  1. Перейдите к https://start.spring.io/.

  2. Укажите, что вы хотите создать проект Maven с Java, введите имя группы и имя артефакта для вашего приложения.

  3. Добавьте зависимости для Spring Web , Microsoft Entra ID и клиента OAuth2 .

  4. В нижней части страницы выберите кнопку GENERATE.

  5. При появлении запроса скачайте проект в папку на локальном компьютере.

Создание экземпляра Microsoft Entra

Создание экземпляра Active Directory

Если вы являетесь администратором существующего экземпляра, можно пропустить этот процесс.

  1. Войдите в https://portal.azure.com.

  2. Выберите все службы, затем Идентичность, и потом Microsoft Entra ID.

  3. Введите имя вашей организации и начальное доменное имя . Скопируйте полный URL-адрес каталога. Вы будете использовать URL-адрес для добавления учетных записей пользователей далее в этом руководстве. (Например, azuresampledirectory.onmicrosoft.com.)

    Скопируйте полный URL-адрес каталога. Вы будете использовать URL-адрес для добавления учетных записей пользователей далее в этом руководстве. (Например, azuresampledirectory.onmicrosoft.com.).

    Когда закончите, выберите Создать. Создание нового ресурса займет несколько минут.

  4. По завершении выберите отображаемую ссылку для доступа к новому каталогу.

  5. Скопируйте ИД арендатора . Вы будете использовать значение идентификатора, чтобы настроить файл application.properties далее в этом руководстве.

Добавьте регистрацию для приложения на базе Spring Boot.

  1. В меню портала выберите Регистрация приложений, а затем выберите Зарегистрировать приложение.

  2. Укажите приложение, а затем выберите Зарегистрировать.

  3. Когда появится страница регистрации приложения, скопируйте идентификатор приложения (клиента) и идентификаторкаталога (клиента). Эти значения будут использоваться для настройки файла application.properties далее в этом руководстве.

  4. Выберите сертификаты, & секреты, в области навигации. Затем выберите Новый секрет клиента.

    снимок экрана приложения

  5. Добавьте описание и выберите длительность в списке Истечение срока. Выберите Добавить. Значение ключа будет автоматически заполнено.

  6. Скопируйте и сохраните значение секрета клиента, чтобы настроить файл application.properties далее в этом руководстве. (Вы не сможете получить это значение позже.)

    снимок экрана приложения с выделенным новым секретом клиента.

  7. На главной странице регистрации вашего приложения выберите раздел "Аутентификация", затем выберите "Добавить платформу". Затем выберите веб-приложения.

  8. Для нового URI перенаправления введитеhttp://localhost:8080/login/oauth2/code/, а затем выберите Настроить.

  9. Если вы изменили файл pom.xml для использования начальной версии Microsoft Entra более старой, чем версия 3.0.0: в разделе Неявное предоставление и гибридные потокивыберите токены идентификатора (используемые для неявных и гибридных потоков), а затем выберите Сохранить.

Добавление учетной записи пользователя в каталог и добавление этой учетной записи в appRole

  1. На странице обзора Active Directory выберите "Пользователи", а затем выберите "Новый пользователь".

  2. Когда отображается панель пользователя , введите имя пользователя и имя. Затем выберите Создать.

    снимок экрана диалогового окна

    Заметка

    При вводе имени пользователя необходимо указать URL-адрес каталога из предыдущего руководства. Например:

    test-user@azuresampledirectory.onmicrosoft.com

  3. На главной странице регистрации приложения выберите роли приложений, а затем выберите Создать роль приложения. Укажите значения для полей формы, выберите Включить эту роль приложения?, затем выберите Применить.

    снимок экрана приложения

  4. На странице Обзор каталога Microsoft Entra выберите Enterprise Applications.

  5. Выберите все приложения, а затем выберите приложение, к которое вы добавили роль приложения на предыдущем шаге.

  6. Выберите Пользователи и группы, а затем выберите Добавить пользователя или группу.

  7. В разделе Пользователивыберите Ничего не выбрано. Выберите пользователя, созданного ранее, выберите Выбрать, а затем выберите Назначить. Если вы создали несколько ролей приложения ранее, выберите роль.

  8. Вернитесь на панель «Пользователи», выберите тестового пользователя, затем выберите «Сброс пароля» и скопируйте пароль. Вы будете использовать пароль при входе в приложение позже в этом руководстве.

Настройка и компиляция приложения

  1. Извлеките файлы из архива проекта, который вы создали и скачали ранее в этом руководстве, в каталог.

  2. Перейдите к папке src/main/resources проекта, а затем откройте файл application.properties в текстовом редакторе.

  3. Укажите параметры для регистрации приложения с помощью значений, созданных ранее. Например:

    # Enable related features.
    spring.cloud.azure.active-directory.enabled=true
    # Specifies your Active Directory ID:
    spring.cloud.azure.active-directory.profile.tenant-id=<tenant-ID>
    # Specifies your App Registration's Application ID:
    spring.cloud.azure.active-directory.credential.client-id=<client-ID>
    # Specifies your App Registration's secret key:
    spring.cloud.azure.active-directory.credential.client-secret=<client-secret>
    

    Где:

    Параметр Описание
    spring.cloud.azure.active-directory.enabled Включите функции, предоставляемые spring-cloud-azure-starter-active-directory
    spring.cloud.azure.active-directory.profile.tenant-id Содержит ранее упомянутый идентификатор каталога Active Directory.
    spring.cloud.azure.active-directory.credential.client-id Содержит идентификатор приложения , полученный при регистрации вашего приложения, выполненной ранее.
    spring.cloud.azure.active-directory.credential.client-secret Содержит значение из регистрационного ключа вашего приложения, который вы заполнили ранее.
  4. Сохраните и закройте файл application.properties.

  5. Создайте папку с именем контроллера в исходной папке Java для приложения. Например: src/main/java/com/wingtiptoys/security/controller.

  6. Создайте файл Java с именем HelloController.java в папке контроллера и откройте его в текстовом редакторе.

  7. Введите следующий код, а затем сохраните и закройте файл:

    package com.wingtiptoys.security;
    
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.ResponseBody;
    import org.springframework.web.bind.annotation.RestController;
    import org.springframework.security.access.prepost.PreAuthorize;
    
    @RestController
    public class HelloController {
         @GetMapping("Admin")
         @ResponseBody
         @PreAuthorize("hasAuthority('APPROLE_Admin')")
         public String Admin() {
             return "Admin message";
         }
    }
    

Создание и тестирование приложения

  1. Откройте командную строку и перейдите в папку, в которой находится файл pom.xml приложения.

  2. Создайте приложение Spring Boot с помощью Maven и запустите его. Например:

    mvn clean package
    mvn spring-boot:run
    
  3. После создания и запуска приложения Maven откройте http://localhost:8080/Admin в веб-браузере. Вам будет предложено указать имя пользователя и пароль.

    снимок экрана: диалоговое окно

    Заметка

    Возможно, вам будет предложено изменить пароль, если это первый вход для новой учетной записи пользователя.

    снимок экрана: диалоговое окно

  4. После успешного входа вы увидите пример текста "Сообщение администратора" с контроллера.

    снимок экрана: сообщение администратора приложения.

Сводка

В этом руководстве вы создали веб-приложение Java с помощью начального средства Microsoft Entra, настроили новый клиент Microsoft Entra, зарегистрировали новое приложение в клиенте, а затем настроили приложение для использования заметок Spring и классов для защиты веб-приложения.

См. также

  • Дополнительные сведения о новых параметрах пользовательского интерфейса см. в руководстве по регистрации новых приложений портала Azure

Дальнейшие действия

Чтобы узнать больше о Spring и Azure, перейдите в центр документации Spring в Azure.