Я пытаюсь ограничить доступ к приложению Spring Boot 2, используя @EnableOAuth2Sso
и Azure AD Graph API и группы AD.Я имею дело с Azure, подключенным к корпоративной AD.У меня нет большого контроля над Azure, но я работаю с корпоративной AD.
Вопросы
- Как я могу отказать любому, кто не входит в определенные группы AD?
- Для определенных маршрутов я хотел бы еще больше ограничить, какая группа имеет силу для достижения конечной точки.Как дополнительно ограничить доступ для каждой конечной точки?
В моем приложении я могу сказать, что моя регистрация приложения имеет доступ к API-члену Graph API и может перечислить все группы моего пользователя.
https://graph.microsoft.com/v1.0/users/[USERNAME]/memberOf
Я также вижу, что в Principal
указано, что мой пользователь имеет права доступа ROLE_USER
, но я не могу ничего найти в группах AD.Я считаю, что ROLE_USER
- это что-то из Azure (у меня мало контроля) или что-то, что Spring использует по умолчанию, и оно не задано в корпоративной AD.
Моя конфигурация безопасности приведена ниже.Не уверен, как я применил бы группу AD к этому.Использование .hasRole("Group-Name")
не работает, но использование .hasRole("USER")
делает.
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.antMatcher("/**")
.authorizeRequests()
.antMatchers("/login**")
.permitAll()
.anyRequest()
.hasRole("Group-Name");
}