REST-API users.list 与 eppn

REST-API users.list with the eppn

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

之前使用 eppn 可以很容易地在 rocket chat 中搜索用户,因为您可以使用 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" 
  }
}

有人知道吗?

谢谢!

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

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

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

但第二个问题是 Rocket.Chat 不允许查询服务参数。 是权限的问题,所以要查询services参数,然后查询eppn参数,必须给User权限。