Краткое руководство. Добавление возможности входа в веб-приложение Java с помощью учетной записи Майкрософт

Добро пожаловать! Возможно, это не та страница, которую вы ожидали. Пока мы работаем над исправлением, воспользуйтесь этой ссылкой, чтобы перейти к нужной статье:

Краткое руководство. Веб-приложение Java с функцией входа пользователя

Приносим извинения за неудобства и благодарим за терпение! Мы работаем над устранением этой проблемы.

При работе с этим кратким руководством вы скачаете и выполните пример кода. Такой пример кода демонстрирует, как в веб-приложении Java реализовать вход пользователей и вызов Microsoft Graph. Входить в приложение могут пользователи из любой организации Azure Active Directory (Azure AD).

Чтобы получить общие сведения см. схему, демонстрирующую принцип работы примера.

Предварительные требования

Для запуска этого примера вам потребуются следующие компоненты:

Шаг 1. Настройка приложения на портале Azure

Для использования примера кода, приведенного в этом кратком руководстве, сделайте следующее:

  1. Добавьте URL-адреса ответа https://localhost:8443/msal4jsample/secure/aad и https://localhost:8443/msal4jsample/graph/me.
  2. Создайте секрет клиента.

Already configured Ваше приложение настроено с помощью этих атрибутов.

Шаг 2. Скачивание примера кода

Скачайте проект и извлеките ZIP-файл в папку рядом с корнем диска. Например, в C:\Azure-Samples.

Чтобы использовать протокол HTTPS с localhost, укажите свойства server.ssl.key. Чтобы создать самозаверяющий сертификат, используйте служебную программу keytool (входит в JRE).

Ниже приведен пример:

  keytool -genkeypair -alias testCert -keyalg RSA -storetype PKCS12 -keystore keystore.p12 -storepass password

  server.ssl.key-store-type=PKCS12
  server.ssl.key-store=classpath:keystore.p12
  server.ssl.key-store-password=password
  server.ssl.key-alias=testCert

Поместите созданный файл хранилища ключей в папку resources.

Примечание

Enter_the_Supported_Account_Info_Here

Шаг 3. Запуск примера кода

Чтобы запустить проект, выполните одно из следующих действий:

  • Запустите его непосредственно из IDE, используя встроенный сервер Spring Boot.
  • Упакуйте проект в WAR-файл с помощью Maven, а затем разверните в решении J2EE для контейнеров, например в Apache Tomcat.
Запуск проекта из IDE

Чтобы запустить веб-приложение из IDE, щелкните элемент "Запустить", а затем перейдите на домашнюю страницу проекта. В этом примере стандартная домашняя страница имеет следующий URL-адрес: https://localhost:8443..

  1. На основной странице нажмите кнопку Вход для перенаправления пользователей в Azure Active Directory и запрашивания у них учетных данных.

  2. После проверки подлинности пользователи перенаправляются по адресу https://localhost:8443/msal4jsample/secure/aad. После входа на странице появятся сведения об учетной записи пользователя. В примере пользовательского интерфейса есть следующие кнопки:

    • Выход: пользователь выходит из приложения и перенаправляется на домашнюю страницу.
    • Показать сведения о пользователе: получение маркера Microsoft Graph и вызов Microsoft Graph с помощью запроса, который содержит этот маркер. Этот запрос возвращает сведения о пользователе, выполнившем вход в систему.
Запуск проекта из Tomcat

Если вы хотите развернуть пример веб-приложения в Tomcat, внесите несколько изменений в исходный код.

  1. Откройте файл ms-identity-java-webapp/src/main/java/com.microsoft.azure.msalwebsample/MsalWebSampleApplication.

    • Удалите весь исходный код, заменив его следующим кодом:

       package com.microsoft.azure.msalwebsample;
      
       import org.springframework.boot.SpringApplication;
       import org.springframework.boot.autoconfigure.SpringBootApplication;
       import org.springframework.boot.builder.SpringApplicationBuilder;
       import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
      
       @SpringBootApplication
       public class MsalWebSampleApplication extends SpringBootServletInitializer {
      
        public static void main(String[] args) {
         SpringApplication.run(MsalWebSampleApplication.class, args);
        }
      
        @Override
        protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
         return builder.sources(MsalWebSampleApplication.class);
        }
       }
      
  2. HTTP-порт Tomcat по умолчанию — 8080, но вам требуется HTTPS-подключение через порт 8443. Чтобы настроить этот параметр:

    • Перейдите к файлу tomcat/conf/server.xml.

    • Найдите тег <connector> и замените существующий соединитель следующим соединителем:

      <Connector
               protocol="org.apache.coyote.http11.Http11NioProtocol"
               port="8443" maxThreads="200"
               scheme="https" secure="true" SSLEnabled="true"
               keystoreFile="C:/Path/To/Keystore/File/keystore.p12" keystorePass="KeystorePassword"
               clientAuth="false" sslProtocol="TLS"/>
      
  3. Откройте окно командной строки и Перейдите к корневой папке этого примера (где находится файл pom.xml) и запустите mvn > package для сборки проекта.

    • С помощью этой команды в каталоге /targets будет создан файл msal-web-sample-0.1.0.war.
    • Переименуйте этот файл в msal4jsample.war.
    • Разверните этот WAR-файл с помощью Tomcat или любого другого решения J2EE для контейнеров.
      • Чтобы развернуть файл msal4jsample.war, скопируйте его в каталог /webapps/ в своей установке Tomcat, а затем запустите сервер Tomcat.
  4. После развертывания файла перейдите по адресу https://localhost:8443/msal4jsample в браузере.

Важно!

В рамках этого краткого руководства приложение использует секрет клиента для собственной идентификации в качестве конфиденциального клиента. Так как секрет клиента добавляется в качестве обычного текста в файлы проекта, из соображений безопасности рекомендуем применять сертификат вместо секрета клиента, прежде чем использовать приложение в рабочей среде. Дополнительные сведения о том, как использовать сертификат, см. в статье Учетные данные сертификата для аутентификации приложения.

Дополнительные сведения

Как работает этот пример

Diagram that shows how the sample app generated by this quickstart works.

Получение MSAL

MSAL для Java (MSAL4J) — это библиотека Java, используемая для выполнения входа пользователей и запрашивания маркеров, которые нужны для доступа к API, защищенному платформой удостоверений Майкрософт.

Добавьте библиотеку MSAL4J в приложение с помощью Maven или Gradle для управления зависимостями, внеся следующие изменения в > файл pom.xml (Maven) или build.gradle (Gradle) приложения.

В файле pom.xml:

<dependency>
    <groupId>com.microsoft.azure</groupId>
    <artifactId>msal4j</artifactId>
    <version>1.0.0</version>
</dependency>

В файле build.gradle:

compile group: 'com.microsoft.azure', name: 'msal4j', version: '1.0.0'

Инициализация MSAL

Добавьте ссылку на MSAL для Java, добавив следующий код в начало файла, в котором будет использоваться MSAL4J:

import com.microsoft.aad.msal4j.*;

Справка и поддержка

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

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

Тема создания веб-приложений, в которых вход пользователей выполняется с помощью платформы удостоверений Майкрософт, подробно рассматривается в нашей серии сценариев: