如何使用Okta的API获取用户所属的所有组?

8
我想同步Okta后面的用户/组到Active Directory。具体来说,我希望在第三方应用程序登录时获取用户所属的所有组。
查看Okta API文档(http://developer.okta.com/docs/api/resources/groups.html),我发现可以通过执行以下操作来实现这一目标(伪代码):
FETCH ALL GROUPS (using List Groups operation)
FOR EACH GROUP
    FETCH A LIST OF USERS (using List Group Members operation)

针对我的需求,这种做法似乎非常低效,但是通过查看文档,我找不到更好的方法。

理想情况下,我想要做的是:

FETCH ALL GROUPS FOR A GIVEN USER ID

有没有办法我能完成这个任务?

非常感谢任何帮助。


1
不确定是否有帮助,但您可以在OKTA的令牌(访问或ID)中添加用户组。因此,在登录时,您将获得带有所有所需信息的ID和ACCESS令牌。 - Mr.P
3个回答

4

3
我认为,这只有使用管理员凭据(okta管理员)登录才能起作用。那普通用户怎么办?(比如我们以普通用户身份登录,想知道该用户属于哪个组?) - Nisfan
@Nisfan 我也遇到了同样的问题。在 Postman 请求中,Groups 能够正常返回,但是当我从浏览器发起 fetch 请求时,Groups 总是以空数组的形式返回。但是如果我给用户赋予 "Okta 管理员" 权限,那么所有他们的 Groups 都会按预期出现在响应中。你解决了这个问题吗? - pstricker
1
@pstricker - 你可以创建一个 api_token 并将其添加到 GET 请求的头部。(参考). 而且你可以从管理员帐户中创建 api_token(参考.) - Nisfan
这是一个更新的链接,用于API。 - StCleezy

1

当用户通过SAML登录应用程序时,也可以获取此列表。

添加一个带有过滤器匹配正则表达式和值.*组属性声明

您将作为XML的一部分获得用户的组。

get user groups okta upon signin


1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接