如何将EnableOAuth2Sso与Azure AD Graph API结合使用以限制基于AD组的访问?

时间:2019-01-30 17:49:27

标签: spring-boot single-sign-on spring-security-oauth2 azure-ad-graph-api

我正在尝试使用@EnableOAuth2Sso和Azure AD Graph API和AD组来限制对Spring Boot 2应用程序的访问。我正在处理连接到公司AD的Azure。我在Azure中没有太多控制权,但是在公司AD中也可以。

问题

  1. 我该如何拒绝不属于某些广告组的任何人?
  2. 对于某些路线,我想进一步限制哪个组有权击中终点。如何进一步限制每个端点的访问权限?

在我的应用程序中,我可以说我的应用程序注册可以访问API的Graph API成员,并且可以列出我的所有用户组。

https://graph.microsoft.com/v1.0/users/[USERNAME]/memberOf

我还可以看到Principal列出了我的用户具有ROLE_USER的权限,但是我在广告组上找不到任何内容。我相信ROLE_USER是来自Azure(我几乎没有控制权)的东西,或者是spring默认使用的东西,并且未在公司AD中设置。

我的安全配置如下。不知道如何将广告组应用到它。使用.hasRole("Group-Name")似乎无效,但使用.hasRole("USER")则可行。

@Override
protected void configure(HttpSecurity http) throws Exception {
    http
            .antMatcher("/**")
              .authorizeRequests()
              .antMatchers("/login**")
              .permitAll()
              .anyRequest()
              .hasRole("Group-Name");
}

0 个答案:

没有答案