首页 > 解决方案 > 如何基于基于角色的访问控制 (RBAC) 将 CSV 或 XML 转换为 XACML?

问题描述

我的论文有问题,我的问题如下,希望你能帮助我。

我有一个xml,如下图

在此处输入图像描述

的含义是:

我想基于,你能帮我尽可能多地将它转换为 XACML 吗?因为还有 30 行 XML 我必须转换为 XACML

谢谢

标签: xmlrbacxacmlrole-based-access-control

解决方案


您将不得不编写自己的逻辑。例如,您可以创建一个非常简单的 XACML(或)策略,该策略的目标结合了用户的角​​色和他们有权访问的 URL。它看起来像下面这样:

<Rule RuleId="c01d7519-be21-4985-88d8-10941f44590a" Effect="Permit">
<Description>Allow access to a given URL for a given role</Description>
<Target>
    <AnyOf>
        <AllOf>
            <Match MatchId="urn:oasis:names:tc:xacml:1.0:function:string-equal">
                <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">your role value</AttributeValue>
                <AttributeDesignator
                    Category="urn:oasis:names:tc:xacml:1.0:subject-category:access-subject"
                    AttributeId="role"
                    MustBePresent="false"
                    DataType="http://www.w3.org/2001/XMLSchema#string"/>
            </Match>
        </AllOf>
    </AnyOf>
    <AnyOf>
        <AllOf>
            <Match MatchId="urn:oasis:names:tc:xacml:1.0:function:anyURI-equal">
                <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#anyURI">17:00:00</AttributeValue>
                <AttributeDesignator
                    Category="urn:oasis:names:tc:xacml:3.0:attribute-category:resource"
                    AttributeId="targetURL"
                    MustBePresent="false"
                    DataType="http://www.w3.org/2001/XMLSchema#anyURI"/>
            </Match>
        </AllOf>
    </AnyOf>
</Target>

如果您想“原始”,您可以使用 XML 操作库。您甚至可以使用 XACML 3.0 的模式来生成 POJO 来创建 XML。或者,您可以使用 AuthzForce 的 XACML 的 Java 实现。

如果您走 ALFA 的道路(更易于阅读),您绝对可以创建自己的脚本(使用您喜欢的任何文本操作语言,例如 sed 或 Python ...)从 CSV 转到 ALFA。


推荐阅读