我很努力地获得我需要的行为,正确设置我的用户权限/特权/角色。未能创建自定义用户权限来限制内容
我使用MarkLogic 8和乐声创建和部署应用程序。
此应用程序有有应仅限于个人用户的内容不同的用户。但他们也参与他们需要合作的项目。
我已经看到了这helpful blog和discussion on github issue 303,但仍无法得到它的权利。
默认乐声应用的用户角色:
<role>
<role-name>${app-role}</role-name>
<description>A role for users of the ${app-name} application</description>
<role-names>
</role-names>
<permissions>
<permission>
<capability>execute</capability>
<role-name>${app-role}</role-name>
</permission>
<permission>
<capability>update</capability>
<role-name>${app-role}</role-name>
</permission>
<permission>
<capability>insert</capability>
<role-name>${app-role}</role-name>
</permission>
<permission>
<capability>read</capability>
<role-name>${app-role}</role-name>
</permission>
</permissions>
<collections>
</collections>
<privileges>
<privilege>
<privilege-name>xdmp:value</privilege-name>
</privilege>
<privilege>
<privilege-name>xdmp:add-response-header</privilege-name>
</privilege>
<privilege>
<privilege-name>xdmp:invoke</privilege-name>
</privilege>
<privilege>
<privilege-name>xdmp:with-namespaces</privilege-name>
</privilege>
</privileges>
</role>
我的自定义角色:
<role>
<role-name>sccss-user</role-name>
<description>sccss default role</description>
<role-names>
<!-- TODO test which roles we really need -->
<!--
<role-name>alert-user</role-name>
<role-name>alert-internal</role-name>
<role-name>rest-admin</role-name>
<role-name>rest-writer-internal</role-name>
<role-name>rest-reader</role-name>
<role-name>network-access</role-name>
<role-name>qconsole-user</role-name>
-->
<!-- cluey app role for rest api access TODO replace with dedicated api user and role
<role-name>${app-role}</role-name>
-->
</role-names>
<permissions>
</permissions>
<collections>
</collections>
<privileges>
<!-- HK -->
<!--
<privilege>
<privilege-name>any-uri</privilege-name>
</privilege>
-->
<privilege>
<privilege-name>devices-uri</privilege-name>
</privilege>
<privilege>
<privilege-name>any-collection</privilege-name>
</privilege>
<!-- to make this role have acces to the REST API-->
<privilege>
<privilege-name>rest-reader</privilege-name>
</privilege>
<privilege>
<privilege-name>rest-writer</privilege-name>
</privilege>
<!-- TODO test this
<privilege>
<privilege-name>xdmp:value</privilege-name>
</privilege>
<privilege>
<privilege-name>xdmp:add-response-header</privilege-name>
</privilege>
<privilege>
<privilege-name>xdmp:invoke</privilege-name>
</privilege>
<privilege>
<privilege-name>xdmp:with-namespaces</privilege-name>
</privilege>
</privileges>
-->
</role>
我已经测试过,并试图什么是在博客上面,但使用这些设置,我得到任何没有获得描述文件,显然没有休息延伸访问。 如果我给我的用户的{APP-作用}它使用户可以看到其他用户的问题私人内容......因为所有用户都具有‘其他阅读器’的作用...... 所以我需要限制默认应用程序的作用,不使用其余阅读器的角色,并使用休息阅读器的权限,但不能得到它的工作...
我正在考虑的一个选项是使用document-insert()
权限的限制内容,但这应该是可能的有正确的角色和特权,如果我可以正确设置它,对吗?
加成
在repsonse到Grtjn的回答是:THX 4你的意见,我觉得我对REST的角色感到困惑。如果我在git上的roxy应用中查看default roles,那些看起来是空的,但是当我将roxy应用类型设置为REST应用时,事情似乎变得更加复杂。主要的困惑是我需要什么样的角色和特权来让第二个(独立)角色能够使用REST端点?什么是xdmp:(值,add-response-header,调用等等)权限准确地做和需要?在我的例子使用户能够访问他/她需要以下角色的REST API:
<role-name>${app-role}</role-name>
<!-- we need this to amp internal privileges-->
<role-name>alert-user</role-name>
<role-name>alert-internal</role-name>
<role-name>rest-admin-internal</role-name>
然后我们进入讨论,如果其他阅读器应该是一种特权或角色?
所以更具体的问题:
什么是最小的角色/权限设置,我需要访问REST端点由乐声其他类型的应用程序创建?
嗨Grtjn,我已经更新了我的问题,更具体一些......希望您能分享一下您的看法? thx –
我详细阐述了一下。如果仍然不清楚,也许触摸底座.. – grtjn