Защита приложений Java WebLogic с помощью групп и утверждений групп

В этой статье показано, как создать приложение Java WebLogic, которое входит в систему пользователей с помощью библиотеки проверки подлинности Майкрософт (MSAL) для Java. Приложение также ограничивает доступ к страницам на основе членства в группе безопасности идентификатора Microsoft Entra.

На следующей схеме показана топология приложения:

Схема, показывющая топологию приложения.

Клиентское приложение использует MSAL для Java (MSAL4J) для входа пользователей в клиент Идентификатора Microsoft Entra и получения маркера идентификатора из идентификатора Microsoft Entra ID. Маркер идентификатора подтверждает, что пользователь проходит проверку подлинности с помощью этого клиента. Приложение защищает маршруты в соответствии с состоянием проверки подлинности пользователя и членством в группах.

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

Необходимые компоненты

  • JDK версии 8 или более поздней
  • Maven 3
  • Клиент идентификатора Microsoft Entra. Дополнительные сведения см. в разделе "Как получить клиент идентификатора Microsoft Entra".
  • Учетная запись пользователя в собственном клиенте Идентификатора Microsoft Entra.
  • Две группы безопасности и GroupAdminGroupMember, содержащие пользователей, с которыми вы хотите протестировать.

Рекомендации

  • Некоторые знания о Java / Jakarta Servlets.
  • Некоторые знания о терминале Linux/OSX или Windows PowerShell.
  • jwt.ms для проверки маркеров.
  • Fiddler для мониторинга активности сети и устранения неполадок.
  • Следуйте блогу по идентификатору Microsoft Entra ID, чтобы оставаться в курсе последних разработок.

Настройка примера

В следующих разделах показано, как настроить пример приложения.

Клонирование или скачивание примера репозитория

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

git clone https://github.com/Azure-Samples/ms-identity-java-servlet-webapp-authentication.git
cd 3-Authorization-II/groups

Кроме того, перейдите к репозиторию ms-identity-java-servlet-webapp-authentication , а затем скачайте его в виде файла .zip и извлеките его на жесткий диск.

Внимание

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

Регистрация примера приложения в клиенте Идентификатора Microsoft Entra

В этом примере есть один проект. Чтобы зарегистрировать приложение в портал Azure, можно выполнить действия по настройке вручную или использовать скрипт PowerShell. Скрипт выполняет следующие задачи:

  • Создает приложения идентификатора Microsoft Entra и связанные объекты, такие как пароли, разрешения и зависимости.
  • Изменяет файлы конфигурации проекта.
  • По умолчанию настраивает приложение, которое работает только с учетными записями в каталоге организации.

Выполните следующие действия, чтобы запустить скрипт PowerShell:

  1. В Windows откройте PowerShell и перейдите к корню клонированного каталога.

  2. Используйте следующую команду, чтобы задать политику выполнения для PowerShell:

    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process -Force
    
  3. Используйте следующие команды для запуска скрипта конфигурации:

    cd .\AppCreationScripts\
    .\Configure.ps1
    

    Примечание.

    Другие способы выполнения скриптов описаны в сценариях создания приложений. Скрипты также предоставляют руководство по автоматической регистрации, настройке и удалению приложений, которые могут помочь в сценариях CI/CD.

Настройка приложения (java-servlet-webapp-groups) для использования регистрации приложения

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

Примечание.

В следующих шагах ClientID выполняется то же самое, что Application ID и AppId.

  1. Откройте проект в интегрированной среде разработки.

  2. Откройте файл ./src/main/resources/authentication.properties.

  3. Найдите строку {enter-your-tenant-id-here}. Замените существующее значение идентификатором клиента Microsoft Entra, если вы зарегистрировали приложение только в этом каталоге организации.

  4. Найдите строку {enter-your-client-id-here} и замените существующее значение идентификатором приложения или clientIdjava-servlet-webapp-groups приложением, скопированным из портал Azure.

  5. Найдите строку {enter-your-client-secret-here} и замените существующее значение значением, сохраненным во время создания java-servlet-webapp-groups приложения, в портал Azure.

Настройка групп безопасности

Вы можете настроить приложения для получения утверждений групп следующими способами:

Примечание.

Сведения о получении локальной группы samAccountName или On Premises Group Security Identifier вместо идентификатора группы см. в разделе "Предварительные требования для использования атрибутов групп, синхронизированных из Active Directory " в разделе "Настройка утверждений группы для приложений с помощью идентификатора Microsoft Entra".

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

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

  1. На странице регистрации приложения выберите "Конфигурация маркера" на панели навигации, чтобы открыть страницу, в которой можно настроить предоставленные утверждения маркерами, выданными приложению.

  2. Выберите " Добавить утверждения групп", чтобы открыть экран "Изменение утверждений групп ".

  3. Выберите группы безопасности ИЛИ все группы (включая списки рассылки, но не группы, назначенные приложению). Выбор обоих параметров отрицает эффект параметра "Группы безопасности".

  4. В разделе "Идентификатор" выберите идентификатор группы. Этот выбор приводит к тому, что идентификатор Microsoft Entra отправляет идентификатор объекта групп, которым назначается пользователь, в утверждениях групп маркера идентификатора, который ваше приложение получает после входа пользователя.

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

Этот параметр полезен при выполнении следующих случаев:

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

Этот параметр помогает приложению избежать проблемы с переполнением.

Примечание.

Эта функция недоступна в выпуске Microsoft Entra ID Free.

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

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

  1. На странице регистрации приложения выберите "Конфигурация маркера" на панели навигации, чтобы открыть страницу, в которой можно настроить предоставленные утверждения маркерами, выданными приложению.

  2. Выберите " Добавить утверждения групп", чтобы открыть экран "Изменение утверждений групп ".

  3. Выберите группы, назначенные приложению.

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

  4. В разделе "Идентификатор" выберите идентификатор группы. В результате идентификатор Microsoft Entra отправляет идентификатор объекта групп, которым назначается пользователь, в утверждениях групп маркера идентификатора.

  5. Если вы предоставляете веб-API с помощью параметра "Предоставить API ", вы также можете выбрать параметр идентификатора группы в разделе Access . Этот параметр приводит к отправке идентификатора microsoft Entra, отправляющего идентификатор объекта групп, которым назначается пользователь в утверждении группы маркера доступа.

  6. На странице регистрации приложения выберите "Обзор " на панели навигации, чтобы открыть экран обзора приложения.

  7. Выберите гиперссылку с именем приложения в управляемом приложении в локальном каталоге. Этот заголовок поля может быть усечен , например Managed application in .... При выборе этой ссылки перейдите на страницу обзора корпоративных приложений, связанную с субъектом-службой приложения в клиенте, где вы создали его. Вы можете вернуться на страницу регистрации приложения с помощью кнопки "Назад" браузера.

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

  9. Выберите Добавить пользователя.

  10. Выберите пользователя и группы на результирующем экране.

  11. Выберите группы, которые нужно назначить этому приложению.

  12. Выберите "Выбрать ", чтобы завершить выбор групп.

  13. Нажмите кнопку " Назначить" , чтобы завершить процесс назначения группы.

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

  14. Выберите "Свойства " на панели навигации, чтобы открыть страницу, в которую перечислены основные свойства приложения. Задайте обязательное назначение пользователя? Флаг "Да".

Внимание

Если необходимо задать назначение пользователей?Идентификатор Microsoft Entra ID проверка, которые только пользователи, назначенные приложению в области "Пользователи и группы", могут войти в приложение. Вы можете назначить пользователей напрямую или назначить группы безопасности, к которым они относятся.

Настройка приложения (java-servlet-webapp-groups) для распознавания идентификаторов групп

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

Внимание

На странице конфигурации токенов, если выбран любой параметр, отличный от groupID, например DNSDomain\sAMAccountName, следует ввести имя группы в следующих шагах, например, contoso.com\Test Group вместо идентификатора объекта:

  1. Откройте файл ./src/main/resources/authentication.properties.

  2. Найдите строку {enter-your-admins-group-id-here} и замените существующее значение идентификатором GroupAdmin объекта группы, скопированной из портал Azure. Удалите фигурные скобки из значения заполнителя.

  3. Найдите строку {enter-your-users-group-id-here} и замените существующее значение идентификатором GroupMember объекта группы, скопированной из портал Azure. Удалите фигурные скобки из значения заполнителя.

Сборка примера

Чтобы создать пример с помощью Maven, перейдите в каталог, содержащий файл pom.xml для примера, а затем выполните следующую команду:

mvn clean package

Эта команда создает WAR-файл , который можно запускать на различных серверах приложений.

Развертывание примера

В этих инструкциях предполагается, что вы установили WebLogic и настроили некоторый домен сервера.

Перед развертыванием в WebLogic выполните следующие действия, чтобы внести некоторые изменения конфигурации в сам пример, а затем выполнить сборку или перестроить пакет:

  1. В примере найдите файл application.properties или authentication.properties , где вы настроили идентификатор клиента, клиент, URL-адрес перенаправления и т. д.

  2. В этом файле измените ссылки на localhost:8080localhost:8443 URL-адрес и порт, на который выполняется WebLogic, в котором по умолчанию должно быть localhost:7001.

  3. Кроме того, необходимо внести те же изменения в регистрацию приложения Azure, где вы задали его в портал Azure в качестве значения URI перенаправления на вкладке "Проверка подлинности".

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

  1. Запустите сервер WebLogic с DOMAIN_NAME\bin\startWebLogic.cmd.

  2. Перейдите в веб-консоль WebLogic в браузере http://localhost:7001/console.

  3. Перейдите к развертываниям структуры>домена, выберите "Установить", выберите "Отправить файлы", а затем найдите war-файл, созданный с помощью Maven.

  4. Выберите "Установить это развертывание в качестве приложения", нажмите кнопку "Далее", выберите "Готово" и нажмите кнопку "Сохранить".

  5. Большинство параметров по умолчанию должны быть хорошо, за исключением того, что вы должны присвоить приложению имя для сопоставления URI перенаправления, заданного в примере конфигурации или регистрации приложений Azure. То есть, если универсальный код ресурса (URI перенаправления) имеет значение http://localhost:7001/msal4j-servlet-auth, то следует присвоить приложению msal4j-servlet-authимя.

  6. Вернитесь к развертываниям структуры>домена и запустите приложение.

  7. После запуска приложения перейдите http://localhost:7001/<application-name>/к приложению и сможете получить доступ к приложению.

Анализ примера

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

  1. Обратите внимание, что состояние входа или выхода отображается в центре экрана.
  2. Нажмите кнопку с учетом контекста в углу. Эта кнопка считывает вход при первом запуске приложения.
  3. На следующей странице следуйте инструкциям и войдите с учетной записью в клиенте идентификатора Microsoft Entra ID.
  4. На экране согласия обратите внимание на запрашиваемые область.
  5. Обратите внимание, что кнопка с учетом контекста теперь говорит выход и отображает имя пользователя.
  6. Выберите сведения о маркере идентификатора, чтобы просмотреть некоторые декодированные утверждения маркера идентификатора.
  7. Выберите группы , чтобы просмотреть все сведения о членстве в группах безопасности для пользователя, вошедшего в систему.
  8. Выберите Администратор только или обычный пользователь, чтобы получить доступ к защищенным конечным точкам групп.
    • Если пользователь вошел в GroupAdmin группу, пользователь может ввести обе страницы.
    • Если вход пользователя находится в GroupMember группе, пользователь может ввести только страницу "Обычный пользователь ".
    • Если пользователь, вошедшего в систему, не входит в группу, пользователь не может получить доступ к двум страницам.
  9. Нажмите кнопку в углу, чтобы выйти из нее.
  10. После выхода выберите "Сведения о маркере идентификатора", чтобы убедиться, что приложение отображает ошибку 401: unauthorized вместо утверждений маркера идентификатора, если пользователь не авторизован.

Примечания о коде

В этом примере используется MSAL для Java (MSAL4J) для входа пользователя и получения маркера идентификатора, который может содержать утверждение групп. Если в маркере идентификатора слишком много групп для выбросов, в примере используется пакет SDK Microsoft Graph для Java для получения данных о членстве в группах из Microsoft Graph. В зависимости от групп, к которому принадлежит пользователь, пользователь, вошедшего в систему, может получить доступ либо ни к одному, ни к одному или обоим защищенным страницам, Admins Only а также Regular Users.

Если вы хотите реплика использовать этот пример поведения, необходимо добавить пакет SDK MSAL4J и Microsoft Graph в проекты с помощью Maven. Вы можете скопировать файл pom.xml и содержимое вспомогательных папок и папок authservlets в папке src/main/java/com/microsoft/azuresamples/msal4j. Вам также нужен файл authentication.properties . Эти классы и файлы содержат универсальный код, который можно использовать в широком массиве приложений. Вы также можете скопировать остальную часть примера, но другие классы и файлы создаются специально для решения задачи этого примера.

Содержимое

В следующей таблице показано содержимое папки примера проекта:

Файл или папка Description
AppCreationScripts/ Скрипты для автоматической настройки регистрации приложений идентификатора Microsoft Entra.
src/main/java/com/microsoft/azuresamples/msal4j/groupswebapp/ Этот каталог содержит классы, определяющие серверную бизнес-логику приложения.
src/main/java/com/microsoft/azuresamples/msal4j/authservlets/ Этот каталог содержит классы, используемые для входа и выхода конечных точек.
____Servlet.java Все доступные конечные точки определяются в классах .java, заканчивающиеся ____Servlet.java.
src/main/java/com/microsoft/azuresamples/msal4j/helpers/ Вспомогательные классы для проверки подлинности.
AuthenticationFilter.java Перенаправляет запросы без проверки подлинности на защищенные конечные точки на страницу 401.
src/main/resources/authentication.properties Идентификатор и конфигурация программы Microsoft Entra.
src/main/webapp/ Этот каталог содержит шаблоны JSP пользовательского интерфейса
CHANGELOG.md Список изменений в примере.
CONTRIBUTING.md Рекомендации по участию в образце.
ЛИЦЕНЗИИ Лицензия для примера.

Обработка утверждения групп в токенах, включая обработку перебора

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

Утверждение групп

Идентификатор объекта групп безопасности, вошедшего в систему пользователя, возвращается в утверждении группы маркера, показанном в следующем примере:

{
  ...
  "groups": [
    "0bbe91cc-b69e-414d-85a6-a043d6752215",
    "48931dac-3736-45e7-83e8-015e6dfd6f7c",]
  ...
}

Утверждение переполнения групп

Чтобы размер токена не превышал пределы размера заголовка HTTP, платформа удостоверений Майкрософт ограничивает количество идентификаторов объектов, которые он включает в утверждение групп.

Ограничение превышения составляет 150 для токенов SAML, 200 для токенов JWT и 6 для приложений с одной страницей. Если пользователь является членом нескольких групп, чем превышение, платформа удостоверений Майкрософт не выдает идентификаторы групп в утверждениях групп в маркере. Вместо этого он включает в себя утверждение перебора в маркере, указывающее приложению, чтобы запросить API Microsoft Graph для получения членства в группе пользователя, как показано в следующем примере:

{
  ...
  "_claim_names": {
    "groups": "src1"
    },
    {
   "_claim_sources": {
    "src1": {
        "endpoint":"[Graph Url to get this user's group membership from]"
        }
    }
  ...
}

Создание сценария избыточности в этом примере для тестирования

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

  1. Вы можете использовать файл BulkCreateGroups.ps1 , предоставленный в папке AppCreationScripts , чтобы создать большое количество групп и назначить им пользователей. Этот файл помогает протестировать сценарии перебора во время разработки. Не забудьте изменить предоставленные пользователем objectId в скрипте BulkCreateGroups.ps1 .

  2. При выполнении этого примера и превышения времени вы увидите _claim_names на домашней странице после входа пользователя.

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

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

    1. Проверьте утверждение _claim_names с одним из значений групп. Это означает превышение.
    2. При обнаружении вызовите конечную точку, указанную в _claim_sources наборе групп пользователей.
    3. Если ни один из них не найден, просмотрите утверждение групп для групп пользователей.

Примечание.

Для обработки переполнения требуется вызов Microsoft Graph для чтения членства в группе пользователя, поэтому приложение должно иметь разрешение GroupMember.Read.All для успешной выполнения функции getMemberObjects.

Дополнительные сведения о программировании для Microsoft Graph см. в видеоролике Общие сведения о Microsoft Graph для разработчиков.

ConfidentialClientApplication

ConfidentialClientApplication Экземпляр создается в файле AuthHelper.java, как показано в следующем примере. Этот объект помогает создать URL-адрес авторизации Microsoft Entra, а также помогает обмениваться маркером проверки подлинности для маркера доступа.

// getConfidentialClientInstance method
IClientSecret secret = ClientCredentialFactory.createFromSecret(SECRET);
confClientInstance = ConfidentialClientApplication
                      .builder(CLIENT_ID, secret)
                      .authority(AUTHORITY)
                      .build();

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

  • Идентификатор клиента приложения.
  • Секрет клиента, который является обязательным для конфиденциальных клиентских приложений.
  • Центр идентификатора Microsoft Entra, который включает идентификатор клиента Microsoft Entra.

В этом примере эти значения считываются из файла authentication.properties с помощью средства чтения свойств в файле Config.java .

Пошаговое руководство

Ниже приведены пошаговые инструкции по функциональным возможностям приложения:

  1. Первым шагом процесса входа является отправка запроса /authorize в конечную точку для клиента Идентификатора Microsoft Entra. Экземпляр MSAL4J ConfidentialClientApplication используется для создания URL-адреса запроса авторизации. Приложение перенаправляет браузер на этот URL-адрес, где пользователь входит в систему.

    final ConfidentialClientApplication client = getConfidentialClientInstance();
    AuthorizationRequestUrlParameters parameters = AuthorizationRequestUrlParameters.builder(Config.REDIRECT_URI, Collections.singleton(Config.SCOPES))
            .responseMode(ResponseMode.QUERY).prompt(Prompt.SELECT_ACCOUNT).state(state).nonce(nonce).build();
    
    final String authorizeUrl = client.getAuthorizationRequestUrl(parameters).toString();
    contextAdapter.redirectUser(authorizeUrl);
    

    В следующем списке описываются функции этого кода:

    • AuthorizationRequestUrlParameters: параметры, которые должны быть заданы для сборки AuthorizationRequestUrl.
    • REDIRECT_URI: где Microsoft Entra перенаправляет браузер вместе с кодом проверки подлинности после сбора учетных данных пользователя. Он должен соответствовать URI перенаправления в регистрации приложения идентификатора Записи Майкрософт в портал Azure.
    • SCOPES: области — это разрешения, запрашиваемые приложением.
      • Как правило, три область openid profile offline_access достаточно для получения ответа маркера идентификатора.
      • Полный список область, запрошенных приложением, можно найти в файле authentication.properties. Вы можете добавить дополнительные область, например User.Read и т. д.
  2. Пользователь предоставляет запрос на вход с помощью идентификатора Microsoft Entra. Если попытка входа выполнена успешно, браузер пользователя перенаправляется в конечную точку перенаправления приложения. Допустимый запрос к этой конечной точке содержит код авторизации.

  3. Затем ConfidentialClientApplication экземпляр обменивается этим кодом авторизации для маркера идентификатора и маркера доступа из идентификатора Microsoft Entra ID.

    // First, validate the state, then parse any error codes in response, then extract the authCode. Then:
    // build the auth code params:
    final AuthorizationCodeParameters authParams = AuthorizationCodeParameters
            .builder(authCode, new URI(Config.REDIRECT_URI)).scopes(Collections.singleton(Config.SCOPES)).build();
    
    // Get a client instance and leverage it to acquire the token:
    final ConfidentialClientApplication client = AuthHelper.getConfidentialClientInstance();
    final IAuthenticationResult result = client.acquireToken(authParams).get();
    

    В следующем списке описываются функции этого кода:

    • AuthorizationCodeParameters: параметры, которые необходимо задать для обмена кодом авторизации для идентификатора и (или) маркера доступа.
    • authCode: код авторизации, полученный в конечной точке перенаправления.
    • REDIRECT_URI: URI перенаправления, используемый на предыдущем шаге, должен быть передан еще раз.
    • SCOPES: снова необходимо передать область, используемые на предыдущем шаге.
  4. При успешном выполнении acquireToken извлекаются утверждения токена. Если проверка неисключения проходит, результаты помещаются в context экземпляр сеанса IdentityContextData и сохраняются в сеансе. Затем приложение может создать экземпляр IdentityContextData сеанса путем экземпляра IdentityContextAdapterServlet , когда ему требуется доступ, как показано в следующем коде:

    // parse IdToken claims from the IAuthenticationResult:
    // (the next step - validateNonce - requires parsed claims)
    context.setIdTokenClaims(result.idToken());
    
    // if nonce is invalid, stop immediately! this could be a token replay!
    // if validation fails, throws exception and cancels auth:
    validateNonce(context);
    
    // set user to authenticated:
    context.setAuthResult(result, client.tokenCache().serialize());
    
    // handle groups overage if it has occurred.
    handleGroupsOverage(contextAdapter);
    
  5. После предыдущего IdentityContextDataшага можно извлечь членство в группах, вызвав context.getGroups() экземпляр.

  6. Если пользователь является членом слишком много групп - более 200 - вызов context.getGroups() может быть пустым, если это не было для вызова handleGroupsOverage(). Между тем, возвращаетсяtrue, сигнализирует о том, context.getGroupsOverage() что произошло превышение ресурсов, и что получение полного списка групп требует вызова Microsoft Graph. См. handleGroupsOverage() метод в AuthHelper.java , чтобы узнать, как это приложение используется context.setGroups() при перебое.

Защита маршрутов

Ознакомьтесь с AuthenticationFilter.java , чтобы узнать, как пример приложения фильтрует доступ к маршрутам. В файле app.protect.authenticated authentication.properties свойство содержит разделенные запятыми маршруты, к которым могут получить доступ только прошедшие проверку подлинности пользователи, как показано в следующем примере:

# for example, /token_details requires any user to be signed in and does not require special groups claim
app.protect.authenticated=/token_details

Все маршруты, перечисленные в наборах app.protect.groups правил, разделенных запятыми, также отключены для пользователей, прошедших проверку подлинности, как показано в следующем примере. Однако эти маршруты также содержат разделенный пробелами список членства в группах. Только пользователи, принадлежащие по крайней мере одной из соответствующих групп, могут получить доступ к этим маршрутам после проверки подлинности.

# define short names for group IDs here for the app. This is useful in the next property (app.protect.groups).
# EXCLUDE the curly braces, they are in this file only as delimiters.
# example:
# app.groups=groupA abcdef-qrstuvw-xyz groupB abcdef-qrstuv-wxyz
app.groups=admin {enter-your-admins-group-id-here}, user {enter-your-users-group-id-here}

# A route and its corresponding group(s) that can view it, <space-separated>; the start of the next route & its group(s) is delimited by a <comma-and-space-separator>
# this says: /admins_only can be accessed by admin group, /regular_user can be accessed by admin group and user group
app.protect.groups=/admin_only admin, /regular_user admin user

Области

Области сообщают Microsoft Entra ID уровень доступа, который запрашивает приложение.

На основе запрошенных область идентификатор Microsoft Entra id представляет диалог согласия для пользователя при входе. Если пользователь дает согласие на одно или несколько область и получает маркер, то область,предоставленные согласием, кодируются в результирующий access_tokenкод.

Сведения о область, запрошенных приложением, см. в разделе authentication.properties. По умолчанию приложение задает значение GroupMember.Read.Allобласть s. Этот конкретный API Microsoft Graph область требуется, если приложению необходимо вызвать Graph для получения членства в группах пользователя.

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

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

Развертывание приложений Java WebLogic в WebLogic в Azure Виртуальные машины