REST客户端的自定义身份验证

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

我们正在寻找一种方法,其中MarkLogic中有服务帐户,但没有为所有实际用户提供帐户。 在这种情况下,我们将使用自定义身份验证令牌JSWT,然后通过xdmp:login将调用用户提升为适当的角色。

如果我们使用自己的模块重写器创建一个自定义HTTP服务器,那就很好。 如果我们要利用已经构建的REST API,则是唯一一种从REST重写器派发到的每个XQuery模块周围创建包装的唯一选择,以便在执行其余操作之前调用xdmp:login流api api工作流程? 我没有看到使用增强的HTTP重写器配置以任何方式在调度流之前运行任意XQuery代码的任何方式。

这是一个可行的想法,还是一个坏主意?

rest marklogic marklogic-8
2个回答
1
投票

REST API的最佳实践是使用中间层。 将REST API直接暴露给最终用户类似于使用ODBC连接进行操作-通常您不会这样做。

我的建议是建立一个中间层并使用该中间层来收集凭据,然后根据需要登录。


0
投票

您可以修改现成的REST API端点以执行xdmp:login,但是当然在执行升级和部署应用程序时会增加复杂性。 这确实是最坏的情况。

您是否可以将所有用户映射到一个较小的ML用户集合(也许几十个)? 然后,中间层可以执行类似于xdmp:login的操作-它可以查看用户的个人资料并确定与哪个ML用户连接到ML。 这并不像xdmp:login那样灵活,它可以让您选择所需的任何角色,而无需创建用户作为其所有者,但是它可以解决问题。

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