Защита приложений Java JBoss EAP с помощью ролей и утверждений ролей
В этой статье показано приложение Java JBoss EAP, которое использует OpenID Connect для входа пользователей и ролей приложений Идентификатора Майкрософт (роли приложения) для авторизации.
Это приложение реализует управление доступом на основе ролей (RBAC) с помощью ролей приложения Идентификатора Майкрософт и функции утверждений ролей. Другим подходом является использование групп идентификаторов Microsoft Entra и утверждений групп. Группы идентификаторов и роли приложений Microsoft Entra не являются взаимоисключающими. Их можно использовать для точного управления доступом.
Вы также можете использовать RBAC с ролями приложений и утверждениями ролей для безопасного применения политик авторизации.
Видео, охватывающее этот сценарий и этот пример, см. в статье "Реализация авторизации в приложениях с помощью ролей приложений, групп безопасности, областей и ролей каталога".
Дополнительные сведения о работе протоколов в этом сценарии и других сценариях см. в статье "Проверка подлинности и авторизация".
Это приложение использует MSAL для Java (MSAL4J) для входа пользователя и получения маркера идентификатора из идентификатора Microsoft Entra ID.
Этот пример сначала использует MSAL для Java (MSAL4J) для входа пользователя. На домашней странице отображается параметр для просмотра утверждений в маркерах идентификатора пользователя. Это приложение также позволяет пользователям просматривать привилегированную страницу администратора или обычную страницу пользователя в зависимости от роли приложения, к которым они были назначены. Идея заключается в том, чтобы предоставить пример того, как в приложении доступ к определенным функциям или страницам ограничен подмножествами пользователей в зависимости от того, к какой роли они относятся.
Такая авторизация реализуется с помощью RBAC. С помощью RBAC администратор предоставляет разрешения ролям, а не отдельным пользователям или группам. Затем администратор может назначать роли разным пользователям и группам для управления доступом к определенному содержимому и функциям.
В этом примере приложения определены следующие две роли приложения:
PrivilegedAdmin
: авторизован для доступа только к администраторам и страницам обычных пользователей.RegularUser
: авторизовано для доступа к странице "Обычные пользователи ".
Эти роли приложения определяются на портале Azure в манифесте регистрации приложения. Когда пользователь входит в приложение, идентификатор Microsoft Entra выдает утверждение ролей для каждой роли, предоставленной отдельно пользователю в виде членства в роли.
Вы можете назначить пользователей и группы ролям с помощью портал Azure.
Примечание.
Утверждения роли не присутствуют для гостевых пользователей в клиенте, если https://login.microsoftonline.com/common/
конечная точка используется в качестве центра входа пользователей. Необходимо войти в клиентную конечную точку, например https://login.microsoftonline.com/tenantid
.
Необходимые компоненты
- JDK версии 8 или более поздней
- Maven 3
- Клиент идентификатора Microsoft Entra. Дополнительные сведения см. в разделе "Как получить клиент идентификатора Microsoft Entra".
- Учетная запись пользователя в собственном клиенте Идентификатора Microsoft Entra, если вы хотите работать только с учетными записями в каталоге организации , то есть в режиме одного клиента. Если вы еще не создали учетную запись пользователя в клиенте, перед тем как продолжить, сделайте это. Дополнительные сведения см. в статье "Создание, приглашение и удаление пользователей".
Рекомендации
- Некоторые знания о Java / Jakarta Servlets.
- Некоторые знания о терминале Linux/OSX.
- jwt.ms для проверки маркеров.
- Fiddler для мониторинга активности сети и устранения неполадок.
- Следуйте блогу по идентификатору Microsoft Entra ID, чтобы оставаться в курсе последних разработок.
Настройка примера
В следующих разделах показано, как настроить пример приложения.
Клонирование или скачивание примера репозитория
Чтобы клонировать пример, откройте окно Bash и выполните следующую команду:
git clone https://github.com/Azure-Samples/ms-identity-msal-java-samples.git
cd 3-java-servlet-web-app/3-Authorization-II/roles
Кроме того, перейдите к репозиторию ms-identity-msal-java-samples , а затем скачайте его в виде файла .zip и извлеките его на жесткий диск.
Внимание
Чтобы избежать ограничений длины пути к файлам в Windows, клонируйте или извлеките репозиторий в каталог рядом с корнем жесткого диска.
Регистрация примера приложения в клиенте Идентификатора Microsoft Entra
В этом примере есть один проект. В следующих разделах показано, как зарегистрировать приложение с помощью портал Azure.
Выберите клиент Идентификатора Microsoft Entra, в котором вы хотите создать приложения
Чтобы выбрать клиент, выполните следующие действия.
Войдите на портал Azure.
Если ваша учетная запись присутствует в нескольких клиентах идентификатора Microsoft Entra ID, выберите профиль в углу портал Azure, а затем выберите "Переключить каталог", чтобы изменить сеанс на нужный клиент Идентификатора Microsoft Entra.
Регистрация приложения (java-servlet-webapp-role)
Сначала зарегистрируйте новое приложение в портал Azure, следуя инструкциям в кратком руководстве. Регистрация приложения с помощью платформа удостоверений Майкрософт.
Затем выполните следующие действия, чтобы завершить регистрацию:
Перейдите на страницу Регистрация приложений Платформы удостоверений Майкрософт для разработчиков.
Выберите Создать регистрацию.
На появившемся экране "Регистрация приложения" введите следующие сведения о регистрации приложения:
В разделе "Имя" введите понятное имя приложения для отображения пользователям приложения, например
java-servlet-webapp-roles
.В разделе "Поддерживаемые типы учетных записей" выберите один из следующих вариантов:
- Выберите учетные записи в этом каталоге организации только в том случае, если вы создаете приложение только для пользователей в клиенте, то есть однотенантное приложение.
В разделе URI перенаправления выберите Веб-файл в поле со списком и введите следующий URI перенаправления:
http://localhost:8080/msal4j-servlet-roles/auth/redirect
Выберите Зарегистрировать, чтобы создать приложение.
На странице регистрации приложения найдите и скопируйте значение идентификатора приложения (клиента), которое будет использоваться позже. Это значение используется в файле конфигурации или файлах приложения.
Выберите Сохранить, чтобы сохранить изменения.
На странице регистрации приложения выберите сертификаты и секреты на панели навигации, чтобы открыть страницу, где можно создать секреты и отправить сертификаты.
В разделе Секреты клиента выберите Создать секрет клиента.
Введите описание, например секрет приложения.
Выберите одну из доступных продолжительности: в течение 1 года, за 2 года или никогда не истекает.
Выберите Добавить. Отображается созданное значение.
Скопируйте и сохраните созданное значение для использования в последующих шагах. Это значение требуется для файлов конфигурации кода. Это значение не отображается снова, и его нельзя получить другими средствами. Таким образом, не забудьте сохранить его из портал Azure перед переходом на любой другой экран или область.
Определение ролей приложения
Чтобы определить роли приложения, выполните следующие действия.
По-прежнему на той же регистрации приложения выберите роли приложений на панели навигации.
Выберите " Создать роль приложения", а затем введите следующие значения:
- Для отображаемого имени введите подходящее имя, например PrivilegedAdmin.
- Для типов разрешенных элементов выберите "Пользователь".
- Для параметра Value введите PrivilegedAdmin.
- В поле "Описание" введите PrivilegedAdmins, который может просмотреть страницу администрирования.
Выберите " Создать роль приложения", а затем введите следующие значения:
- В поле Отображаемое имя введите подходящее имя, например RegularUser.
- Для типов разрешенных элементов выберите "Пользователь".
- Для параметра Value введите RegularUser.
- В поле "Описание" введите RegularUsers, которые могут просматривать страницу пользователя.
Щелкните Применить, чтобы сохранить изменения.
Назначение пользователям ролей приложения
Чтобы добавить пользователей в роль приложения, определенную ранее, следуйте инструкциям ниже. Назначьте пользователей и группы ролям.
Настройка приложения (java-servlet-webapp-role) для использования регистрации приложения
Чтобы настроить приложение, выполните следующие действия.
Примечание.
В следующих шагах ClientID
выполняется то же самое, что Application ID
и AppId
.
Откройте проект в интегрированной среде разработки.
Найдите строку
{enter-your-tenant-id-here}
. Замените существующее значение идентификатором клиента Идентификатора Microsoft Entra.Найдите строку
{enter-your-client-id-here}
и замените существующее значение идентификатором приложения илиclientId
java-servlet-webapp-call-graph
приложением, скопированным из портал Azure.Найдите строку
{enter-your-client-secret-here}
и замените существующее значение значением, сохраненным во время созданияjava-servlet-webapp-roles
приложения, в портал Azure.app.roles
Найдите свойство и убедитесь, что для параметра заданоapp.roles=admin PrivilegedAdmin, user RegularUser
значение или замените имена определенных ролей.
Сборка примера
Чтобы создать пример с помощью Maven, перейдите в каталог, содержащий файл pom.xml для примера, а затем выполните следующую команду:
mvn clean package
Эта команда создает WAR-файл , который можно запустить на различных серверах приложений.
Запуск примера
В следующих разделах показано, как развернуть пример в службе приложение Azure.
Необходимые компоненты
Подключаемый модуль Maven для приложений службы приложение Azure
Если Maven не является вашим предпочтительным средством разработки, ознакомьтесь со следующими руководствами, которые используют другие инструменты:
Настройка подключаемого модуля Maven
Процесс развертывания для службы приложение Azure использует учетные данные Azure из Azure CLI автоматически. Если Azure CLI не установлен локально, подключаемый модуль Maven проходит проверку подлинности с помощью OAuth или входа устройства. Дополнительные сведения см. в статье о проверке подлинности с помощью подключаемых модулей Maven.
Чтобы настроить подключаемый модуль, выполните следующие действия.
Выполните команду Maven, показанную рядом с настройкой развертывания. Эта команда помогает настроить Служба приложений операционную систему, версию Java и версию Tomcat.
mvn com.microsoft.azure:azure-webapp-maven-plugin:2.12.0:config
Для создания конфигурации запуска нажмите клавишу Y, а затем нажмите клавишу ВВОД.
Для определения значения ос нажмите клавишу 2 для Linux, а затем нажмите клавишу ВВОД.
Для определения значения javaVersion нажмите клавишу 2 для Java 11, а затем нажмите клавишу ВВОД.
Для определения значения для webContainer нажмите клавишу 1 для JBosseap7, а затем нажмите клавишу ВВОД.
Чтобы определить значение для ценообразования, нажмите клавишу ВВОД, чтобы выбрать уровень P1v3 по умолчанию.
Для подтверждения нажмите клавишу Y, а затем нажмите клавишу ВВОД.
В следующем примере показаны выходные данные процесса развертывания:
Please confirm webapp properties
AppName : msal4j-servlet-auth-1707220080695
ResourceGroup : msal4j-servlet-auth-1707220080695-rg
Region : centralus
PricingTier : P1v3
OS : Linux
Java Version: Java 11
Web server stack: JBosseap 7
Deploy to slot : false
Confirm (Y/N) [Y]:
[INFO] Saving configuration to pom.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 26.196 s
[INFO] Finished at: 2024-02-06T11:48:16Z
[INFO] ------------------------------------------------------------------------
После подтверждения выбора подключаемый модуль добавляет конфигурацию подключаемого модуля и необходимые параметры в файл pom.xml проекта, чтобы настроить приложение для запуска в службе приложение Azure.
Соответствующая часть файла pom.xml должна выглядеть примерно так:
<build>
<plugins>
<plugin>
<groupId>com.microsoft.azure</groupId>
<artifactId>>azure-webapp-maven-plugin</artifactId>
<version>x.xx.x</version>
<configuration>
<schemaVersion>v2</schemaVersion>
<resourceGroup>your-resourcegroup-name</resourceGroup>
<appName>your-app-name</appName>
...
</configuration>
</plugin>
</plugins>
</build>
Конфигурации для Служба приложений можно изменить непосредственно в pom.xml. Некоторые распространенные конфигурации перечислены в следующей таблице:
Свойство | Обязательное поле | Описание | Версия |
---|---|---|---|
schemaVersion |
false | Версия схемы конфигурации. Поддерживаемые значения: v1 и v2 . |
1.5.2 |
subscriptionId |
false | Идентификатор подписки. | Версия 0.1.0 и выше |
resourceGroup |
true | Группа ресурсов Azure для приложения. | Версия 0.1.0 и выше |
appName |
true | Имя приложения. | Версия 0.1.0 и выше |
region |
false | Регион, в котором размещается приложение. Значение по умолчанию — centralus . Допустимые регионы см. в разделе "Поддерживаемые регионы". |
Версия 0.1.0 и выше |
pricingTier |
false | Ценовая категория приложения. Значение по умолчанию — P1v2 для рабочей нагрузки. Рекомендуемое минимальное значение для разработки и тестирования Java.B2 Дополнительные сведения см. на странице цен на службу приложений. |
Версия 0.1.0 и выше |
runtime |
false | Конфигурация среды выполнения. Дополнительные сведения см. в разделе Дополнительные сведения о конфигурации. | Версия 0.1.0 и выше |
deployment |
false | Конфигурация развертывания. Дополнительные сведения см. в разделе Дополнительные сведения о конфигурации. | Версия 0.1.0 и выше |
Полный список конфигураций см. в справочной документации по подключаемым модулям. Все подключаемые модули Azure Maven используют общий набор конфигураций. Сведения об этих конфигурациях см. в разделе "Общие конфигурации". Сведения о конфигурациях, относящихся к службе приложение Azure, см. в приложении Azure: сведения о конфигурации.
Не забудьте сохранить в стороне appName
и resourceGroup
значения для последующего использования.
Подготовка приложения к развертыванию
При развертывании приложения в Служба приложений URL-адрес перенаправления изменяется на URL-адрес перенаправления развернутого экземпляра приложения. Чтобы изменить эти параметры в файле свойств, выполните следующие действия.
Перейдите к файлу authentication.properties приложения и измените значение
app.homePage
имени домена развернутого приложения, как показано в следующем примере. Например, если вы выбралиexample-domain
имя приложения на предыдущем шаге, необходимо использоватьhttps://example-domain.azurewebsites.net
дляapp.homePage
значения. Убедитесь, что вы также изменили протокол наhttp
https
.# app.homePage is by default set to dev server address and app context path on the server # for apps deployed to azure, use https://your-sub-domain.azurewebsites.net app.homePage=https://<your-app-name>.azurewebsites.net
После сохранения этого файла используйте следующую команду, чтобы перестроить приложение:
mvn clean package
Внимание
В этом же файле authentication.properties у вас есть параметр aad.secret
. Это не рекомендуется развертывать это значение в Служба приложений. Не рекомендуется оставить это значение в коде и потенциально отправить его в репозиторий Git. Чтобы удалить это значение секрета из кода, см. более подробные инструкции в разделе "Развертывание в Служба приложений. Удаление секрета". В этом руководстве добавлены дополнительные шаги для отправки значения секрета в Key Vault и использования ссылок на Key Vault.
Обновление регистрации приложения идентификатора Microsoft Entra
Так как URI перенаправления изменяется в развернутом приложении в службе приложение Azure, необходимо также изменить URI перенаправления в регистрации приложения Идентификатора Microsoft Entra. Чтобы внести это изменение, выполните следующие действия:
Перейдите на страницу Регистрация приложений Платформы удостоверений Майкрософт для разработчиков.
Используйте поле поиска для поиска регистрации приложения, например
java-servlet-webapp-authentication
.Откройте регистрацию приложения, выбрав его имя.
Выберите Проверка подлинности в меню.
В разделе URI веб-перенаправления - выберите "Добавить URI".
Заполните универсальный код ресурса (URI) приложения, добавляя
/auth/redirect
напримерhttps://<your-app-name>.azurewebsites.net/auth/redirect
.Выберите Сохранить.
Развертывание приложения
Теперь вы готовы развернуть приложение в службе приложение Azure. Используйте следующую команду, чтобы убедиться, что вы вошли в среду Azure для выполнения развертывания:
az login
Все конфигурации, готовые к использованию в файле pom.xml , теперь можно использовать следующую команду для развертывания приложения Java в Azure:
mvn package azure-webapp:deploy
После завершения развертывания приложение будет готово http://<your-app-name>.azurewebsites.net/
. Откройте URL-адрес в локальном веб-браузере, где должна появиться начальная страница msal4j-servlet-auth
приложения.
Анализ примера
Чтобы изучить пример, выполните следующие действия.
- Обратите внимание, что состояние входа или выхода отображается в центре экрана.
- Нажмите кнопку с учетом контекста в углу. Эта кнопка считывает вход при первом запуске приложения.
- На следующей странице следуйте инструкциям и войдите с учетной записью в клиенте идентификатора Microsoft Entra ID.
- На экране согласия обратите внимание на запрашиваемые области.
- Обратите внимание, что кнопка с учетом контекста теперь говорит выход и отображает имя пользователя.
- Выберите сведения о маркере идентификатора, чтобы просмотреть некоторые декодированные утверждения маркера идентификатора.
- Выберите "Только администраторы", чтобы просмотреть страницу
/admin_only
. Только пользователи с рольюPrivilegedAdmin
приложения могут просматривать эту страницу. В противном случае отображается сообщение об ошибке авторизации. - Выберите "Обычные пользователи", чтобы просмотреть страницу
/regular_user
. Только пользователи с рольюRegularUser
приложения илиPrivilegedAdmin
могут просматривать эту страницу. В противном случае отображается сообщение об ошибке авторизации. - Нажмите кнопку в углу, чтобы выйти из нее.
Примечания о коде
В этом примере используется MSAL для Java (MSAL4J) для входа пользователя и получения маркера идентификатора, который может содержать утверждение ролей. В зависимости от утверждения ролей пользователь, вошедшего в систему, не может получить доступ ни к одному, одному или обоим защищенным страницам и Admins Only
Regular Users
.
Если вы хотите реплицировать поведение этого примера, можно скопировать файл pom.xml и содержимое вспомогательных и папок authservlets в папке src/main/java/com/microsoft/azuresamples/msal4j. Вам также нужен файл authentication.properties . Эти классы и файлы содержат универсальный код, который можно использовать в широком массиве приложений. Вы также можете скопировать остальную часть примера, но другие классы и файлы создаются специально для решения задачи этого примера.
Содержимое
В следующей таблице показано содержимое папки примера проекта:
Файл или папка | Description |
---|---|
src/main/java/com/microsoft/azuresamples/msal4j/role/ | Этот каталог содержит классы, определяющие серверную бизнес-логику приложения. |
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 | Рекомендации по участию в образце. |
ЛИЦЕНЗИЯ | Лицензия для примера. |
Обработка утверждения ролей в маркере идентификатора
Утверждение ролей маркера включает имена ролей, которым назначен пользователь, выполнившего вход, как показано в следующем примере:
{
...
"roles": [
"Role1",
"Role2",]
...
}
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 .
Пошаговое руководство
Ниже приведены пошаговые инструкции по функциональным возможностям приложения:
Первым шагом процесса входа является отправка запроса
/authorize
в конечную точку для клиента Идентификатора Microsoft Entra. Экземпляр MSAL4JConfidentialClientApplication
используется для создания 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
.
- Как правило, три области
Пользователь предоставляет запрос на вход с помощью идентификатора Microsoft Entra. Если попытка входа выполнена успешно, браузер пользователя перенаправляется в конечную точку перенаправления приложения. Допустимый запрос к этой конечной точке содержит код авторизации.
Затем
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
: области, используемые на предыдущем шаге, должны быть переданы снова.
При успешном выполнении
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());
Защита маршрутов
Сведения о том, как пример приложения фильтрует доступ к маршрутам, см. в AuthenticationFilter.java. В файле app.protect.authenticated
authentication.properties свойство содержит разделенные запятыми маршруты, к которым могут получить доступ только прошедшие проверку подлинности пользователи, как показано в следующем примере:
# for example, /token_details requires any user to be signed in and does not require special roles claim(s)
app.protect.authenticated=/token_details
Все маршруты, перечисленные в наборах app.protect.roles
правил, разделенных запятыми, также отключены для пользователей, прошедших проверку подлинности, как показано в следующем примере. Однако эти маршруты также содержат разделенный пробелами список членства в роли приложения: только пользователи, имеющие по крайней мере одну из соответствующих ролей, могут получить доступ к этим маршрутам после проверки подлинности.
# local short names for app roles - for example, sets admin to mean PrivilegedAdmin (useful for long rule sets defined in the next key, app.protect.roles)
app.roles=admin PrivilegedAdmin, user RegularUser
# A route and its corresponding <space-separated> role(s) that can access it; the start of the next route & its role(s) is delimited by a <comma-and-space-separator>
# this says: /admins_only can be accessed by PrivilegedAdmin, /regular_user can be accessed by PrivilegedAdmin role and the RegularUser role
app.protect.roles=/admin_only admin, /regular_user admin user
Области
Области сообщают Microsoft Entra ID уровень доступа, который запрашивает приложение.
На основе запрошенных областей идентификатор Microsoft Entra представляет диалог согласия для пользователя при входе. Если пользователь дает согласие на одну или несколько областей и получает маркер, в результируемые области кодируются в результирующий access_token
код.
Области, запрошенные приложением, см. в разделе authentication.properties. Эти три области запрашиваются MSAL и предоставляются идентификатором Microsoft Entra ID по умолчанию.
Дополнительные сведения
- Библиотека проверки подлинности Майкрософт (MSAL) для Java
- Платформа удостоверений Майкрософт
- Краткое описание: регистрация приложения на платформе Microsoft Identity
- Общие сведения о согласии приложений с идентификатором Microsoft Entra ID
- Understand user and admin consent (Получение согласия пользователя и администратора)
- Примеры кода MSAL
- Практическое руководство. Добавление ролей приложения в приложение, зарегистрированное в Azure Active Directory, и их получение в токене
- Управление назначением пользователей для приложения в Microsoft Entra ID