我很努力地獲得我需要的行爲,正確設置我的用戶權限/特權/角色。未能創建自定義用戶權限來限制內容
我使用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