带有 eppn 的 REST-API users.list

Posted

技术标签:

【中文标题】带有 eppn 的 REST-API users.list【英文标题】:REST-API users.list with the eppn 【发布时间】:2021-04-20 17:34:25 【问题描述】:

由于我们与 Rocket.Chat 进行了一些集成,因此我们确实使用 API 来创建、查询和订阅 Rocket.Chat 的系统用户。 我们使用 SAML 身份验证并使用 eppn 参数。

在与 eppn 进行火箭聊天时很容易搜索用户之前,因为您可以使用 API users.list 查询 eppn。

api/v1/users.list?query="eppn":"eppn-of-user"

我将Rocket.Chat升级到3.9版本后,发现无法使用users.list API查询eppn。

User 的结构发生了变化,现在 eppn 参数是 services.saml 的子参数。 我可以像这样在 MongoDB 中查询 eppn:

coll.find('services.saml.eppn': "user-eepn")

但无法通过 API 查询 eppn:

api/v1/users.list?query='services.saml.eppn': "user-eppn"


  "success": false,
  "error": "Invalid query parameter provided: \"'services.saml.eppn': \"user-eppn\"\" [error-invalid-query]",
  "errorType": "error-invalid-query",
  "details": 
    "helperMethod": "parseJsonQuery" 
  

有人知道吗?

谢谢!

【问题讨论】:

【参考方案1】:

所以大家,我刚刚解决了我的问题,如果有人会遇到同样的问题。

首先对于 EJSON 解析函数,查询必须这样写:

api/v1/users.list?query="services.saml.eppn": "user-eppn"

但第二个问题是 Rocket.Chat 不允许查询 services 参数。 是权限的问题,查询services参数,再查询eppn参数,必须有给User的权限。

【讨论】:

以上是关于带有 eppn 的 REST-API users.list的主要内容,如果未能解决你的问题,请参考以下文章

带有 JWT 的 Spring Security Oauth2 真的是无状态的吗?

错误响应上的 REST-API 不同的内容类型

如何在“Zapier 代码”中编写节点获取(Rest-API)?

REST-API,无效 DELETE 的正确 HTTP 状态代码

如何使用 httppost/rest-api 从 keycloak 获取用户列表

将客户端数据存储在 Angular 中的位置,稍后在 REST-API 中用于获取信息