我正在尝试在WSO2 Dev Studio中的服务上启用UsernameToken安全性。我可以通过WSO2 Web GUI轻松完成此操作。我希望通过开发工作室完成这项工作,就是生成一个可以轻松部署的.car文件。
我看到web gui创建了一个策略文件,并且可以在导出的.car文件中包含该文件。我认为,问题在于,当您使用web gui启用usernametoken安全性时,第二个屏幕会要求选择一个用户组列表。我不知道数据到底在哪里。它没有在政策中定义。它似乎由WSO2内部存储。如果这是准确的,无论如何通过部署.car文件进行交互?
最终,我只想使用用户名和密码进行身份验证,并且任何用户组都没问题,因为我将在身份验证后使用权利中介来控制访问权限。
编辑:看起来它最终出现在WSO2CARBON数据库的UM_ROLE_PERMISSION表中。我想我需要的是一种在我的.car文件中放入一些代码的方法,这些代码将在部署时执行以便写入该表。 (或者是一个不太可怕的解决方案,我可以在不必操纵数据库的情况下完整地描述身份验证方案。)
答案 0 :(得分:0)
用户角色列表存储在用户管理数据库中。默认情况下,它将存储在默认的h2数据库中。
您可以通过在代理配置中设置名为allowRoles
的参数来配置允许的角色。设置将被授权访问给定服务的逗号分隔角色。
例如:
<parameter name="allowRoles">role1,role2</parameter>
示例代理配置:
<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse" name="test_ws_security" transports="http https" startOnLoad="true" trace="disable">
<target>
<inSequence>
<respond/>
</inSequence>
<outSequence/>
</target>
<parameter name="allowRoles">admin,myrole</parameter>
<policy key="conf:/custom/UsernameTokenPolicy_v1.xml"/>
<enableSec/>
</proxy>