0

我是 Okta 的新手,如果我的问题不清楚,我深表歉意。

所以我要做的基本上是解析okta生成的JWT token,并提取与之关联的登录用户的组信息。

我的印象是这些信息应该存在于 OidcUser 对象中。我确实在此对象中看到了用户名/电子邮件 ID/令牌有效性等信息。不幸的是,我看不到需要进一步处理的组 ID。

@RequestMapping("/")
    public String hello(@AuthenticationPrincipal OidcUser user){
        StringBuilder sb = new StringBuilder();
        for (Map.Entry<String, Object> entry : user.getClaims().entrySet()) {
            sb.append(entry.getKey() + ":" + entry.getValue().toString());
            sb.append("\n");
        }
        sb.append("|");
        sb.append(user.getClaims());
        return sb.toString();
    }

这是我在 Spring Boot 中的 okta 插件

   okta.oauth2.issuer=https://dev-XXXXXXXX.okta.com/oauth2/default
   okta.oauth2.client-id=XXXXXXXXXX
   okta.oauth2.client-secret=XXXXXXXXXXXX

我想知道我的方法是否正确,以及我还需要做什么才能从 Okta JWT 令牌中提取用户组。

4

1 回答 1

0

要获取用户组,您需要向/userinfo端点发出额外的请求,假设您在通话groups期间请求了范围/authorize

在此处查看指南

不完全是 spring-boot 响应,但了解事情在引擎盖下的工作方式总是有益的

于 2021-08-26T23:59:44.937 回答