Okta 会话超时不适用于 Spring Boot OAuth2/OIDC - 用户保持登录状态

问题描述 投票:0回答:1

我正在将 Okta 与我的 Spring Boot 应用程序集成,以使用 OAuth2 登录和 OIDC 进行用户身份验证。我在 Okta 中设置了以下会话策略Okta Configuration

期望的是,如果用户在浏览器中保持非活动状态一段时间 1分钟后,他们应该自动注销并提示登录 通过 Okta 再次进入。然而,这并没有按预期发生。甚至 1 分钟不活动后,用户仍保持登录状态。

春季启动代码

@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
    http
        .oauth2ResourceServer(oauth2 -> oauth2
            .jwt(Customizer.withDefaults()) 
        )
        .authorizeHttpRequests(authorizeRequests ->
            authorizeRequests
                .anyRequest().authenticated()
        )
        .oauth2Login(oauth2 ->
            oauth2
                .userInfoEndpoint(userInfo ->
                    userInfo
                        .oidcUserService(oidcUserService()) 
                )
        );

    return http.build();
}

控制器

@RestController
public class UserController {

  @GetMapping("/")
  public String getToken(@RegisteredOAuth2AuthorizedClient OAuth2AuthorizedClient authorizedClient) {
    Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
    System.out.println("Authorities: " + authentication.getAuthorities());
    return "Authorities: " + authentication.getAuthorities();
  }

  @PreAuthorize("hasAuthority('PAD')")
  @GetMapping("/user")
  public String getUser() {
    return "Hello World";
  }

  @PreAuthorize("hasAuthority('CAD')")
  @GetMapping("/usertest")
  public String getUserTest() {
    return "Hello World";
  }

我的 Spring Boot 配置中是否缺少某些内容来强制 Okta 的会话超时? Spring Boot 是否应该以不同的方式管理会话,还是完全由 Okta 处理?如何确保用户在 1 分钟不活动后强制重新登录?

将 Spring Boot 应用程序配置为仅依赖 Okta 会话超时设置来使会话失效

spring-boot spring-security single-sign-on okta
1个回答
0
投票

设置超时时间

配置API调用超时时间 您可以指定您的API调用超时时间 org 在超时发生之前等待 API 调用完成。这 最小设置为 30 秒。您选择的超时值已应用 发送到 SCIM 服务器的所有请求(GET、PUT 和 POST)。

  1. 确认您有 SCIM 连接器。请参阅连接到 SCIM 连接器。

  2. 在管理控制台中,转到应用程序应用程序。

  3. 输入 搜索字段中您的本地应用程序集成的名称。

  4. 单击应用程序集成名称,然后单击“配置”选项卡。

  5. 在 连接器配置部分,单击编辑。

  6. 在API超时中 通话列表,选择超时时间。

  7. 单击“保存”。

来源:https://help.okta.com/en-us/content/topics/provisioning/opp/opp-api-timeout.htm

相关一点:刷新令牌https://docs.spring.io/spring-security/reference/reactive/oauth2/client/authorization-grants.html#_customizing_the_webclient_2

© www.soinside.com 2019 - 2024. All rights reserved.