xml - 如何基于基于角色的访问控制 (RBAC) 将 CSV 或 XML 转换为 XACML?
问题描述
我的论文有问题,我的问题如下,希望你能帮助我。
我有一个xml,如下图
xml的含义是:
- “role:siasn-instance:profilasn:viewprofile”(供您参考,“role:siasn-instance:profilasn:viewprofil”是角色的名称),角色 id 为 1,在应用程序“服务配置文件 ASN”中可以访问或有权访问以下几点:
- url:“/tampilanData/pns”,标签:“Profile Pegawai”,子菜单:“pns”
- url:“/tampilanData/pppk”,标签:“Profile Pegawai PPPK”,子菜单:“pppk”
我想基于rbac将 XML 转换为xacml,你能帮我尽可能多地将它转换为 XACML 吗?因为还有 30 行 XML 我必须转换为 XACML
谢谢
解决方案
您将不得不编写自己的逻辑。例如,您可以创建一个非常简单的 XACML(或alfa)策略,该策略的目标结合了用户的角色和他们有权访问的 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。
推荐阅读
- python - 如何根据时间戳将数据帧与json数据同步或合并
- python - Pandas - 在列中查找最长的字符串值连串以及行 ID
- android - 无法连接到端口:5037 上的 adb 守护进程
- ios - 是否可以访问 xcode 中的所有通知
- batch-file - 如何使用 bat 删除具有特定名称的文件夹但不删除具有该名称的子文件夹?
- c# - 如何在 WPF 中异步更新视图模型?
- python - 在循环中单击链接时元素不可见
- javascript - 如何从 div 内的所有元素中删除特定属性?
- shopify - 如何在shopify中查找已售产品的总数?
- sql-server - 在 SQL Server Management Studio 中添加表时出错